josephg/reference-crdts
View on GitHub ↗ ★ 142 TypeScript
Simple, tiny spec-compliant reference implementations of Yjs and Automerge's list types.
6 mentions on Hacker News by 2 people: 0 stories, 6 comments · first 2022-04-21 · latest 2025-08-21
20082026
-
…equivalence. Fugue is also somewhere in this file, if you want to compare. Here's FugueMax[1]: https://github.com/josephg/reference-crdts/blob/c53947408770... RGA: https://github.com/josephg/reference-crdts/blob/c53947408770... And Yjs:…
comment by josephg · 2025-08-21 · in CRDT: Text Buffer -
…with Word. As an example, here's a simple fuzzer for a reference list CRDT implementation: https://github.com/josephg/reference-crdts/blob/9f4f9c3a97b4... The code is so small it almost fits on my laptop screen.
comment by josephg · 2022-12-02 · in Using CRDTs for multiplayer text editing -
…code-first approach, you might try the "Reference CRDT" implementations, here, written by 'josephg: https://github.com/josephg/reference-crdts Seems to have good density of explanatory comments. (Seph, if you're reading this, I don't know…
comment by maxwelljoslyn · 2022-12-01 · in Using CRDTs for multiplayer text editing -
…just want CRDTs for editing a database of records, that'd probably only take a few dozen lines. [1] https://github.com/josephg/reference-crdts/blob/main/crdts.t...
comment by josephg · 2022-12-01 · in Using CRDTs for multiplayer text editing -
…every time an insert happens. This is the scanning function for RGA (automerge’s algorithm): https://github.com/josephg/reference-crdts/blob/fed747255df9... And this is an interactive visualisation of how diamond types works (which uses…
comment by josephg · 2022-12-01 · in Using CRDTs for multiplayer text editing -
…But at that point you may as well just use wasm. It'll be way faster and more ergonomic. [1] https://github.com/josephg/reference-crdts [2] https://home.seph.codes/public/node_graph.svg [3] https://github.com/josephg/diamond-types/tree/mast…
comment by josephg · 2022-04-21 · in WebAssembly 2.0 First Working Draft