Operational Transformation library?

2019-01-05 06:44发布

I'm looking for a library that would allow me to synchronize text in real-time between multiple users (ala Google Docs).

I've stumbled upon Operational Transformation, which seems to fit my needs. Having said that, I understand the gist of OT, but not the math nor implementation of OT.

Thus, I was wondering if there was a drag'n'drop Javascript library that would hook into a text area, generate the transforms, then allow me to apply those transformations onto another client?

(I've gotten the Etherpad source, but I can't make head or tails out of it. If anyone could point out how to leverage on Etherpad's OT implementation, that'll be great too!)

14条回答
爱情/是我丢掉的垃圾
2楼-- · 2019-01-05 07:24

I think that parts of Google Wave's OT implementation are Open Source (and more parts are coming).

I'm not sure if this is what you are looking for, but an alternative to OT is Differential Synchronization:

查看更多
何必那么认真
3楼-- · 2019-01-05 07:24

With a js client lib (Strophe.js) you could use a free XMPP server (like jabber.org) along with my client-side OT lib (JSOTTEST) to build a complete client-server system.

I will submit the src of a demo client-server chat system when I have time to revise the code.

查看更多
成全新的幸福
4楼-- · 2019-01-05 07:27

One of the ex-Wave engineers has released a Coffeescript implementation of its collaborative editing algorithm called ShareJS, now named ShareDB.

查看更多
Evening l夕情丶
5楼-- · 2019-01-05 07:27

OT Libraries:

Within the HWIOS websocket project, i've succesfully used a combo of both(py-infinote at the serverside, jinfinote at clientside) to sync document states.

查看更多
对你真心纯属浪费
6楼-- · 2019-01-05 07:32

We're building a collaborate editor that combines Operational Transformation with versioning. That way we can support both, offline and online collab. We released our own OT library yesterday as part of our open source stack.

http://interior.substance.io/modules/operator.html

We've also contributed a library for versioning.

http://interior.substance.io/modules/chronicle.html

查看更多
趁早两清
7楼-- · 2019-01-05 07:33

The ot.js library https://github.com/Operational-Transformation/ot.js may be useful for multi-user scenarios.

查看更多
登录 后发表回答