4 ms·
So how do the various popular CRDT libraries compare nowadays? There's Yjs (with a Rust port that is in progress), Automerge-rs, and your own diamond-types pro
by mikevm 5y ago
So how do the various popular CRDT libraries compare nowadays?
There's Yjs (with a Rust port that is in progress), Automerge-rs, and your own diamond-types project :).
Is Yjs still the current go-to for most projects' needs?
- hunterb123 5y agoThere's also GUN (https://gun.eco/ https://gun.eco/) if you want a CRDT graph p2p syncing database. I have no relation to the project, but the community is awesome.
- sagichmal 5y agoGun is snake oil.
- detaro 5y agowhy?
- i001962 5y agoThat is a bold claim and no supporting evidence. This forum can be so valuable and yet so maddening. Please do share your experiences that support your opinion. Gun.js can seem ‘magical’ but then again the 100 lines of code (iirc it’s less) are there for all to see. I’ve found the time invested to learn about gun (the sync protocol) and RAD (storage abstraction layer) quite worth it. The addition of SEA (security encryption authorization) wrapping around gun enables a lot of implementation options which some find frustrating as they’d rather not have to think about topology before building ‘an app’. Could that be a reason for your comment? Would love to hear why you think it’s snake oil.
- sagichmal 5y agoBecause when the author writes or speaks about the project, they consistently demonstrate a fundamental lack of understanding of the domain. There is a reason that GunDB is never mentioned in literature or papers.
- i001962 5y agohttps://dl.acm.org/doi/pdf/10.1145/3329714.3338137 https://dl.acm.org/doi/pdf/10.1145/3329714.3338137
- josephg 5y agoI'd say so, yeah. Diamond types will beat yjs on a lot of benchmarks when I have it all working, but I'm still missing important functionality (like loading and saving, and data types other than plain text). The automerge devs have been working on incorporating a bunch of the changes I talked about in my blog post, but they have more work to do before those optimizations have all landed. If I were starting a new project today, I'd use Yjs. But I suspect in a year or so from now there'll be several high quality CRDTs available to choose from. The space is heating up.