Skip to content

About

Probabilistic Git trees?

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

🪵 git-prolly

Persistent, content-addressed Prolly trees whose physical representation is ordinary Git objects, and the versioned, Dolt-like database built on top of them.

A Prolly node is a Git tree, a node identity is the Git object id, and a value’s identity is the root object id of its facet-git-tree representation. There is no second object store and no second Merkle-node format, so reachability, deduplication, packing, fetching, garbage collection, and git fsck all apply to the structure for free.

Crates

  • git-prolly — an ordered, content-addressed map whose nodes are Git trees: insert, remove, lookup, iteration, structural diff, and verification.

  • git-database — a versioned database with a Dolt-like working state, commit, branch, diff, and merge surface, composed from git-prolly and compare-and-swap ref edits. A snapshot is a canonical Git tree; a database commit is an ordinary Git commit.

Compare-and-swap ref storage is consumed from git-store as gix-refstore, over a git dependency.

Install

cargo install --path crates/git-database

This builds the git-prolly binary, which exposes the database’s Dolt-shaped db command surface.

Usage

git-prolly db init
git-prolly db table create users
git-prolly db put users alice '{"name":"Alice","role":"admin"}'
git-prolly db get users alice
git-prolly db status
git-prolly db diff
git-prolly db add users
git-prolly db commit -m 'seed users'
git-prolly db log

examples/git-db.sh runs the same walkthrough against a temporary repository; benchmarks/ compares the db surface with Dolt.

Documentation

Contributing

About

Probabilistic Git trees?

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages