Repolode
loro-dev

loro-dev/loro

CRDT-библиотека на Rust с привязками для JS/WASM и Swift для совместной работы, слияния и версионирования данных приложений в стиле JSON.

Звёзды
6,237
Форки
193
Открытые issues
66
Последний коммит
2 часа назад

Что это?

Loro — библиотека CRDT (Conflict-free Replicated Data Type) для создания local-first-приложений и приложений для совместной работы. Документы можно редактировать офлайн на каждом узле, а затем автоматически объединять при синхронизации — без центрального сервера, который разрешает конфликты.

Библиотека предоставляет несколько типов данных: редактируемый текст на основе алгоритма Fugue, CRDT для форматированного текста, перемещаемое дерево, перемещаемый список и карту с правилом «последняя запись побеждает». Документы поддерживают дельта-обновления, быструю загрузку, перемещение по истории во времени и поверхностные снимки, похожие на shallow clone в Git.

Loro написана на Rust и доступна напрямую из Rust, из JavaScript через WebAssembly (пакет loro-crdt в npm) и из Swift. Поддержка других языков реализована в проекте loro-ffi.

Ключевые возможности

  • 01Автоматическое слияние параллельных правок между узлами
  • 02Редактирование текста и CRDT для форматированного текста на основе Fugue
  • 03Типы данных «перемещаемое дерево» и «перемещаемый список»
  • 04Перемещение по истории документа во времени
  • 05Поверхностные снимки, похожие на shallow clone в Git
  • 06Дельта-обновления для синхронизации только изменений

Сценарии использования

  • Добавление совместной работы в реальном времени в приложение на основе JSON без центрального сервера для слияния данных
  • Создание офлайн-ориентированных редакторов заметок или документов с последующей синхронизацией
  • Версионирование структурированных данных приложения с просмотром истории
  • Совместное редактирование форматированного текста в веб-приложениях или приложениях на Swift

Быстрый старт

  1. 1

    Откройте учебное руководство Getting Started, ссылка на которое приведена в README

  2. 2

    В проекте на JS импортируйте LoroDoc и LoroList из пакета loro-crdt, как в примере из README

В подборках

Темы

Частые вопросы

Что такое loro?
CRDT-библиотека на Rust с привязками для JS/WASM и Swift для совместной работы, слияния и версионирования данных приложений в стиле JSON. Loro — библиотека CRDT (Conflict-free Replicated Data Type) для создания local-first-приложений и приложений для совместной работы. Документы можно редактировать офлайн на каждом узле, а затем автоматически объединять при синхронизации — без центрального сервера, который разрешает конфликты.
loro можно использовать бесплатно? Какая у него лицензия?
loro распространяется с открытым исходным кодом под лицензией MIT. Перед использованием в коммерческих продуктах проверьте условия лицензии.
loro всё ещё поддерживается?
Активно поддерживается. Последний коммит в loro — 22 окт. 2026 г..
Для чего можно использовать loro?
Добавление совместной работы в реальном времени в приложение на основе JSON без центрального сервера для слияния данных Создание офлайн-ориентированных редакторов заметок или документов с последующей синхронизацией Версионирование структурированных данных приложения с просмотром истории Совместное редактирование форматированного текста в веб-приложениях или приложениях на Swift
Как установить loro?
Откройте учебное руководство Getting Started, ссылка на которое приведена в README В проекте на JS импортируйте LoroDoc и LoroList из пакета loro-crdt, как в примере из README
Где скачать loro?
Исходный код и инструкции по установке — на GitHub: https://github.com/loro-dev/loro

Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.

Похожие проекты

JavaScript-движок синхронизации графов и набор инструментов для создания децентрализованных приложений с поддержкой офлайн-режима, сквозным шифрованием и синхронизацией между узлами.

19,1 тыс.1,2 тыс.JavaScriptOtherОбновлён 8 дней назад