prollipop

prollipop 🍭

A modded Prolly-tree implementation in Typescript.

  • Async-iterable mutator - changes can be applied as a stream :o
  • Efficient diff - yields node and bucket diffs!
  • Powerful cursor api - climb 🌳s like a pro

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. Need to add abort signals and timeouts.

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, normalized boundaries instead of rolling-hash

npm install prollipop

pnpm install && pnpm build

See usage.test.ts!!!

API docs

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!