8 Repos
Libraries for implementing real-time synchronization and conflict resolution.
Explore 8 awesome GitHub repositories matching part of an awesome list · Collaborative Editing. Refine with filters or upvote what's useful.
Yjs is a CRDT framework and real-time state synchronization engine providing shared data types for collaborative software. It functions as a shared data type library of collaborative maps, arrays, and text structures that converge automatically across distributed clients, serving as a local-first data store and a collaborative editor backend. The system distinguishes itself through a synchronization engine that encodes document changes into commutative binary updates. It employs state-vector based differencing to transmit only missing incremental updates between peers and uses relative-positi
High-performance CRDT implementation for shared data synchronization.
xi-editor is a high-performance text editor core written in Rust. It employs a client-server architecture that separates the backend editor logic from the user interface, allowing diverse frontends to communicate with the core via a standardized protocol. The project is distinguished by its use of rope-based text buffers for efficient manipulation of large documents and a collaborative engine powered by conflict-free replicated data types to synchronize concurrent edits. It further features an extensible plugin system that integrates external binaries and third-party tools through JSON-based
Transforms edits from old revisions to be compatible with the current document head using priority-based ordering.
Etherpad-lite is a web-based platform designed for real-time collaborative text editing. It enables multiple users to view and modify the same document simultaneously, utilizing an operational transformation engine to synchronize content across all connected client sessions. The platform distinguishes itself through a modular, plugin-based architecture that allows for the integration of third-party extensions to introduce custom functionality. It provides a comprehensive programmatic interface for document management, allowing users to automate the creation, update, and retrieval of text docu
Open-source real-time collaborative editor platform.
Automerge ist eine Engine zur verteilten Zustandssynchronisation und eine Bibliothek für konfliktfreie replizierte Datentypen (CRDTs). Sie ermöglicht es mehreren Knoten, gleichzeitige Updates an einem gemeinsamen Datensatz vorzunehmen, während garantiert wird, dass alle Replikate schließlich in denselben Zustand konvergieren. Das Projekt bietet eine in Rust geschriebene Hochleistungs-Implementierung zur Verwaltung von Zustandszusammenführungen und Synchronisation. Es verwendet ein byte-komprimiertes Synchronisationsprotokoll, um minimale Delta-Updates zwischen Peers zu übertragen, was die Datenkonsistenz in Peer-to-Peer- und Echtzeit-Kollaborationsumgebungen erleichtert. Das System deckt breite Funktionen für verteilten geteilten Zustand ab, einschließlich kausaler Graph-Konfliktauflösung, Operation-Log-Replay und sprachunabhängiger Datencodierung. Es enthält Verifizierungsprozesse, um sicherzustellen, dass Dokumente und Datenwerte über verschiedene Betriebssysteme und Sprachimplementierungen hinweg konsistent interpretiert werden.
Library providing fast CRDT implementations and sync protocols.
ShareJS ist eine kollaborative Dokumentendatenbank und Synchronisations-Engine, die für die Verwaltung gemeinsam genutzter Zustände in Echtzeit konzipiert ist. Sie bietet eine Operational-Transform-Sync-Engine, um die gleichzeitige Bearbeitung von Klartext- und JSON-Daten zu ermöglichen, sowie eine RESTful-Synchronisations-API für die Verwaltung von Dokumentzuständen via HTTP. Das System verfügt über eine Offline-First-Datensynchronisationsschicht, die lokale Änderungen bei Verbindungsunterbrechung in eine Warteschlange stellt und Bearbeitungen bei Wiederherstellung der Verbindung automatisch überträgt. Es enthält zudem eine Middleware-Zugriffskontrollschicht, die Datenbankanfragen abfängt, um Sicherheitsrichtlinien durchzusetzen und Anfragen umzuschreiben. Die Plattform deckt ein breites Spektrum an Funktionen ab, einschließlich Live-Query-Abonnements, Echtzeit-Änderungsbenachrichtigungen und gleichzeitiger Inhaltssynchronisation. Diese Komponenten ermöglichen die Erstellung von Daten-Feeds, bei denen Clients sofort benachrichtigt werden, wenn Backend-Dokumente, die bestimmten Abfragen entsprechen, aktualisiert werden.
Library for concurrent content editing using operational transforms.
NOTE: This OT type counts characters using UTF16 offsets instead of unicode codepoints. This is slightly faster in javascript, but its incompatible with ot implementations in other languages. For future projects I recommend that you use ot-text-unicode instead. ot-text-unicode also has full…
Operational transform library for plain text manipulation.
This OT type can be used to edit plaintext documents, like sourcecode or markdown. It allows invertible or non-invertible text operations.
Unicode-aware operational transform library for text editing.
ShareDB is a realtime database backend based on Operational Transformation (OT) of JSON documents. It is the realtime backend for the DerbyJS web application framework.
Real-time database backend for collaborative applications using operational transforms.