Repolode
loro-dev

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. 1

    Abra o tutorial Getting Started vinculado no README

  2. 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