Automerge
Decentralized Data Protocol
Community
Links
Details
License Permissive (MIT) — https://github.com/automerge/automerge (Rust core), automerge-repo (sync and storage), plus language bindings
Dev Status 🟢 Active
Owner 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
Governing Body Ink & Switch (independent non-commercial research lab providing full-time engineering staff)
Country International — Ink & Switch is a distributed research lab; Martin Kleppmann is at the University of Cambridge, UK
Start Year 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
Funding Research lab — Ink & Switch funds full-time engineering; no venture funding or token
Last Investigated Jul 1, 2026
Decentralized Data Protocol Attributes
Origins 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
Database 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
Query Language N/A — documents are accessed as native language objects (JSON-like) rather than through a query language
Data Formats 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
Collaborative Live Editing 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
Rich Text Editing Rich text editing — official rich-text CRDT support with a fully supported ProseMirror binding, developed out of Ink & Switch's Peritext research
Mobile Support Library-level — Swift bindings support iOS; WASM bindings run in mobile web contexts
Web Support Yes — JavaScript/WASM bindings are the most widely used surface
Native Apps Library-level — Rust core embeds directly in native applications; Swift and C bindings available
Terms Free / open source (MIT); no hosted service required. automerge-repo can sync peer-to-peer or via a generic relay the user runs
Funds Unknown — Ink & Switch does not publish per-project budgets
Based On 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
P2P Architecture 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
Overlay Network 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
Content Addressing 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
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
CRDTs Lib Automerge — this entry is the library. Rust core with JavaScript/WASM, Swift, Python and C bindings
Byzantine Fault Tolerance 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
Signature N/A — changes carry actor identifiers but are not signed by the library; authentication is left to the embedding system
Permissions 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
Semantic Web Compatibility N/A — custom binary/document model with no RDF, JSON-LD or SPARQL layer
Smart Contract N/A — no ledger or contract component
Protocol Stack Position Application-layer (built on TCP/IP) — transport-agnostic; sync runs over WebSocket, WebRTC, BroadcastChannel or any duplex channel
Asset / Value Embedding None — no token or value-transfer mechanism
Protocol Maturity / Standardization 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