Loro

Decentralized Data Protocol

A CRDT (conflict-free replicated data type) library for local-first, real-time collaborative software. An application models its state as Loro's JSON-like collaborative types (text with Fugue-based merging, rich text, movable lists, movable trees, last-write-wins maps and counters); any number of peers edit independently and offline, export their updates as bytes, send them over any channel, and import the other side's updates to converge on the same state. Loro also keeps the full editing history, so a document can be time-travelled or branched like a version-controlled repository, and a shallow snapshot lets a document drop old history the way a shallow git clone does. It is a library, not a network: the project supplies the data structures and encoding, and the application chooses the transport. Available in Rust, JavaScript (via WebAssembly) and Swift, with bindings for other languages in a separate repository .

Company

Details

License Permissive (MIT). https://github.com/loro-dev/loro (Rust core, JavaScript/WASM package, Swift); https://github.com/loro-dev/loro-ffi (bindings for other languages)
Dev Status 🟢 Active
Owner Created in 2022 by Zixuan Chen and Leon Zhao, who are named on the project's About page as its contacts; the cited sources name no company, foundation or legal entity behind it
Governing Body The founding maintainers (Zixuan Chen and Leon Zhao); no foundation or formal governance is described in the cited sources
Country Not stated by the project.
Start Year 2022
Stack Rust core compiled to WebAssembly for JavaScript and TypeScript; Swift bindings; other languages through loro-ffi; npm package loro-crdt; a browser-based Loro Inspector for viewing a document's state and history
Funding GitHub Sponsors are shown on the repository; no other funding source is stated by the project
Last Investigated Oct 29, 2026

Topology view

This tool in the centre and the things it is directly related to. Each line names the kind of relationship.

Topology view: LoroThis tool in the centre and the things it is directly related to. Each line names the kind of relationship.LoroAutomerge (Based on)Automerge

Open in Graph Explorer

Affordances

Local-first storage Conflict-free editing Version history

Decentralized Data Protocol Attributes

Origins Local-first software: built to make collaborative, offline-capable applications easy, with the Event Graph Walker (Eg-walker) merge algorithm adapted from Joseph Gentle's diamond-types, columnar encoding ideas from Automerge, merge behaviour similar to Yjs, and the Fugue text algorithm from Matthew Weidner's work, all credited by the project
Database N/A: not a database. Loro is an in-memory document library; the application persists documents by exporting snapshots or updates as bytes to storage of its choice
Query Language JSONPath queries over a document (Loro lists a JSONPath feature in its documentation); otherwise documents are used as native language objects
Data Formats A binary snapshot and update encoding for documents, shallow snapshots, and a JSON view (toJSON) of the current state
Collaborative Live Editing Collaborative real-time editing (CRDTs): concurrent edits from any number of peers merge deterministically, both live and after offline work; an ephemeral store carries presence data such as cursors
Rich Text Editing Rich text editing: a rich-text CRDT with its own design write-up, and Fugue-based plain-text merging
Mobile Support Library-level: Swift bindings for iOS and macOS; WebAssembly in mobile browsers; other bindings through loro-ffi
Web Support Yes: the JavaScript/WebAssembly package is the main surface, with a browser inspector tool
Native Apps Library-level: the Rust crate embeds in native applications; Swift bindings exist
Terms Free and open source (MIT); no hosted service is required
Funds Not stated by the project.
Based On CRDT research and prior libraries: the Event Graph Walker algorithm (diamond-types), Fugue, and ideas from Automerge and Yjs, all credited by the project
P2P Architecture Transport-agnostic peer-to-peer synchronisation: peers exchange exported updates over any method the application provides, with no central coordinator needed to merge; the library implements no network layer of its own
Overlay Network None: Loro defines no network. Synchronisation is scoped to a document shared among the peers that hold it
Content Addressing No: operations carry peer and counter identifiers within a causal graph; documents are not addressed by content hash
Local-First Local-First: the project describes itself as built for local-first software; each peer holds a full replica and edits offline, merging when updates are exchanged
E2EE No: Loro does not encrypt documents itself; confidentiality is left to the transport or the embedding application
CRDTs Lib Loro: this entry is the library. Rust core with JavaScript/WASM and Swift bindings, plus loro-ffi for other languages
Byzantine Fault Tolerance No: CRDT merging assumes cooperating peers; the cited sources describe no defence against a peer that submits malformed or malicious operations
Signature N/A: operations are identified by peer ID and counter; the library does not sign them
Permissions N/A: no access-control model; any peer holding a document can edit it
Semantic Web Compatibility N/A: JSON-like document model with no RDF, JSON-LD or SPARQL layer
Smart Contract N/A: no ledger or contract component
Protocol Stack Position Application-layer: an in-process data-structure library that is independent of the transport
Asset / Value Embedding None: no token or value-transfer mechanism
Protocol Maturity / Standardization Library at version 1.x with documented concepts and a stable-looking release cadence; no standards-body involvement and no separate wire specification was found in the cited sources, so the Rust implementation is effectively the reference

Relationships

How this tool connects to other tools and organizations, from relationships reviewed by the OpenHaven data steward. They describe how projects connect, not how good they are.

Based on