package plebeia

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

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.

module Internal : sig ... end

2 Internal implementation

2 Standard APIs, module interfaces are currently equivalent with Internal

include module type of struct include Internal end

2 Internal implementation

For testing, debugging, and advance uses.

module Limit : sig ... end

3 Base

module Error : sig ... end

1 Open type for error descriptions

module Utils : sig ... end
module Option : sig ... end
module Result : sig ... end

1 Result monad

module Monad : sig ... end
module Log : sig ... end
module Value : sig ... end

3 Core

module Index : sig ... end

1 Index in data files

module 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.

module Segment_int_array : sig ... end
module Path : sig ... end
module Context : sig ... end

1 Merkle Patricia tree storage

module Node : sig ... end
module Node_type : sig ... end

1 Merkle Patricia tree

module Node_tools : sig ... end

1 Node traversal tools

module Info : sig ... end
module Cursor : sig ... end

1 Zipper

module Deep : sig ... end

3 High level

module Traverse : sig ... end
module Commit : sig ... end

3 Version control

module Commit_tree : sig ... end

Tree shaped append-only persistent storage for commit entries.

module Commit_db : sig ... end
module Vc : sig ... end
module Fs_intf : sig ... end

3 File system

module Fs_impl : sig ... end
module Fs : sig ... end

File system over Plebeia tree.

module Fs_tree : sig ... end

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

module Commit_hash : sig ... end

3 Hash

module Hashfunc : sig ... end
module Hash : sig ... end
module Node_hash : sig ... end

1 Node hash

module Lock : sig ... end

3 Storage

module Storage : sig ... end

Generic cell based storage

module Node_storage : sig ... end
module Hashcons : sig ... end

1 Cache for small values

module Node_cache : sig ... end

Node hashconsing based on the hashes

module Xcstruct : sig ... end
module Mmap : sig ... end
module Copy : sig ... end

3 GC

module Stat : sig ... end

3 Helper

module Debug : sig ... end
module Diff : sig ... end

3 Tools

module Merkle_proof : sig ... end

Merkle proof

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

1 Result monad

module Gen : sig ... end

3 Test