[HN Gopher] Cola: A text CRDT for real-time collaborative editing
___________________________________________________________________
Cola: A text CRDT for real-time collaborative editing
Author : homarp
Score : 92 points
Date : 2023-09-03 19:53 UTC (3 hours ago)
(HTM) web link (nomad.foo)
(TXT) w3m dump (nomad.foo)
| danbruc wrote:
| I would guess a G-tree is still a B-tree with additional parent
| pointers, the fact that it is stored in an array is a matter of
| representation but does not fundamentally change the structure.
| This still stores pointers, they are just in units of the node
| size instead of bytes and relative to the first array element
| instead of the beginning of the address space. A complete binary
| tree stored in a array without any explicit references, i.e. an
| implicit representation with the children of the node at index x
| stored at indices 2x + 1 and 2x + 2, is still referred to as a
| binary tree, just with an implicit representation.
| gjvc wrote:
| not to be confused with Ian Piumarta's work of the same name:
|
| https://www.piumarta.com/software/cola/
|
| https://citeseerx.ist.psu.edu/viewdoc/download;jsessionid=91...
| satvikpendem wrote:
| Or coda.io, a Notion clone style app.
| homarp wrote:
| written in Rust :)
|
| https://github.com/nomad/cola - MIT licensed
| jitl wrote:
| This doesn't appear to support rich text formatting ranges like
| bold, italic, etc - unless I'm missing something in the API.
| AFAIK Peritext is still the state of the art in rich text CRDT
| algorithms https://www.inkandswitch.com/peritext/
|
| I'd love to see this build the rich text stuff from the Peritext
| algorithm.
| canadiantim wrote:
| Is this something I can use eg with tiptap/prosemirror or some
| other text editor to add CRDT-based collaborative editing?
| teaearlgraycold wrote:
| I don't think it's made to support WASM. You'd also need a
| compatibility shim to get it to act like a Y Doc.
| matlin wrote:
| Any comparisons to Automerge or Y.js/Yrs regarding performance or
| features?
| jayunit wrote:
| The "third part" of the post starts with "I've benchmarked cola
| against 3 other CRDTs implemented in Rust: diamond-types,
| automerge and yrs." This cola library appears to perform
| favorably in operation speed.
|
| I'd be curious to know about memory usage, too.
___________________________________________________________________
(page generated 2023-09-03 23:00 UTC)