bft-json-crdt
y-sweet
bft-json-crdt | y-sweet | |
---|---|---|
2 | 2 | |
188 | 339 | |
- | 7.7% | |
10.0 | 9.2 | |
over 1 year ago | 3 days ago | |
Rust | Rust | |
MIT License | GNU General Public License v3.0 or later |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
bft-json-crdt
-
Building a BFT JSON CRDT
I'm quite surprised by the [benchmarks versus Automerge JS & Rust](https://github.com/jackyzha0/bft-json-crdt#benchmarks) when it comes to memory:
> Ours (Basic) 27.6MB
> Ours (BFT) 59.5MB
> Automerge (Rust) 232.5MB
I would expect adding the public key tracking to use more memory; I wonder how Automerge is spending so much more memory. Possibly on a bunch of internal caches or memoization that give the order-of-magnitude improvement in speed?
> Ops: 100k
> Ours (Basic) 9.321s
> Ours (BFT) 38.842s
> Automerge (Rust) 0.597s
y-sweet
-
Show HN: Algora – open-source coding bounties
Direct link to ticket: https://github.com/drifting-in-space/y-sweet/issues/78
-
An Interactive Intro to CRDTs
> knowing for sure what state a user’s client is in when debugging is tough too
My team has built an open-source debugger for Yjs that might interest you (docs: https://y-sweet.cloud/advanced/debugger)
You mention the investor-funded services that pop up to make this stuff easier -- our goal with Y-Sweet is to build the same type of DX you’d get from those services, but build it on a fully open-source platform with Yjs at the core: https://github.com/drifting-in-space/y-sweet
What are some alternatives?
diamond-types - The world's fastest CRDT. WIP.
trigger.dev - Trigger.dev is the open source background jobs platform for TypeScript.
overlord - Overlord consensus protocol.
partykit - PartyKit simplifies developing multiplayer applications
cr-sqlite - Convergent, Replicated SQLite. Multi-writer and CRDT support for SQLite
yjs - Shared data types for building collaborative software
AlephBFT - Rust implementation of Aleph consensus protocol
crdt-richtext - Rich text CRDT that implements Peritext and Fugue
prolly-trees - Hash consistent search trees.
rust-crdt - a collection of well-tested, serializable CRDTs for Rust