package datakit

  1. Overview
  2. Docs
Legend:
Library
Module
Module type
Parameter
Class
Class type

DataKit is a concrete implementation of an Irmin store. It also allow to expose such store as a VFS directory.

Concrete Store

module Hash : Irmin.Hash.S with type t = Irmin.Hash.SHA1.t

Hash is SHA1.

module Path : Irmin.Path.S with type step = string

Path are list of strings, with constant-time rdecons operations (e.g. to have efficient basename/dirname split).

module Metadata : Irmin.Metadata.S with type t = [ `Normal | `Exec | `Link ]

Metadata are similar to Git metadata.

module Branch : Irmin.Branch.S with type t = string

Branch are ASCII strings where '/' is also allowed.

module Blob : sig ... end

Blob are lists of cstructs, with constant-time append operations. This is optimized to store large files where contents is always appended (e.g. log files).

Types

type hash = Hash.t

The type for SHA1 hashes.

type path = Path.t

The type for store paths

type step = Path.step

The type for store steps.

type perm = Metadata.t

The type for file permissions.

type branch = Branch.t

The type for branch names.

type blob = Blob.t

The type for blob contents.

module type S = Irmin.S with type key = path and type contents = blob and type branch = string and type step = step and type metadata = perm and type Commit.Hash.t = hash and type Tree.Hash.t = hash and type Contents.Hash.t = hash

The type for DataKit stores. Similar to Irmin_git.S but with specialized contents (optimized for append-operations), paths and branches.

module Make (M : Irmin.S_MAKER) : S

Make an DataKit store from a normal Irmin backend.

module type GIT_S_MAKER = functor (C : Irmin.Contents.S) -> functor (P : Irmin.Path.S) -> functor (B : Irmin.Branch.S) -> Irmin.S with type key = P.t and type step = P.step and module Key = P and type contents = C.t and type branch = B.t and type metadata = perm and type Commit.Hash.t = hash and type Tree.Hash.t = hash and type Contents.Hash.t = hash

Similar to Irmin_git.S_MAKER

module Make_git (M : GIT_S_MAKER) : S

Make a DataKit store from a Git-like Irmin backend.

VFS

module type VFS = sig ... end

The signature of an Irmin VFS servers.

module Dir (Store : S) : sig ... end

Writable directories.

module Vfs (Store : S) : VFS with type repo = Store.Repo.t

Create a full VFS from a DataKit store.