Skip to content

A CRDT-based collaborative editor engine of letters.yandex.ru (2012, historical)

License

Notifications You must be signed in to change notification settings

streamich/citrea-model

 
 

Repository files navigation

Citrea/Papyrus

A CRDT-based collaborative editor engine of letters.yandex.ru (2012, historical)

TODO doc Yandex livery

Back in 2012, neither Quill nor ProseMirror existed. CRDTs were "mad science". A tiny band of brave souls made a collaborative editor for Yandex Mail (http://mail.ya.ru). The inner engine was Causal Trees CRDT (RGA family algo, array-hosted, see http://www.ds.ewi.tudelft.nl/~victor/). As a core optimization technique, the papyrus engine stored Lamport ids as tuples of unicode characters, so the metadata moved around as plain strings, not JSON. Notably, the code features a little formal address language that is essentially a precursor of RON (see http://github.com/gritzko/ron). Pieces of a document are addressable, hence cacheable. All recalculations are incremental, all DOM updates are also incremental.

The engine was created by @gritzko, @abalandin in 2011-2012.

For a more detailed description of the technology, see story.md.

About

A CRDT-based collaborative editor engine of letters.yandex.ru (2012, historical)

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 100.0%