Repolode
loro-dev

loro-dev/loro

Una biblioteca CRDT en Rust (con bindings para JS/WASM y Swift) para que los datos de aplicaciones similares a JSON sean colaborativos, combinables y tengan control de versiones.

Estrellas
6,238
Forks
193
Issues abiertos
66
Último commit
hace 22 horas

¿Qué es?

Loro es una biblioteca CRDT (tipo de dato replicado sin conflictos) para crear aplicaciones local-first y colaborativas. Cada par puede editar documentos sin conexión y, cuando se sincronizan, los cambios se combinan automáticamente, sin que un servidor central tenga que resolver los conflictos.

La biblioteca ofrece varios tipos de datos: edición de texto basada en el algoritmo Fugue, un CRDT de texto enriquecido, un árbol movible, una lista movible y un mapa de último escritor gana. Los documentos admiten actualizaciones delta, carga rápida, recorrer el historial en el tiempo y snapshots superficiales que funcionan como un clon superficial de Git.

Loro está escrito en Rust y se puede usar directamente desde Rust, desde JavaScript a través de WebAssembly (el paquete npm loro-crdt) y desde Swift. El proyecto loro-ffi ofrece compatibilidad con otros lenguajes.

Funciones clave

  • 01Combinación automática de ediciones simultáneas entre pares
  • 02Edición de texto y CRDT de texto enriquecido basados en Fugue
  • 03Tipos de datos de árbol movible y lista movible
  • 04Recorrido del historial del documento en el tiempo
  • 05Snapshots superficiales similares a los clones superficiales de Git
  • 06Actualizaciones delta para sincronizar solo los cambios

Casos de uso

  • Añadir colaboración en tiempo real a una aplicación basada en JSON, sin un servidor central para combinar cambios
  • Crear editores de notas o documentos offline-first que se sincronicen más tarde
  • Controlar las versiones de datos estructurados de una aplicación y consultar su historial
  • Editar texto enriquecido de forma colaborativa en aplicaciones web o Swift

Inicio rápido

  1. 1

    Abre el tutorial Getting Started enlazado en el README

  2. 2

    En un proyecto JS, importa LoroDoc y LoroList del paquete loro-crdt, como en el ejemplo del README

En colecciones

Temas

Preguntas frecuentes

¿Qué es loro?
Una biblioteca CRDT en Rust (con bindings para JS/WASM y Swift) para que los datos de aplicaciones similares a JSON sean colaborativos, combinables y tengan control de versiones. Loro es una biblioteca CRDT (tipo de dato replicado sin conflictos) para crear aplicaciones local-first y colaborativas. Cada par puede editar documentos sin conexión y, cuando se sincronizan, los cambios se combinan automáticamente, sin que un servidor central tenga que resolver los conflictos.
¿loro es gratuito? ¿Qué licencia tiene?
loro es open source bajo la licencia MIT. Revisa los términos de la licencia antes de usarlo en productos comerciales.
¿loro sigue mantenido?
Mantenimiento activo. El último commit de loro fue el 22 oct 2026.
¿Para qué puedo usar loro?
Añadir colaboración en tiempo real a una aplicación basada en JSON, sin un servidor central para combinar cambios Crear editores de notas o documentos offline-first que se sincronicen más tarde Controlar las versiones de datos estructurados de una aplicación y consultar su historial Editar texto enriquecido de forma colaborativa en aplicaciones web o Swift
¿Cómo se instala loro?
Abre el tutorial Getting Started enlazado en el README En un proyecto JS, importa LoroDoc y LoroList del paquete loro-crdt, como en el ejemplo del README
¿Dónde consigo loro?
El código fuente y las instrucciones de instalación están en GitHub: https://github.com/loro-dev/loro

Resumen generado por IA a partir del README del proyecto. Las estadísticas de GitHub se actualizan a diario.

Proyectos relacionados