Обзор пакетов
Публичные пакеты Collaboration SDK для Core, History, Thread Comment, Worktree и Office Exchange.
Это карта выбора пакетов. Сначала соберите Core Collaboration, затем добавьте нужные расширения. Все пакеты устанавливать не нужно.
Core Collaboration
Core Collaboration предоставляет основной путь браузерной совместной работы, серверного протокола, OT, ревизий и хранения.
| Среда | Пакет | Основная ответственность |
|---|---|---|
| Браузер | @univerjs-pro/collaboration | Регистрирует базовые браузерные возможности |
| Браузер | @univerjs-pro/collaboration-client | Загрузка Units, отправка изменений и синхронизация |
| Браузер | @univerjs-pro/collaboration-client-ui | Предоставляет UI состояния и стили |
| Server | @univerjs-pro/collaboration-transport-node | Принимает HTTP и WebSocket Node.js |
| Server | @univerjs-pro/collaboration-endpoint | Реализует протокол Client, Sessions, Rooms и Presence |
| Server | @univerjs-pro/collaboration-service | Управляет Units, OT, ревизиями и API ядра |
| База данных | @univerjs-pro/collaboration-database-memory | Хранение в процессе для тестов, примеров и временной разработки |
| База данных | @univerjs-pro/collaboration-database-sqlite | SQLite для разработки, тестов, локальных и небольших установок |
| Multi-node | @univerjs-pro/collaboration-cluster-redis | Pub/sub-адаптер и хранилище session tickets на Redis для развёртывания на нескольких узлах |
Core Server нужны Transport, Endpoint, Service и один Database Adapter. Memory и SQLite реализуют один контракт; обычно выбирают один. Для развёртывания на нескольких узлах также нужны pub/sub-адаптер и общее хранилище session tickets. Оба контракта (IPubSubAdapter, ISessionTicketStore) определяет Endpoint; SDK предоставляет реализацию на Redis.
History
History строит индекс версий по событиям создания Unit и фиксации изменений Core.
| Среда | Пакет | Основная ответственность |
|---|---|---|
| Браузер | Повторно использует Core Client/UI | Показывает и читает историю |
| Server | @univerjs-pro/collaboration-history-service | Строит и запрашивает индекс истории |
| Server | @univerjs-pro/collaboration-history-endpoint | Предоставляет Client протокол History |
| База данных | @univerjs-pro/collaboration-history-database-sqlite | Хранит производный индекс History |
История — восстанавливаемый производный индекс. Наборы изменений Core остаются источником истины содержимого.
Thread Comment
Thread Comment управляет текстами, ответами и статусом решения комментариев Sheets и Docs.
| Среда | Пакет | Основная ответственность |
|---|---|---|
| Браузер | Использует пакеты Core Collaboration | Использует Comment Client и UI |
| Server | @univerjs-pro/collaboration-comment-service | Управляет комментариями и событием commentCommitted |
| Server | @univerjs-pro/collaboration-comment-endpoint | Предоставляет протокол и публикует обновления через Unit Rooms |
| База данных | @univerjs-pro/collaboration-comment-database-memory | Хранение комментариев в процессе |
| База данных | @univerjs-pro/collaboration-comment-database-sqlite | Хранение комментариев в SQLite |
Comment Adapter хранит комментарии. Движущиеся с содержимым якоря остаются в снимках и изменениях Core.
Worktree
Worktree предоставляет изолированные черновики, переходы статуса и слияние по Unit.
| Среда | Пакет | Основная ответственность |
|---|---|---|
| Браузер | @univerjs-pro/collaboration-worktree-client | Подключает черновики, статус и слияние Worktree |
| Server | @univerjs-pro/collaboration-worktree-service | Управляет изменениями черновиков, статусом и слиянием |
| Server | @univerjs-pro/collaboration-worktree-endpoint | Предоставляет протокол Worktree Client |
| База данных | @univerjs-pro/collaboration-worktree-database-memory | Хранение Worktree в процессе |
| База данных | @univerjs-pro/collaboration-worktree-database-sqlite | Хранение Worktree в SQLite |
Worktree Service сливает в trunk через Core Service, поэтому Middleware нужны на обеих границах.
Office Exchange
Office Exchange — прикладной процесс преобразования файлов с Collaboration Service, без собственного совместного Database Adapter.
| Среда | Пакет | Основная ответственность |
|---|---|---|
| Браузер | @univerjs-pro/exchange-client | Базовые браузерные возможности обмена файлами |
| Браузер | @univerjs-pro/sheets-exchange-client | Импорт и экспорт Sheet |
| Server | @univerjs-pro/exchange-node | Преобразование Office и данных Univer в Node.js |
При импорте данные передаются в createUnitFromSnapshot(), при экспорте подтверждённая ревизия читается через Core Service. Файлы, задачи и бизнес-API контролирует приложение.
Правила выбора
- Начните с пакетов Core из Быстрого старта.
- Выберите один Core Database Adapter: Memory, SQLite или собственный.
- Для развёртывания на нескольких узлах добавьте pub/sub-адаптер и хранилище session tickets на Redis.
- Установите только нужные расширения.
- Создайте отдельный Adapter для каждого модуля даже при общем файле SQLite.
Связи описаны в Модулях расширений, запускаемые сборки — в Примерах.
Насколько полезно это руководство?