跳到正文
3 分钟

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-sqliteSQLite 持久化,用于开发、测试、本地和小规模场景

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-memoryWorktree 的进程内存储实现
Database@univerjs-pro/collaboration-worktree-database-sqliteWorktree 的 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 仍由应用管理。

选择规则

  1. Quick Start 的 Core package 开始。
  2. 在 Memory、SQLite 与自定义实现中选择一个 Core Database Adapter。
  3. 只安装产品实际启用的扩展模块 package。
  4. 即使多个模块使用同一个 SQLite 文件,也要分别创建各自的 Adapter。

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