Loro

Protocolo de Dados Descentralizado

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 .

Empresa

Detalhes

Licença 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)
Status de Dev 🟢 Ativo
Proprietário 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
Órgão de Governança The founding maintainers (Zixuan Chen and Leon Zhao); no foundation or formal governance is described in the cited sources
País Not stated by the project.
Ano de Início 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
Financiamento GitHub Sponsors are shown on the repository; no other funding source is stated by the project
Última Investigação 29 de out. de 2026

Visão de topologia

Esta ferramenta no centro e o que se relaciona diretamente com ela. Cada linha nomeia o tipo de relação.

Visão de topologia: LoroEsta ferramenta no centro e o que se relaciona diretamente com ela. Cada linha nomeia o tipo de relação.LoroAutomerge (Baseado em)Automerge

Abrir no Explorador de grafo

Capacidades

Armazenamento local-first Edição livre de conflitos Histórico de versões

Protocolo de Dados Descentralizado Atributos

Origens 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
Banco de Dados 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
Linguagem de Consulta JSONPath queries over a document (Loro lists a JSONPath feature in its documentation); otherwise documents are used as native language objects
Formatos de Dados A binary snapshot and update encoding for documents, shallow snapshots, and a JSON view (toJSON) of the current state
Edição Colaborativa em Tempo Real 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
Edição de Texto Rico Rich text editing: a rich-text CRDT with its own design write-up, and Fugue-based plain-text merging
Suporte Móvel Library-level: Swift bindings for iOS and macOS; WebAssembly in mobile browsers; other bindings through loro-ffi
Suporte Web Yes: the JavaScript/WebAssembly package is the main surface, with a browser inspector tool
Aplicativos Nativos Library-level: the Rust crate embeds in native applications; Swift bindings exist
Termos Free and open source (MIT); no hosted service is required
Fundos Not stated by the project.
Baseado Em CRDT research and prior libraries: the Event Graph Walker algorithm (diamond-types), Fugue, and ideas from Automerge and Yjs, all credited by the project
Arquitetura P2P 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
Rede de Sobreposição None: Loro defines no network. Synchronisation is scoped to a document shared among the peers that hold it
Endereçamento por Conteúdo 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
Criptografia de Ponta a Ponta (E2EE) No: Loro does not encrypt documents itself; confidentiality is left to the transport or the embedding application
Biblioteca de CRDTs Loro: this entry is the library. Rust core with JavaScript/WASM and Swift bindings, plus loro-ffi for other languages
Tolerância a Falhas Bizantinas No: CRDT merging assumes cooperating peers; the cited sources describe no defence against a peer that submits malformed or malicious operations
Assinatura N/A: operations are identified by peer ID and counter; the library does not sign them
Permissões N/A: no access-control model; any peer holding a document can edit it
Compatibilidade com a Web Semântica N/A: JSON-like document model with no RDF, JSON-LD or SPARQL layer
Contrato Inteligente N/A: no ledger or contract component
Posição na Pilha de Protocolo Application-layer: an in-process data-structure library that is independent of the transport
Incorporação de Ativo / Valor None: no token or value-transfer mechanism
Maturidade / Padronização do Protocolo 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

Relacionamentos

Como esta ferramenta se conecta a outras ferramentas e organizações, a partir de relacionamentos revisados pelo responsável pelos dados do OpenHaven. Descrevem como os projetos se conectam, não a qualidade deles.

Baseado em