パッケージ概要
Core、History、Thread Comment、Worktree、Office Exchange の公開パッケージを説明します。
まず Core Collaboration を構成し、製品に必要な拡張を加えてください。このページは選択の手引きで、すべてのパッケージの導入は不要です。
Core Collaboration
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 プロトコル、Sessions、Rooms、Presence を実装 |
| Server | @univerjs-pro/collaboration-service | Unit、OT、リビジョン、コア API を管理 |
| データベース | @univerjs-pro/collaboration-database-memory | テスト、例、一時開発用のプロセス内保存 |
| データベース | @univerjs-pro/collaboration-database-sqlite | 開発、テスト、ローカル、小規模向け SQLite 永続化 |
| Multi-node | @univerjs-pro/collaboration-cluster-redis | 複数ノードへのデプロイ向けの Redis ベースの pub/sub アダプターと Session Ticket ストア |
Core Server は Transport、Endpoint、Service、1 つの Database Adapter が必要です。Memory と SQLite は同じ契約を実装し、通常どちらかを選びます。複数ノードへデプロイする場合は、pub/sub アダプターと共有の Session Ticket ストアも必要です。両方の契約(IPubSubAdapter、ISessionTicketStore)は Endpoint が定義し、SDK が Redis 実装を提供します。
History
History は Core の Unit 作成と変更コミットのイベントから履歴索引を構築します。
| 実行環境 | パッケージ | 主な責任 |
|---|---|---|
| ブラウザー | Core Client/UI を再利用 | 履歴項目を表示・取得 |
| Server | @univerjs-pro/collaboration-history-service | 履歴索引を構築・検索 |
| Server | @univerjs-pro/collaboration-history-endpoint | Client に History プロトコルを提供 |
| データベース | @univerjs-pro/collaboration-history-database-sqlite | 派生 History 索引を保存 |
履歴は再構築可能な派生索引であり、Unit 内容の正本は 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 | SQLite Worktree 永続化 |
Worktree Service は Core Service を介して trunk にマージするため、両 Service の境界に Middleware が必要です。
Office Exchange
Office Exchange は変換と Collaboration Service を組み合わせるアプリケーションフローです。独立した協同 Database Adapter はありません。
| 実行環境 | パッケージ | 主な責任 |
|---|---|---|
| ブラウザー | @univerjs-pro/exchange-client | ブラウザーの基本ファイル交換を提供 |
| ブラウザー | @univerjs-pro/sheets-exchange-client | Sheet ファイルの入出力 |
| Server | @univerjs-pro/exchange-node | Node.js で Office と Univer データを変換 |
インポートは変換データを createUnitFromSnapshot() に渡し、エクスポートは Core Service から確定リビジョンを読みます。ファイル、タスク、業務 API はアプリケーションが管理します。
選択の原則
- クイックスタートの Core パッケージから始めます。
- Memory、SQLite、独自実装から Core Database Adapter を 1 つ選びます。
- 複数ノードへデプロイする場合は、Redis の pub/sub アダプターと Session Ticket ストアを追加します。
- 製品で使う拡張だけを導入します。
- SQLite ファイルを共有しても各モジュールに独立 Adapter を作ります。
このガイドはいかがですか?