package irmin-containers

  1. Overview
  2. Docs
Mergeable Irmin data structures

Install

Dune Dependency

Authors

Maintainers

Sources

irmin-3.7.2.tbz
sha256=6aa5ba4c6a0233747d4bd3ab396f2b3a33bb80f9d8ed4a178c83a035033c0e52
sha512=8a5506a57e8569a11c883ca25b3c60ae7a9a03c2da111668193d7b4296434c43f1a310e78f189e4b38c234da790259d2961c6a0ae481282c18bb97f618fccfb6

doc/irmin-containers/Irmin_containers/index.html

Module Irmin_containersSource

Irmin_containers is a collection of simple, ready-to-use mergeable data structures. Each data structure works with an arbitrary Irmin backend and is customisable in a variety of ways.

Additionally, Irmin_containers supplies instantiations of each of these data structures with two backends:

Data structures

Sourcemodule Counter : sig ... end

The implementation of an int64 counter. This module supports operations to increment, decrement and read the value of the counter.

Sourcemodule Lww_register : sig ... end

The implementation of last-write-wins register. The value to be stored in the register and the timestamp method are provided by the user.

Sourcemodule Blob_log : sig ... end

The implementation of log in which it is maintained as a single unit, or blob. Hence, two versions of the log cannot share their common predecessor. The type of values to be stored as well as a method to obtain timestamps are provided by the user.

Sourcemodule Linked_log : sig ... end

The linked list implementation of log. Due to the linked property, two versions of the log share their common predecessor. As it is a linked data structure, a content addressable store is required. Along with that, a method to obtain timestamps, a hash for the content addressable store and the type of values stored must also be provided.

Auxiliary signatures and modules

Store_maker is the signature for the backend input to the data structures. The Irmin stores of the data structures are constructed using modules of this type

Sourcemodule type Content_addressable = sig ... end

Cas_maker is the signature for the store which will be used to maintain linked data structures. The elements are hashed into this store and the hash value is used to construct the linkages.

Sourcemodule Time : sig ... end

Time specifies a source of timestamps. Timestamps must be monotonic for the data structures to function properly.

OCaml

Innovation. Community. Security.