A high-performance CRDT framework for building collaborative applications, providing shared data types — Y.Map, Y.Array, Y.Text, Y.XmlFragment — that merge concurrent changes automatically. Its distinguishing strengths are speed and ecosystem breadth: bindings exist for most major rich-text and code editors (ProseMirror, TipTap, Quill, CodeMirror, Monaco, Slate), and provider modules supply sync over WebSocket, WebRTC, IndexedDB and other channels. y-protocols defines the awareness and sync message formats. Yjs is the most widely deployed CRDT library in production collaborative software, and underpins several applications in this file.
LicenciaPermissive (MIT) — https://github.com/yjs/yjs; y-protocols and the provider/binding ecosystem also MIT
Estado de Desarrollo 🟢 Activo
PropietarioKevin Jahns — independent open-source developer and sole principal maintainer; the yjs GitHub organization hosts the core library and the provider and binding ecosystem
Órgano de Gobierno None (single principal maintainer, Kevin Jahns; no foundation or governing body. Recent v14 work funded by ZenDiS and DINUM as funders, not governors)
PaísGermany (maintainer based in Germany)
Año de Inicio 2015
StackJavaScript/TypeScript core with a highly optimised binary encoding; Yrs is a Rust port maintained separately, used where native performance or non-JS embedding is needed
FinanciamientoIndependent open source with project-specific public funding — recent versioning and track-changes work funded via the BlockNote collaboration by ZenDiS (OpenDesk) and DINUM (La Suite Docs); otherwise sponsorship and consulting
Última Investigación 31 jul 2026
Vista de topología
Esta herramienta en el centro y lo que se relaciona directamente con ella. Cada línea nombra el tipo de relación.
Edición libre de conflictos Almacenamiento local-first
Protocolo de Datos Descentralizado Atributos
OrígenesCollaborative text editing — built to make real-time collaborative editing practical in the browser without operational transformation's server-coordination requirement, then generalised into a broad shared-data-type framework
Base de DatosN/A as a store — Yjs is an in-memory CRDT with pluggable persistence; y-indexeddb, y-leveldb and similar providers supply storage
Lenguaje de ConsultaN/A — shared types are accessed as native JavaScript objects; no query language
Formatos de DatosHighly optimised binary update encoding (document state and incremental updates); y-protocols defines the sync and awareness message formats; shared types Y.Map, Y.Array, Y.Text, Y.XmlFragment and Y.XmlElement
Edición Colaborativa en VivoCollaborative real-time editing (CRDTs) — the library's primary purpose, with an awareness protocol carrying ephemeral presence state such as cursors and selections alongside document updates
Edición de Texto EnriquecidoRich text editing — Y.Text and Y.XmlFragment support formatted content, with official and community bindings for ProseMirror, TipTap, Quill, Slate, CodeMirror and Monaco; v14 adds versioning and track changes
Soporte MóvilLibrary-level — runs in mobile browsers and React Native; Yrs enables native mobile embedding
Soporte WebYes — the browser is Yjs's primary environment and the source of most of its adoption
Aplicaciones NativasLibrary-level — via Yrs (Rust) for native embedding, or Electron and similar for JS applications
TérminosFree / open source (MIT), described by the project as free forever. No hosted service is required; sync providers may be self-hosted
FondosUnknown — no consolidated figures published; funding is per-engagement rather than a raised total
Basado EnYATA (Yet Another Transformation Approach) — the sequence CRDT algorithm underlying Yjs, published by Kevin Jahns; original work rather than a derivative implementation. y-protocols layers sync and awareness on top
Arquitectura P2PTransport-agnostic, provider-based — Yjs itself defines only the merge semantics and update encoding; connectivity comes from separate provider modules supporting WebSocket (client-server or relay), WebRTC (direct peer-to-peer), and BroadcastChannel (same-device tabs). Peers converge regardless of topology
Red de SuperposiciónStore-wide — sync is scoped to a document shared between connected peers or through a room on a provider; no global network exists
Direccionamiento por ContenidoNo — documents are identified by document ID with changes referenced by hash internally, not addressed by content hash externally
Local-FirstLocal-First — full offline editing against a local replica with automatic convergence on reconnection, provided a persistence provider such as y-indexeddb is used
Cifrado de Extremo a Extremo (E2EE)Provider-dependent — Yjs does not encrypt documents itself; some providers (notably y-webrtc) support encrypting updates with a shared room key, but confidentiality is not a property of the core library
Biblioteca de CRDTsYjs — this entry is the library. JavaScript/TypeScript core, with Yrs as the Rust port
Tolerancia a Fallos BizantinosNo — CRDT merge is designed for cooperating peers; a malicious peer can inject arbitrary valid-looking changes. Authentication and authorization are left to the surrounding system
FirmaN/A — updates are not signed by the library; authenticity is the embedding application's responsibility
PermisosN/A — no access-control model in the core; any peer with document access can modify it. Authorization is enforced by the provider or surrounding application
Compatibilidad con la Web SemánticaN/A — custom binary/document model with no RDF, JSON-LD or SPARQL layer
Contrato InteligenteN/A — no ledger or contract component
Posición en la Pila del ProtocoloApplication-layer (built on TCP/IP) — transport-agnostic; sync runs over WebSocket, WebRTC, BroadcastChannel or any duplex channel
Incorporación de Activos/ValorNone — no token or value-transfer mechanism
Madurez del Protocolo / EstandarizaciónDe facto standard, implementation-defined — extremely widely deployed and the update encoding is stable and interoperable across the ecosystem, but the normative definition remains the JavaScript implementation plus y-protocols rather than an independent specification document. Yrs demonstrates the encoding is reimplementable, though it was written by porting rather than from a spec. No standards-body involvement
Relaciones
Cómo se conecta esta herramienta con otras herramientas y organizaciones, según relaciones revisadas por el responsable de datos de OpenHaven. Describen cómo se conectan los proyectos, no su calidad.