Operational Transformation library?

前端 未结 14 919
醉酒成梦
醉酒成梦 2020-11-27 09:00

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 Transformat

14条回答
  •  抹茶落季
    2020-11-27 09:36

    I'll summarize the solutions I found.

    • Operational Transformation: E.g.

      • Google Wave OT. The approach is based on the so called Jupiter approach.
      • ShareJs. Based on the same OT algorithm as Google Wave OT.
      • Coweb-jsoe. Based on COT - a very sophisticated OT approach that also supports p2p message propagation.
      • OpenCoweb. It leverages OpenCoweb-jsoe in order to provide a full-fledged Framework for a lot of similar problems.
      • OT.js is based on the operation-types of ShareJs.
      • DriveSDK. A very interesting API that can do a lot of things - e.g. collaboration on graphs.
      • SwellRT is a Fork of Apache Wave. Is is federated, and supports rich text.
    • Differential Synchronization:

      • Diff-Match-Patch from Neil Fraser.
      • MobWrite leverages the Diff-Match-Patch algorithm.
    • CRDT (Commutative Replicated Data Type):

      • There are a lot of different CRDT algorithms that allow the implementation of shared types. Some CRDTs work with P2P message propagation, some rely on client-server models
      • Yjs allows you to share arbitrary data types (RichText, Array, Hash Maps, .. extendable). Offline support and support for P2P communication protocols (there are modules for XMPP, Websockets, and WebRTC)
      • SwarmJS Client server shared database with offline support. Works well with React
      • Woot An implementation of the Woot CRDT
      • CRDT Another CRDT implementation
      • Automerge

提交回复
热议问题