Skip to content

tabcat/prollipop

Repository files navigation

prollipop 🍭

A modded Prolly-tree implementation in Typescript.

Features

  • Async-iterable mutator - changes can be applied as a stream :o
  • Efficient diff - yields entry and bucket diffs!
  • Powerful cursor api - climb 🌳s like a pro
  • Structural validation - codec is aware of tree context

Project Status

I'm doing a rewrite!!! The master branch going to be broken for a bit.

It's in a decent state but have not done performance analysis. API breaks will result in major version change.

I haven't tested with non-local blockstores. Things may not work well with networked blockstores.

Data-structure

This package implements a modded prolly-tree in Typescript. Most relevant code is in src/mutate.ts and src/diff.ts.

mods:

  • (number, uint8array) tuples for keys
  • right-side backbone
  • key-defined boundaries instead of rolling-hash

Install

npm install prollipop

Build

pnpm install && pnpm build

Usage

See usage.test.ts!!!

API docs

Learning Resources:

As you can see from the list below, a lot of ideas have been stolen from the Dolt project's blog so be sure to check them out!

Additional Resources:

About

A modded Prolly-tree implementation in Typescript

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published