package irmin-chunk

  1. Overview
  2. Docs

AO(X) is an append-only store which store values cut into chunks into the underlying store X.

The keys returns by add are the hash of the chunked values: it could either be a full block if the value is small, or a tree node if the values need to be cut into chunks.

In both case, the return hash will be different from the hash of the value. This discrepency can be fixed using AO_stable, at the cost of adding an indirection on reads.

Parameters

module S : Irmin.AO_MAKER
module K : Irmin.Hash.S

Signature

include Irmin.AO with type key = K.t and type value = V.t

Append-only stores

Append-only stores are read-only store where it is also possible to add values. Keys are derived from the values raw contents and hence are deterministic.

include Irmin.RO with type key = K.t with type value = V.t

Read-only stores

type t

The type for read-only backend stores.

type key = K.t

The type for keys.

type value = V.t

The type for raw values.

val mem : t -> key -> bool Lwt.t

mem t k is true iff k is present in t.

val find : t -> key -> value option Lwt.t

find t k is Some v if k is associated to v in t and None is k is not present in t.

val add : t -> value -> key Lwt.t

Write the contents of a value to the store. It's the responsibility of the append-only store to generate a consistent key.

val v : Irmin.config -> t Lwt.t

v config is a function returning fresh store handles, with the configuration config, which is provided by the backend.