套件概覽

了解 Collaboration SDK 中 Core、History、Thread Comment、Worktree、File 與 Office Exchange 的公開套件。

本頁協助選擇 Collaboration SDK 套件。先組合核心協同,再加入產品需要的擴充模組,無需安裝所有套件。

Database Adapter、File 與 Office Exchange 的服務端套件以 Apache-2.0 開源,原始碼見 univer-collaboration-sdk-community。它們與其他套件使用相同的套件前綴和版本,安裝方式相同。

Core Collaboration

核心協同提供瀏覽器協同、伺服器協定、OT、修訂版本與持久化的主要流程。

執行環境套件主要職責
瀏覽器@univerjs-pro/collaboration註冊瀏覽器基礎協同能力
瀏覽器@univerjs-pro/collaboration-client載入 Unit、提交變更集並維持即時同步
瀏覽器@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、修訂版本與核心 Service API
資料庫@univerjs-pro/collaboration-database-memory用於測試、範例與臨時開發的程序內儲存
資料庫@univerjs-pro/collaboration-database-sqlite適用開發、測試、本機及小規模使用的 SQLite 持久化
資料庫@univerjs-pro/collaboration-database-postgresPostgreSQL 持久化,多個節點共用一個資料庫
Multi-node@univerjs-pro/collaboration-cluster-redis基於 Redis 的 pub/sub 介面卡與 Session Ticket 儲存,用於多節點部署

核心伺服器需要 Transport、Endpoint、Service 與一個 Database Adapter。Memory、SQLite 與 PostgreSQL 實作相同契約,通常擇一使用。多節點部署時,還需要一個 pub/sub 介面卡與一個共用的 Session Ticket 儲存。兩者的契約(IPubSubAdapter、ISessionTicketStore)由 Endpoint 定義,SDK 提供 Redis 實作。

History

History 根據核心 Unit 建立與變更集提交事件建立版本歷史索引。

執行環境套件主要職責
瀏覽器重用核心 Client/UI顯示與讀取歷史項目
Server@univerjs-pro/collaboration-history-service建立與查詢歷史索引
Server@univerjs-pro/collaboration-history-endpoint為 Client 提供 History 協定
資料庫@univerjs-pro/collaboration-history-database-memoryHistory 索引的程序內儲存
資料庫@univerjs-pro/collaboration-history-database-sqlite儲存衍生的 History 索引

歷史資料是可重建的衍生索引,Unit 內容仍以核心變更集為準。

Thread Comment

Thread Comment 管理 Sheets 與 Docs 的留言本文、回覆及解決狀態。

執行環境套件主要職責
瀏覽器重用核心協同套件使用 Comment Client 與 UI 能力
Server@univerjs-pro/collaboration-comment-service管理留言操作與 commentCommitted 事件
Server@univerjs-pro/collaboration-comment-endpoint提供留言協定,透過 Unit Room 發布更新
資料庫@univerjs-pro/collaboration-comment-database-memory程序內留言儲存
資料庫@univerjs-pro/collaboration-comment-database-sqliteSQLite 留言持久化

Comment Adapter 儲存留言資料。隨內容移動的錨點仍屬於核心快照與變更集。

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-sqliteSQLite Worktree 持久化

Worktree Service 最終透過 Core Service 合併到主幹,因此兩個 Service 邊界都須設定 Middleware。

File

File 儲存 Univer 用戶端上傳的二進位檔案:插入 Unit 的圖片與附件,以及匯入匯出的來源檔與結果檔。Unit 資料只記錄檔案 ID。

執行環境套件主要職責
瀏覽器重用 Core Collaboration Client上傳圖片與附件,依檔案 ID 換取下載網址
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 檔案與協同 Unit 之間匯入匯出,來源檔與結果檔由 File 儲存。

執行環境套件主要職責
瀏覽器@univerjs-pro/exchange-client提供瀏覽器基礎檔案交換能力
瀏覽器@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. 從快速開始的核心套件開始。
  2. 選擇 Memory、SQLite、PostgreSQL 或自訂 Core Database Adapter 其中之一。
  3. 多節點部署時,加上 Redis 的 pub/sub 介面卡與 Session Ticket 儲存。
  4. 只安裝產品實際使用的擴充套件。
  5. 需要圖片、附件或匯入匯出時,先組裝 File,再按需加入 Office Exchange。
  6. 即使共用同一個資料庫,各模組也應建立獨立 Adapter。

模組關係請參閱協同擴充模組,可執行組合請參閱範例索引。

你覺得這篇文檔如何?

© 2026 DreamNum Co., Ltd.