HNHacker News
TopNewBestAskShowJobs

forhappy

37 karma · joined September 6, 2025

submissionscomments
forhappy··on Prolly: A content-addressed ordered map built on prolly trees
I'd be super happy to collaborate, let me know if you have any feedbacks ;)
forhappy··on Prolly: A content-addressed ordered map built on prolly trees
Thank you for your kind words, yes, I do have lots of ideas on top of prolly, actually I'm building some of them like crab(a serverless git remote, will be open-source soon), compass(a versioned code graph https://compass.crab.build/), trail(a low-level version control tooling for AI agent https://github.com/crabbuild/trail) silo(a versioned S3 client to make S3-compatible bucket version-controllable https://github.com/crabbuild/silo)

Prolly is a building block, there are sooo many use cases, I have the cookbook how developers can utilize prolly tree in their projects: https://github.com/crabbuild/prolly/blob/main/docs/cookbook....

forhappy··on Prolly: A content-addressed ordered map built on prolly trees
I started learning and implementing the prolly tree since December 2025, the current one crabbuild/prolly might be the 4th or 5th prolly tree implementation ;)
forhappy··on Prolly: A content-addressed ordered map built on prolly trees
Your articles taught me all the prolly tree knowledge, thank you so much :)
forhappy··on Prolly: A content-addressed ordered map built on prolly trees
I’ve been working on Prolly, a Rust implementation of a content-addressed ordered map built on prolly tree(intro from dolthub https://www.dolthub.com/docs/architecture/storage-engine/pro...)

A prolly tree is similar to a B+ tree, but its node boundaries are determined by the data rather than by insertion order. Each node is addressed by the hash of its contents, and updates create a new root while sharing unchanged nodes with older versions.

This makes it useful when an application needs more than basic key/value storage: cheap snapshots, efficient diffs, three-way merges, deduplication, and incremental sync between replicas.

Some use cases I’m exploring include local-first applications, versioned database indexes, Git-like filesystem snapshots, agent memory and event logs, and reproducible RAG indexes where the exact data snapshot used for an answer can be recorded.

It’s a storage primitive rather than a complete database. The goal is to provide the ordered-map layer and let applications choose their own storage backend, data model, and conflict policy.

The project is still evolving, and I’d appreciate feedback—especially about real-world use cases, the API, and what is missing.

forhappy··on Compass, a local-first code graph built in Rust for humans and AI agents
One of the main feature that Compass has while Graphify doesn't have is Compass support versioned graph powered by prolly tree:

``` compass git:(main) compass history --help Manage immutable graphs for Git revisions

Usage: compass history <COMMAND>

Commands: enable Enable eager graph history for future commits disable Stop eager history builds while retaining stored graphs timeline List commit graph-history state for timeline views change-counts Count structural graph changes between materialized revisions diff Stream an exact typed-record diff between realizations verify Validate an immutable realization and all typed roots status Show history configuration and realization status build Materialize an immutable graph for a Git revision rebuild Build a new realization for an already materialized revision list List stored graph realizations show Show metadata for one graph realization prefer Select the preferred realization for a revision export Restore a historical graph or Compass output bundle gc Inspect or reclaim unreachable history storage

Examples: compass history enable compass history build HEAD compass history status HEAD

Options: -h, --help Show this help

Tips: Run `compass help history <command>` for revision, format, and safety details. ```