Обзор пакетов

Публичные пакеты Collaboration SDK для Core, History, Thread Comment, Worktree, File и Office Exchange.

Это карта выбора пакетов. Сначала соберите Core Collaboration, затем добавьте нужные расширения. Все пакеты устанавливать не нужно.

Серверные пакеты Database Adapter, File и Office Exchange открыты под лицензией Apache-2.0; исходный код находится в univer-collaboration-sdk-community. У них тот же префикс и та же версия, что у остальных пакетов, и устанавливаются они так же.

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-sqliteSQLite для разработки, тестов, локальных и небольших установок
База данных@univerjs-pro/collaboration-database-postgresХранение в PostgreSQL, общее для нескольких узлов
Multi-node@univerjs-pro/collaboration-cluster-redisPub/sub-адаптер и хранилище session tickets на Redis для развёртывания на нескольких узлах

Core Server нужны Transport, Endpoint, Service и один Database Adapter. Memory, SQLite и PostgreSQL реализуют один контракт; обычно выбирают один. Для развёртывания на нескольких узлах также нужны 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-memoryХранение индекса 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 нужны на обеих границах.

File

File хранит бинарные файлы, которые загружают клиенты Univer: изображения и вложения, вставленные в Unit, а также исходные и результирующие файлы импорта и экспорта. В данных Unit записывается только ID файла.

СредаПакетОсновная ответственность
БраузерПовторно использует Core Collaboration ClientЗагружает изображения и вложения и преобразует ID файлов в URL
Server@univerjs-pro/collaboration-file-serviceПрименяет правила владения, Middleware и очистку временных файлов
Server@univerjs-pro/collaboration-file-endpointПредоставляет маршруты загрузки, sign-url и скачивания
База данных@univerjs-pro/collaboration-file-memoryХранение метаданных и содержимого в памяти процесса
База данных@univerjs-pro/collaboration-file-database-sqliteХранение метаданных файлов в SQLite
База данных@univerjs-pro/collaboration-file-database-postgresХранение метаданных файлов в PostgreSQL
Хранилище@univerjs-pro/collaboration-file-blob-localХранит содержимое в локальном каталоге
Хранилище@univerjs-pro/collaboration-file-blob-s3Хранит содержимое в S3-совместимом объектном хранилище с подписанными прямыми ссылками

Метаданные и содержимое — два независимых контракта, поэтому каждый может следовать существующему хранилищу приложения, например метаданные в базе данных, а содержимое в объектном хранилище.

Office Exchange

Office Exchange импортирует файлы Office как совместные Units и экспортирует Units в файлы. Исходные и результирующие файлы хранит File.

СредаПакетОсновная ответственность
Браузер@univerjs-pro/exchange-clientБазовые браузерные возможности обмена файлами
Браузер@univerjs-pro/sheets-exchange-clientИмпорт и экспорт Sheet
Server@univerjs-pro/collaboration-exchange-serviceУправляет task импорта и экспорта, Middleware, созданием и чтением Units
Server@univerjs-pro/collaboration-exchange-endpointПредоставляет маршруты импорта, экспорта и task
Server@univerjs-pro/exchange-nodeПреобразование Office и данных Univer в Node.js

Exchange Service создаёт и читает Units через Core Service, а файлы читает и записывает через File Service, поэтому собирается вместе с Core и File.

Правила выбора

  1. Начните с пакетов Core из Быстрого старта.
  2. Выберите один Core Database Adapter: Memory, SQLite, PostgreSQL или собственный.
  3. Для развёртывания на нескольких узлах добавьте pub/sub-адаптер и хранилище session tickets на Redis.
  4. Установите только нужные расширения.
  5. Для изображений, вложений или импорта и экспорта сначала соберите File, затем при необходимости добавьте Office Exchange.
  6. Создайте отдельный Adapter для каждого модуля даже при общей базе данных.

Связи описаны в Модулях расширений, запускаемые сборки — в Примерах.

Насколько полезно это руководство?

© 2026 DreamNum Co., Ltd.