Package 概览

按 Core、History、Thread Comment、Worktree、File 与 Office Exchange 了解 Collaboration SDK 的公开 package。

本页是 Collaboration SDK 的选包地图。先组装 Core Collaboration,再按产品需求增加扩展模块;不需要 一次安装所有 package。

Database Adapter、File 与 Office Exchange 的服务端 package 以 Apache-2.0 开源,源码见 univer-collaboration-sdk-community。 它们与其他 package 使用相同的包名前缀和版本,安装方式相同。

Core Collaboration

Core Collaboration 提供浏览器协同、服务端协议、OT、revision 与持久化主链路。

运行位置Package主要作用
Browser@univerjs-pro/collaboration注册浏览器协同基础能力
Browser@univerjs-pro/collaboration-client加载 Unit、提交 changeset 并维持实时同步
Browser@univerjs-pro/collaboration-client-ui提供协同状态相关 UI 与样式
Server@univerjs-pro/collaboration-transport-node接收 Node.js HTTP 与 WebSocket 流量
Server@univerjs-pro/collaboration-endpoint实现 Client 协议、Session、Room 与 Presence
Server@univerjs-pro/collaboration-service管理 Unit、OT、revision 与核心 Service API
Database@univerjs-pro/collaboration-database-memory进程内存储,用于测试、示例和临时开发
Database@univerjs-pro/collaboration-database-sqliteSQLite 持久化,用于开发、测试、本地和小规模场景
Database@univerjs-pro/collaboration-database-postgresPostgreSQL 持久化,多个节点共用一个数据库
Multi-node@univerjs-pro/collaboration-cluster-redis基于 Redis 的 pub/sub 适配器与 Session Ticket 存储,用于多节点部署

Core Server 需要 Transport、Endpoint、Service 和一个 Database Adapter。Memory、SQLite 与 PostgreSQL 是同一 Adapter 合同的三种实现,通常只选择其中一个。多节点部署时,还需要一个 pub/sub 适配器和一个共享的 Session Ticket 存储。两者的合同(IPubSubAdapter、ISessionTicketStore)由 Endpoint 定义,SDK 提供 Redis 实现。

History

History 从 Core 的 Unit 创建和 changeset commit Event 建立版本历史索引。

运行位置Package主要作用
Browser复用 Core Client/UI展示和读取历史入口
Server@univerjs-pro/collaboration-history-service建立并查询历史索引
Server@univerjs-pro/collaboration-history-endpoint向 Client 提供 History 协议能力
Database@univerjs-pro/collaboration-history-database-memoryHistory 索引的进程内存储实现
Database@univerjs-pro/collaboration-history-database-sqliteHistory 索引的 SQLite 持久化实现

History 数据是可重建的派生索引,Core changeset 仍是 Unit 内容的权威来源。

Thread Comment

Thread Comment 管理 Sheet 与 Doc 的评论正文、回复和 solved 状态。

运行位置Package主要作用
Browser复用 Core Collaboration package使用评论 Client 与 UI 能力
Server@univerjs-pro/collaboration-comment-service管理评论操作与 commentCommitted Event
Server@univerjs-pro/collaboration-comment-endpoint提供评论协议并复用 Unit Room 发布更新
Database@univerjs-pro/collaboration-comment-database-memory评论的进程内存储实现
Database@univerjs-pro/collaboration-comment-database-sqlite评论的 SQLite 持久化实现

Comment Adapter 保存评论数据;随内容变化的 anchor 仍属于 Core snapshot 与 changeset。

Worktree

Worktree 提供隔离 draft、状态流转与逐 Unit 合入。

运行位置Package主要作用
Browser@univerjs-pro/collaboration-worktree-client连接 Worktree draft、状态与合入能力
Server@univerjs-pro/collaboration-worktree-service管理 draft changeset、状态和 merge
Server@univerjs-pro/collaboration-worktree-endpoint向 Worktree Client 提供协议能力
Database@univerjs-pro/collaboration-worktree-database-memoryWorktree 的进程内存储实现
Database@univerjs-pro/collaboration-worktree-database-sqliteWorktree 的 SQLite 持久化实现

Worktree Service 最终通过 Core Service 合入 trunk,因此两套 Service 的 Middleware 都需要按边界配置。

File

File 保存 Univer 客户端上传的二进制文件:插入 Unit 的图片与附件,以及导入导出的源文件和结果文件。Unit 数据只记录文件 ID。

运行位置Package主要作用
Browser复用 Core Collaboration Client上传图片与附件,按文件 ID 换取下载地址
Server@univerjs-pro/collaboration-file-service执行文件归属规则、Middleware 与临时文件清理
Server@univerjs-pro/collaboration-file-endpoint提供上传、下载地址签发与下载路由
Database@univerjs-pro/collaboration-file-memory元数据与内容的进程内存储
Database@univerjs-pro/collaboration-file-database-sqlite文件元数据的 SQLite 持久化
Database@univerjs-pro/collaboration-file-database-postgres文件元数据的 PostgreSQL 持久化
Storage@univerjs-pro/collaboration-file-blob-local文件内容保存在本地目录
Storage@univerjs-pro/collaboration-file-blob-s3文件内容保存在 S3 兼容对象存储,可签发直链

元数据与内容是两个独立合同,可以分别选择实现,例如元数据放数据库、内容放对象存储。

Office Exchange

Office Exchange 在 Office 文件与协同 Unit 之间导入导出,源文件与结果文件由 File 保存。

运行位置Package主要作用
Browser@univerjs-pro/exchange-client提供浏览器文件交换基础能力
Browser@univerjs-pro/sheets-exchange-client提供 Sheet 文件导入导出能力
Server@univerjs-pro/collaboration-exchange-service管理导入导出 task、Middleware 与 Unit 的创建和读取
Server@univerjs-pro/collaboration-exchange-endpoint提供导入、导出与 task 查询路由
Server@univerjs-pro/exchange-node在 Node.js 中转换 Office 文件与 Univer 数据

Exchange Service 通过 Core Service 创建和读取 Unit,通过 File Service 读写文件,因此与 Core 和 File 一起组装。

选择规则

  1. 从 Quick Start 的 Core package 开始。
  2. 在 Memory、SQLite、PostgreSQL 与自定义实现中选择一个 Core Database Adapter。
  3. 多节点部署时,加上 Redis 的 pub/sub 适配器与 Session Ticket 存储。
  4. 只安装产品实际启用的扩展模块 package。
  5. 需要图片、附件或导入导出时,先组装 File,再按需加入 Office Exchange。
  6. 即使多个模块使用同一个数据库,也要分别创建各自的 Adapter。

模块关系见协同扩展模块,可运行组合见示例索引。

你觉得这篇文档如何?

© 2026 DreamNum Co., Ltd.