Um mecanismo e toolkit JavaScript para sincronizar grafos e criar apps descentralizados, offline-first e criptografados de ponta a ponta, com sincronização peer-to-peer.
loro-dev/loro
Biblioteca CRDT em Rust, com bindings para JS/WASM e Swift, para tornar dados de apps no estilo JSON colaborativos, mescláveis e versionados.
- Estrelas
- 6,238
- Forks
- 193
- Issues abertas
- 66
- Último commit
- há 22 horas
O que é?
Loro é uma biblioteca CRDT (tipo de dado replicado livre de conflitos) para criar aplicações local-first e colaborativas. Cada peer pode editar documentos offline, que depois são mesclados automaticamente quando os peers sincronizam, sem que um servidor central decida como resolver conflitos.
A biblioteca oferece vários tipos de dados: edição de texto baseada no algoritmo Fugue, um CRDT de rich text, uma árvore móvel, uma lista móvel e um mapa last-write-wins. Os documentos oferecem atualizações delta, carregamento rápido, navegação pelo histórico e snapshots superficiais que funcionam como um clone shallow do Git.
Loro é escrito em Rust e pode ser usado diretamente em Rust, em JavaScript por meio de WebAssembly (o pacote npm loro-crdt) e em Swift. Outras linguagens são atendidas pelo projeto loro-ffi.
Recursos principais
- 01Mesclagem automática de edições simultâneas entre peers
- 02Edição de texto e CRDTs de rich text baseados em Fugue
- 03Tipos de dados de árvore móvel e lista móvel
- 04Navegação pelo histórico do documento
- 05Snapshots superficiais semelhantes a clones shallow do Git
- 06Atualizações delta para sincronizar apenas as mudanças
Casos de uso
- Adicionar colaboração em tempo real a um app baseado em JSON sem um servidor central de mesclagem
- Criar editores de notas ou documentos offline-first que sincronizam depois
- Versionar dados estruturados de aplicações com navegação pelo histórico
- Edição colaborativa de rich text em apps web ou Swift
Início rápido
- 1
Abra o tutorial Getting Started vinculado no README
- 2
Em um projeto JS, importe LoroDoc e LoroList do pacote loro-crdt, como no exemplo do README
Em coleções
Tópicos
Perguntas frequentes
- O que é loro?
- Biblioteca CRDT em Rust, com bindings para JS/WASM e Swift, para tornar dados de apps no estilo JSON colaborativos, mescláveis e versionados. Loro é uma biblioteca CRDT (tipo de dado replicado livre de conflitos) para criar aplicações local-first e colaborativas. Cada peer pode editar documentos offline, que depois são mesclados automaticamente quando os peers sincronizam, sem que um servidor central decida como resolver conflitos.
- loro é gratuito? Qual é a licença?
- loro é open source sob a licença MIT. Confira os termos da licença antes de usá-lo em produtos comerciais.
- loro ainda é mantido?
- Manutenção ativa. O último commit de loro foi em 22 de out. de 2026.
- Para que posso usar loro?
- Adicionar colaboração em tempo real a um app baseado em JSON sem um servidor central de mesclagem Criar editores de notas ou documentos offline-first que sincronizam depois Versionar dados estruturados de aplicações com navegação pelo histórico Edição colaborativa de rich text em apps web ou Swift
- Como instalar loro?
- Abra o tutorial Getting Started vinculado no README Em um projeto JS, importe LoroDoc e LoroList do pacote loro-crdt, como no exemplo do README
- Onde consigo loro?
- O código-fonte e as instruções de instalação estão no GitHub: https://github.com/loro-dev/loro
Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.
Projetos relacionados
Uma base de conhecimento open source e local-first que reúne documentos, quadro branco e tabelas em um só espaço de trabalho, como alternativa ao Notion e ao Miro.
Um banco de dados NoSQL reativo e local-first para apps JavaScript, executado em navegadores, Node.js, React Native e Electron, com replicação para seu próprio backend.
Build de Postgres em WASM incorporável, distribuído como biblioteca TypeScript e executado em navegadores, Node.js, Bun e Deno.
Alternativa ao PowerPoint em um único arquivo HTML independente, com visualizador, modo de apresentação e editor próprios.
Table Habit é um rastreador de hábitos gratuito e de código aberto feito em Flutter, voltado a micro-hábitos, com sincronização WebDAV e armazenamento offline-first.