Hacker News new | ask | show | jobs
by _9rq6 1842 days ago
I really like the architectural decisions made in the project. OperationalTransform library may need some work like testcases and add more powerful constructs. Is there any theory behind it? Maybe add a link to it.

I believe this project can become a popular opensource project. It is really fast.

1 comments

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!

Congratulations on shipping, what you have is very slick.

Quick question, not trying to start a flame war just genuinely curious. Why did you pick OT over other approaches to realtime collaborative editing such as CRDTs?

I'm not the author but I've written a lot of OT code. OT works great when you have a centralised server. Its fast and simple. I (and others) are working on it but there aren't many production quality, fast CRDT implementations in rust and other languages yet.
I'm also curious about CRDTs, but after making this project, I agree that OT seems to "just work" performance-wise and are super simple.