ot.js
othello
ot.js | othello | |
---|---|---|
2 | 2 | |
2,019 | 34 | |
0.0% | - | |
0.0 | 10.0 | |
almost 2 years ago | about 8 years ago | |
JavaScript | Clojure | |
MIT License | Eclipse Public License 1.0 |
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
-
You don't need a CRDT to build a collaborative experience
I haven’t explored this space in a while, but I have a couple of examples that could be helpful. A Clojure library of mine [0] has a decent README with some background reading on how to use operational transform.
I also reimplemented it in a surprisingly tiny amount of OCaml [1] which was a fun way to learn that language :)
[0]: https://github.com/jahfer/othello
-
WIP implementation of an ActivityPub library in Clojure
It’s been a while since I’ve written Clojure (the bulk of my authoring was nearly a decade ago) so I’m happy to receive any feedback you all might have. Also willing to answer any questions. Cheers!
What are some alternatives?
rustpad - Efficient and minimal collaborative code editor, self-hosted, no database required
othello-ocaml - Reimplementation of https://github.com/jahfer/othello in OCaml programming language
collabs - Collabs library monorepo
rich-text - Format for representing rich text documents and changes