Prolly
Prolly publishes the prolly Rust library crate. Users depend on the package as prolly-map , while code imports stay concise: use prolly::{Config, Prolly}; .
The crate provides content-addressed prolly tree storage primitives: an immutable, ordered key-value index over byte keys and byte values, with stable content-derived structure for efficient structural sharing, diff, merge, and bulk loading.
At the API boundary, a Tree is a small persistent handle:
root: Option<Cid> points at the content-addressed root node.
points at the content-addressed root node. config: Config records the chunking and encoding parameters used by the tree.
The actual nodes live in a pluggable Store . Operations clone and rewrite only the affected path or subtrees, write new content-addressed nodes, and return a new Tree handle.
All storage-backed tree work is implemented once by a runtime-neutral, async-first engine. AsyncProlly<S: AsyncStore> uses it directly; Prolly<S: Store> drives the same complete operation through an inline ready-only adapter. The synchronous path does not create a runtime, park a thread, or dispatch store calls to Tokio.
Architecture
The same diagram is also rendered as diagram/[email protected] for contexts that prefer raster images.
... continue reading