Automerge

Protocolo de Datos Descentralizado

A CRDT library and accompanying sync protocol for local-first collaborative software. An Automerge document behaves like a JSON object that any number of peers can modify concurrently, offline, and merge without conflict or manual resolution; the library also preserves full change history, allowing version-control-like operations over application data. Version 2.0 rewrote the original JavaScript implementation in Rust, delivering a compact binary document format and substantially better performance, with bindings for JavaScript/WASM, Swift, Python and others. Rich-text support with a ProseMirror binding was added subsequently.

Comunidad

Detalles

Licencia Permissive (MIT) — https://github.com/automerge/automerge (Rust core), automerge-repo (sync and storage), plus language bindings
Estado de Desarrollo 🟢 Activo
Propietario Ink & Switch — the independent industrial research lab provides full-time engineering staff, including lead maintainer Alex Good, Orion Henry, Brooklyn Zelenka and John Mumm. Co-created by Martin Kleppmann (University of Cambridge); the project describes contributors including engineers who co-founded Heroku
Órgano de Gobierno Ink & Switch (independent non-commercial research lab providing full-time engineering staff)
País International — Ink & Switch is a distributed research lab; Martin Kleppmann is at the University of Cambridge, UK
Año de Inicio 2015
Stack Rust core (since 2.0) with bindings to JavaScript/WASM, Swift, Python, C and others; automerge-repo in TypeScript for sync and persistence
Financiamiento Research lab — Ink & Switch funds full-time engineering; no venture funding or token
Ú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.

Vista de topología: AutomergeEsta herramienta en el centro y lo que se relaciona directamente con ella. Cada línea nombra el tipo de relación.AutomergeLoro (Base de)LoroDXOS (Aloja a, Interopera con, Protocolo hablado por)DXOSKeyhive (Aloja a, Interopera con, Protocolo hablado por, Almacenamiento para)KeyhiveNextGraph (Almacenamiento para)NextGraph
  • Loro (Herramienta): Base de
  • DXOS (Herramienta): Aloja a, Interopera con, Protocolo hablado por
  • Keyhive (Herramienta): Aloja a, Interopera con, Protocolo hablado por, Almacenamiento para
  • NextGraph (Herramienta): Almacenamiento para

Abrir en el Explorador de grafo

Capacidades

Edición libre de conflictos Almacenamiento local-first

Protocolo de Datos Descentralizado Atributos

Orígenes Local-first software research — emerged from Ink & Switch's local-first research programme and Martin Kleppmann's CRDT work, aiming to give applications real-time and asynchronous collaboration without a central server and without users losing ownership of their data
Base de Datos N/A as a store — Automerge is a document data structure with pluggable persistence. automerge-repo supplies storage adapters (IndexedDB, filesystem, others); the library itself imposes no database
Lenguaje de Consulta N/A — documents are accessed as native language objects (JSON-like) rather than through a query language
Formatos de Datos Compact binary document format introduced in 2.0, encoding both current state and full change history; a JSON-compatible in-memory representation; incremental change and sync-message encodings for the sync protocol
Edición Colaborativa en Vivo Collaborative real-time editing (CRDTs) — concurrent edits from any number of peers merge deterministically without manual conflict resolution, both live and after extended offline work
Edición de Texto Enriquecido Rich text editing — official rich-text CRDT support with a fully supported ProseMirror binding, developed out of Ink & Switch's Peritext research
Soporte Móvil Library-level — Swift bindings support iOS; WASM bindings run in mobile web contexts
Soporte Web Yes — JavaScript/WASM bindings are the most widely used surface
Aplicaciones Nativas Library-level — Rust core embeds directly in native applications; Swift and C bindings available
Términos Free / open source (MIT); no hosted service required. automerge-repo can sync peer-to-peer or via a generic relay the user runs
Fondos Unknown — Ink & Switch does not publish per-project budgets
Basado En CRDT research literature (RGA-family sequence CRDTs, Peritext for rich text); original work rather than a derivative of another protocol. automerge-repo layers sync and storage on top of the core
Arquitectura P2P Transport-agnostic peer-to-peer sync — the sync protocol exchanges compact difference messages between any two peers over any duplex channel, converging without a coordinator. automerge-repo supports direct peer connections and optional relay servers, which hold no authority over the data
Red de Superposición Store-wide — synchronisation is scoped to a document (or a repository of documents) shared between the peers that hold it; there is no global network
Direccionamiento por Contenido No — documents are identified by document ID with changes referenced by hash internally, not addressed by content hash externally
Local-First Local-First — the canonical example of the pattern: full read/write capability offline against a complete local replica, with automatic convergence on reconnection
Cifrado de Extremo a Extremo (E2EE) No — Automerge does not encrypt documents itself; confidentiality is the responsibility of the transport or the embedding application. Keyhive (in this file) is the Ink & Switch effort addressing access control and encryption for Automerge
Biblioteca de CRDTs Automerge — this entry is the library. Rust core with JavaScript/WASM, Swift, Python and C bindings
Tolerancia a Fallos Bizantinos No — 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
Firma N/A — changes carry actor identifiers but are not signed by the library; authentication is left to the embedding system
Permisos N/A — no access-control model in the core library; any peer holding a document can modify it. Access control is being addressed separately by Keyhive
Compatibilidad con la Web Semántica N/A — custom binary/document model with no RDF, JSON-LD or SPARQL layer
Contrato Inteligente N/A — no ledger or contract component
Posición en la Pila del Protocolo Application-layer (built on TCP/IP) — transport-agnostic; sync runs over WebSocket, WebRTC, BroadcastChannel or any duplex channel
Incorporación de Activos/Valor None — no token or value-transfer mechanism
Madurez del Protocolo / Estandarización De facto standard with a documented format — the binary document format and sync protocol are documented and stable since 2.0, and multiple language bindings interoperate. No standards-body involvement; the Rust implementation remains the normative reference

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.

Interopera con
Almacenamiento para
Base de
Protocolo hablado por