Motor y toolkit de sincronización de grafos en JavaScript para crear apps descentralizadas, offline-first y cifradas de extremo a extremo, con sincronización entre pares.
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
Abre el tutorial Getting Started enlazado en el README
- 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
Base de conocimiento open source y local-first que reúne documentos, un lienzo de pizarra y tablas en un solo espacio de trabajo, como alternativa a Notion y Miro.
Base de datos NoSQL reactiva y local-first para aplicaciones JavaScript, compatible con navegadores, Node.js, React Native y Electron, con replicación a tu propio backend.
Versión de Postgres en WASM integrable, distribuida como biblioteca TypeScript y compatible con navegadores, Node.js, Bun y Deno.
Una alternativa a PowerPoint en un único archivo HTML independiente que incluye su propio visor, modo de presentación y editor.
Table Habit es un tracker de hábitos gratuito y de código abierto para microhábitos, con sincronización WebDAV y almacenamiento offline-first.