package plebeia

  1. Overview
  2. Docs
Functional storage using Merkle Patricia tree

Install

Dune Dependency

Authors

Maintainers

Sources

plebeia-2.2.0.tar.gz
md5=7191dbbd3057df0a78032b560039bb59
sha512=f09790dfa65a6c8dc0da9618123d93f145c16c3b5be719dad04114bbe95a7e94697cacf2c6fb5b50c14408f864954dbf8d47e5994093623eb77f488bdf5c4205

doc/plebeia/Plebeia/index.html

Module PlebeiaSource

1 Plebeia

Implementation of space-efficient binary Patricia trees in OCaml. The implementation is geared for used in Tezos, though it is rather generic. A stop-and-copy GC is provided. This implementation aims to maximize correctness and cares second about efficiency.

Sourcemodule Internal : sig ... end

2 Internal implementation

2 Standard APIs, module interfaces are currently equivalent with Internal

include module type of struct include Internal end
Sourcemodule Limit : sig ... end

3 Base

Sourcemodule Error : sig ... end

1 Open type for error descriptions

Sourcemodule Utils : sig ... end
Sourcemodule Option : sig ... end
Sourcemodule Result : sig ... end

1 Result monad

Sourcemodule Monad : sig ... end
Sourcemodule Log : sig ... end
Sourcemodule Value : sig ... end

3 Core

Sourcemodule Index : sig ... end

1 Index in data files

Sourcemodule Segment : sig ... end

A module encapsulating the concept of a path through the Patricia tree. A path is a sequence of n full segments. The n-1 first segments end in a bud and the nth ends in a leaf. Internal segments are bit of paths encoded in the internal nodes of the Patricia tree while tip segments represent the bits of path encoded close to the leaf.

Sourcemodule Segment_int_array : sig ... end
Sourcemodule Path : sig ... end
Sourcemodule Node_offsets : sig ... end
Sourcemodule Context : sig ... end

1 Merkle Patricia tree storage

Sourcemodule Node : sig ... end
Sourcemodule Node_type : sig ... end

1 Merkle Patricia tree

Sourcemodule Node_tools : sig ... end

1 Node traversal tools

Sourcemodule Info : sig ... end
Sourcemodule Cursor : sig ... end

1 Zipper

Sourcemodule Deep : sig ... end

3 High level

Sourcemodule Traverse : sig ... end
Sourcemodule Commit : sig ... end

3 Version control

Sourcemodule Commit_tree : sig ... end

Tree shaped append-only persistent storage for commit entries.

Sourcemodule Commit_db : sig ... end
Sourcemodule Vc : sig ... end
Sourcemodule Fs_types : sig ... end

3 File system

Sourcemodule Fs_nameenc_impl : sig ... end
Sourcemodule Fs_nameenc : sig ... end

Segment encoding of file names

Sourcemodule Fs_impl : sig ... end
Sourcemodule Fs : sig ... end

File system over Plebeia tree.

Sourcemodule Fs_tree : sig ... end

File system over Plebeia tree, with a "tree" interface.

Sourcemodule Commit_hash : sig ... end

3 Hash

Sourcemodule Hashfunc : sig ... end
Sourcemodule Hash : sig ... end
Sourcemodule Node_hash : sig ... end

1 Node hash

Sourcemodule Lock : sig ... end

3 Storage

Sourcemodule Storage : sig ... end

Generic cell based storage

Sourcemodule Node_storage : sig ... end
Sourcemodule Hashcons : sig ... end

1 Cache for small values

Sourcemodule Node_cache : sig ... end

Node hashconsing based on the hashes

Sourcemodule Xcstruct : sig ... end
Sourcemodule Mmap : sig ... end
Sourcemodule Copy : sig ... end

3 GC

Sourcemodule Stat : sig ... end

3 Helper

Sourcemodule Debug : sig ... end
Sourcemodule Diff : sig ... end

3 Tools

Sourcemodule Merkle_proof : sig ... end

Merkle proof

Sourcemodule Cursor_tools : sig ... end
Sourcemodule Snapshot : sig ... end
Sourcemodule Data_encoding_tools : sig ... end
Sourcemodule Key : sig ... end
Sourcemodule Result_lwt : sig ... end

1 Result monad

Sourcemodule Cursor_stat : sig ... end
Sourcemodule Gen : sig ... end

3 Test

OCaml

Innovation. Community. Security.