Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/stas-sl/realtime-collaboration-resources
List of resources related to realtime collaboration
https://github.com/stas-sl/realtime-collaboration-resources
conflict-resolution crdt offline operational-transformation synchronization
Last synced: 5 days ago
JSON representation
List of resources related to realtime collaboration
- Host: GitHub
- URL: https://github.com/stas-sl/realtime-collaboration-resources
- Owner: stas-sl
- Created: 2017-12-07T16:52:29.000Z (almost 7 years ago)
- Default Branch: master
- Last Pushed: 2022-04-07T17:01:09.000Z (over 2 years ago)
- Last Synced: 2024-08-01T12:37:07.168Z (3 months ago)
- Topics: conflict-resolution, crdt, offline, operational-transformation, synchronization
- Homepage:
- Size: 17.6 KB
- Stars: 30
- Watchers: 5
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
- awesome-starred - stas-sl/realtime-collaboration-resources - List of resources related to realtime collaboration (others)
README
# Realtime Collaboration Resources
## Contents
- [Papers](#papers)
- [Talks](#talks)
- [Articles](#articles)
- [Discussions](#discussions)
- [Sources](#sources)
- [Demos](#demos)
- [Examples in real world](#examples-in-real-world)## Papers
* [A Conflict-Free Replicated JSON Datatype](https://arxiv.org/pdf/1608.03960.pdf)
* [Merging OT and CRDT Algorithms](https://hal.inria.fr/hal-00957167/document)
* [Near Real-Time Peer-to-Peer Shared Editing on Extensible Data Types (about y-js)](https://github.com/y-js/yjs/files/695979/yjs.pdf)
* [Scalable XML Collaborative Editing with Undo](https://arxiv.org/pdf/1010.3615.pdf)
* [An Algorithm for Selective Undo of Any Operation in Collaborative Applications](https://binshao.info/download/undo-group2010.pdf)
* [Real time group editors without Operational Transformation (WOOT)](https://hal.inria.fr/inria-00071240/document)
* [A comprehensive study of Convergent and Commutative Replicated Data Types](http://hal.upmc.fr/inria-00555588/document)
* [Differential Synchronization](https://neil.fraser.name/writing/sync/eng047-fraser.pdf)## Talks
* [Concurrent Data & OT Alternatives](https://www.youtube.com/watch?v=zo8uGlqQaCo)
* [How we built Synchrony, the engine behind collaborative editing in Confluence](https://www.youtube.com/watch?v=EgCYd6ei7QI)
* [Conflict Resolution for Eventual Consistency - Martin Kleppmann](https://www.youtube.com/watch?v=yCcWpzY8dIA)
* [(Russian) Виктор Грищенко — Swarm: синхронизируем рой устройств](https://www.youtube.com/watch?v=1ddm7WCMclA)
* [Strong Eventual Consistency and Conflict-free Replicated Data Types by Marc Shapiro](https://www.youtube.com/watch?v=oyUHd894w18)
* [Differential Synchronization](https://www.youtube.com/watch?v=S2Hp_1jqpY8)
* [UIST 2015 - Webstrates: Shareable Dynamic Media](https://www.youtube.com/watch?v=qgT94IkCmbo)
* [Codestrates: Literate Computing with Webstrates](https://www.youtube.com/watch?v=QET8Z47CK0k)## Articles
* [Understanding and Applying Operational Transformation](http://www.codecommit.com/blog/java/understanding-and-applying-operational-transformation)
* [CRDT Notes](https://github.com/pfrazee/crdt_notes) - Excerpts collected from papers and articles published on the Web
* [A simple approach to building realtime collaborative text editor](http://digitalfreepen.com/2017/10/06/simple-real-time-collaborative-text-editor.html) - Nice explanation of CRDTs
* [Data Laced with History: Causal Trees & Operational CRDTs](http://archagon.net/blog/2018/03/24/data-laced-with-history/)
* [(Russian) Рождение, жизнь и смерть Волны - причины почему умер Google Wave](https://geektimes.ru/post/139475)## Discussions
* [A Conflict-Free Replicated JSON Datatype on Hacker News](https://news.ycombinator.com/item?id=12303100)
* [Apache Wave on Hacker News](https://news.ycombinator.com/item?id=7532059)
* [Automerge on Hacker News](https://news.ycombinator.com/item?id=16309533)
* [ShareJS Google Group](https://groups.google.com/forum/#!forum/sharejs)## Sources
* https://github.com/share/sharedb [JavaScript] - Realtime database backend based on Operational Transformation of JSON documents, uses MongoDB and Redis
* https://github.com/rizzoma [CoffeeScript/JavaScript] - Google Wave clone based on ShareDB
* https://github.com/gritzko/swarm [JavaScript] - CRDT implementation
* https://github.com/gulf [JavaScript] - Operational transformation control layer with several bindings to contenteditable, quill editor, socialcalc. Though the author says he found something better than OT - CRDT
* https://github.com/dmitryuv/atext-changeset [JavaScript] - A library for building collaborative rich-text editors using operational transformation. It's based on easysync spec from the Etherpad-Lite project
* https://github.com/goodow/realtime-store [Java] - Google Docs–style collaboration via the use of operational transforms. Documents are made of 4 types of collaborative elements: String, Lists, Maps and Custom objects. A Goodow Realtime Store collaborative document can have as many of these collaborative elements as they need
* https://github.com/Operational-Transformation/ot.js [JavaScript] - Operational Transformation Implementation (for text)
* https://github.com/automerge/automerge [JavaScript] - Automerge is a library of data structures for building collaborative applications in JavaScript
* https://github.com/automerge/trellis [JavaScript] - Trellis is a Trello clone built as an Electron desktop application. We built Trellis to demo MPL, a distributed persistence library that allows developers to build collaborative applications that are realtime, offline, and network partition tolerant. Uses [automerge](https://github.com/automerge/automerge) library
* https://github.com/Webstrates/Webstrates [JavaScript] - With Webstrates, webpages become collaboratively editable in real-time. Changes to the Document Object Model (DOM) of a page persist and are synchronised to all connected clients of the same page using Operational Transformation through ShareDB.
* https://github.com/Webstrates/Codestrates [JavaSctipt] - Codestrates is a literate computing approach to developing interactive software inspired by interactive notebooks such as Jupyter notebook. However, in Codestrates, real-time collaboration is built in, it is possible to create stand-alone applications with persistent state, and to reprogram the functionality of the environment it self.
* https://github.com/goodow/realtime-operation
* https://github.com/marcelklehr/changesets
* https://github.com/hivejs
* https://github.com/marcelklehr/warp
* https://github.com/marcelklehr/dom-ot
* https://github.com/y-js/yjs
* https://github.com/kbadk/json0-ot-diff
* https://github.com/usecanvas
* https://github.com/Evercoder
* https://github.com/Ramonlord/moqups
* https://github.com/apache/incubator-wave
* https://github.com/rudi-c/alchemy-book## Demos
* http://alchemy.digitalfreepen.com
* http://realtimeplayground.goodow.com
* https://operational-transformation.github.io/visualization.html - Operational Transformation Visualization
* http://codestrates.org/ - you can create a codestrate and edit HTML/CSS/JavaScript collaboratively## Examples in real world
* https://drive.google.com
* https://colab.research.google.com
* https://datastudio.google.com
* https://trello.com
* https://www.dropbox.com/paper
* https://www.figma.com
* https://rizzoma.com
* https://moqups.com
* http://etherpad.org
* https://www.nuclino.com
* https://quip.com
* https://mural.co
* https://realtimeboard.com----
## Contributions
Have anything in mind that you think would fit in this list? Feel free to send a [pull request](https://github.com/stas-sl/awesome-realtime-collaboration/pulls).