Package 概览
按 Core、History、Thread Comment、Worktree 与 Office Exchange 了解 Collaboration SDK 的公开 package。
本页是 Collaboration SDK 的选包地图。先组装 Core Collaboration,再按产品需求增加扩展模块;不需要 一次安装所有 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-sqlite | SQLite 持久化,用于开发、测试、本地和小规模场景 |
Core Server 需要 Transport、Endpoint、Service 和一个 Database Adapter。Memory 与 SQLite 是同一 Adapter 合同的两种实现,通常只选择其中一个。
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-sqlite | 保存 History 派生索引 |
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-memory | Worktree 的进程内存储实现 |
| Database | @univerjs-pro/collaboration-worktree-database-sqlite | Worktree 的 SQLite 持久化实现 |
Worktree Service 最终通过 Core Service 合入 trunk,因此两套 Service 的 Middleware 都需要按边界配置。
Office Exchange
Office Exchange 是文件转换与 Collaboration Service 的组合工作流,不拥有独立的协同 Database Adapter。
| 运行位置 | Package | 主要作用 |
|---|---|---|
| Browser | @univerjs-pro/exchange-client | 提供浏览器文件交换基础能力 |
| Browser | @univerjs-pro/sheets-exchange-client | 提供 Sheet 文件导入导出能力 |
| Server | @univerjs-pro/exchange-node | 在 Node.js 中转换 Office 文件与 Univer 数据 |
导入时由应用把转换结果交给 createUnitFromSnapshot();导出时通过 Core Service 读取 confirmed Unit
revision。文件、任务与业务 API 仍由应用管理。
选择规则
- 从 Quick Start 的 Core package 开始。
- 在 Memory、SQLite 与自定义实现中选择一个 Core Database Adapter。
- 只安装产品实际启用的扩展模块 package。
- 即使多个模块使用同一个 SQLite 文件,也要分别创建各自的 Adapter。