[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)