ot.js
othello-ocaml
ot.js | othello-ocaml | |
---|---|---|
2 | 1 | |
2,019 | 1 | |
0.0% | - | |
0.0 | 10.0 | |
almost 2 years ago | over 6 years ago | |
JavaScript | OCaml | |
MIT License | - |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
ot.js
-
You don't need a CRDT to build a collaborative experience
This single file shows the entire set of OT transformations (retain, insert, delete):
https://github.com/Operational-Transformation/ot.js/blob/mas...
and this is a good post outlining the basics of OT, from the creator of CodeMirror:
https://marijnhaverbeke.nl/blog/collaborative-editing-cm.htm...
-
Show HN: Rustpad, a self-hosted online collaborative text editor in Rust
Thanks! Operational transformation is the same technology that powers Google Docs. It's been studied in academia for real-time collaboration since the 1990s and has eventual consistency guarantees. See the Wikipedia article: https://en.wikipedia.org/wiki/Operational_transformation
The Rust operational-transform library was not written by me, but it's listed on crates.io by spebern, and it's worked wonderfully so far. It seems to be a very close port of ot.js (https://github.com/Operational-Transformation/ot.js). The text transformation algorithm isn't very complicated (<700 SLOC including tests), but there's probably room for optimization!
othello-ocaml
What are some alternatives?
rustpad - Efficient and minimal collaborative code editor, self-hosted, no database required
othello - Operational transform library for Clojure + Clojurescript
collabs - Collabs library monorepo
rich-text - Format for representing rich text documents and changes