Vue d’ensemble des paquets
Comprendre les paquets publics de Core, History, Thread Comment, Worktree, File et Office Exchange.
Cette page guide le choix des paquets. Composez d’abord Core Collaboration, puis ajoutez les extensions nécessaires. Il n’est pas nécessaire de tout installer.
Les paquets serveur des Database Adapters, de File et d’Office Exchange sont open source sous Apache-2.0 ; le code se trouve dans univer-collaboration-sdk-community. Ils partagent le préfixe et la version des autres paquets et s’installent de la même façon.
Core Collaboration
Core Collaboration fournit le circuit principal : collaboration navigateur, protocole serveur, OT, révisions et persistance.
| Environnement | Paquet | Responsabilité principale |
|---|---|---|
| Navigateur | @univerjs-pro/collaboration | Enregistre les capacités collaboratives de base du navigateur |
| Navigateur | @univerjs-pro/collaboration-client | Charge les Units, envoie les changements et maintient la synchronisation |
| Navigateur | @univerjs-pro/collaboration-client-ui | Fournit l’UI et les styles d’état collaboratif |
| Server | @univerjs-pro/collaboration-transport-node | Reçoit le trafic HTTP et WebSocket Node.js |
| Server | @univerjs-pro/collaboration-endpoint | Implémente protocole Client, Sessions, Rooms et Presence |
| Server | @univerjs-pro/collaboration-service | Gère Units, OT, révisions et API du Service central |
| Base de données | @univerjs-pro/collaboration-database-memory | Stockage en processus pour tests, exemples et développement temporaire |
| Base de données | @univerjs-pro/collaboration-database-sqlite | Persistance SQLite pour développement, tests, usage local et petite échelle |
| Base de données | @univerjs-pro/collaboration-database-postgres | Persistance PostgreSQL partagée entre plusieurs nœuds |
| Multi-node | @univerjs-pro/collaboration-cluster-redis | Adaptateur pub/sub et stockage des session tickets sur Redis pour le déploiement sur plusieurs nœuds |
Un Core Server nécessite Transport, Endpoint, Service et un Database Adapter. Memory, SQLite et PostgreSQL implémentent le même contrat ; choisissez normalement l’un des trois. Un déploiement sur plusieurs nœuds nécessite aussi un adaptateur pub/sub et un stockage de session tickets partagé. L’Endpoint définit les deux contrats (IPubSubAdapter, ISessionTicketStore) ; le SDK fournit une implémentation sur Redis.
History
History construit un index de versions depuis les événements de création d’Unit et de commit du Core.
| Environnement | Paquet | Responsabilité principale |
|---|---|---|
| Navigateur | Réutilise Core Client/UI | Affiche et lit les entrées d’historique |
| Server | @univerjs-pro/collaboration-history-service | Construit et interroge l’index d’historique |
| Server | @univerjs-pro/collaboration-history-endpoint | Expose le protocole History au Client |
| Base de données | @univerjs-pro/collaboration-history-database-memory | Stockage en mémoire de l’index History |
| Base de données | @univerjs-pro/collaboration-history-database-sqlite | Stocke l’index History dérivé |
L’historique est un index dérivé reconstructible. Les changements Core restent la référence du contenu.
Thread Comment
Thread Comment gère les textes, réponses et états résolus des commentaires Sheets et Docs.
| Environnement | Paquet | Responsabilité principale |
|---|---|---|
| Navigateur | Réutilise les paquets Core Collaboration | Utilise Comment Client et l’UI |
| Server | @univerjs-pro/collaboration-comment-service | Gère les commentaires et l’événement commentCommitted |
| Server | @univerjs-pro/collaboration-comment-endpoint | Fournit le protocole et publie les mises à jour via les Unit Rooms |
| Base de données | @univerjs-pro/collaboration-comment-database-memory | Stockage des commentaires en processus |
| Base de données | @univerjs-pro/collaboration-comment-database-sqlite | Persistance SQLite des commentaires |
Comment Adapter stocke les commentaires. Les ancres mobiles avec le contenu restent dans les instantanés et changements Core.
Worktree
Worktree fournit brouillons isolés, transitions d’état et fusion par Unit.
| Environnement | Paquet | Responsabilité principale |
|---|---|---|
| Navigateur | @univerjs-pro/collaboration-worktree-client | Connecte brouillons, états et fusion Worktree |
| Server | @univerjs-pro/collaboration-worktree-service | Gère changements du brouillon, états et fusion |
| Server | @univerjs-pro/collaboration-worktree-endpoint | Fournit le protocole au Worktree Client |
| Base de données | @univerjs-pro/collaboration-worktree-database-memory | Stockage Worktree en processus |
| Base de données | @univerjs-pro/collaboration-worktree-database-sqlite | Persistance SQLite de Worktree |
Worktree Service fusionne via Core Service dans le trunk ; configurez donc les Middleware aux deux frontières.
File
File stocke les fichiers binaires envoyés par les clients Univer : images et pièces jointes insérées dans une Unit, ainsi que les fichiers source et résultat de l’import et de l’export. Les données de l’Unit n’enregistrent que l’ID du fichier.
| Environnement | Paquet | Responsabilité principale |
|---|---|---|
| Navigateur | Réutilise le Core Collaboration Client | Envoie images et pièces jointes et résout les ID de fichier en URL |
| Server | @univerjs-pro/collaboration-file-service | Applique les règles de propriété, les Middleware et le nettoyage des fichiers temporaires |
| Server | @univerjs-pro/collaboration-file-endpoint | Fournit les routes d’envoi, de sign-url et de téléchargement |
| Base de données | @univerjs-pro/collaboration-file-memory | Stockage en mémoire des métadonnées et du contenu |
| Base de données | @univerjs-pro/collaboration-file-database-sqlite | Persistance SQLite des métadonnées de fichier |
| Base de données | @univerjs-pro/collaboration-file-database-postgres | Persistance PostgreSQL des métadonnées de fichier |
| Stockage | @univerjs-pro/collaboration-file-blob-local | Stocke le contenu dans un répertoire local |
| Stockage | @univerjs-pro/collaboration-file-blob-s3 | Stocke le contenu dans un stockage objet compatible S3, avec liens directs signés |
Métadonnées et contenu sont deux contrats indépendants ; chacun peut suivre le stockage existant de l’application, par exemple métadonnées en base et contenu en stockage objet.
Office Exchange
Office Exchange importe des fichiers Office en Units collaboratives et exporte des Units en fichiers. File stocke les fichiers source et résultat.
| Environnement | Paquet | Responsabilité principale |
|---|---|---|
| Navigateur | @univerjs-pro/exchange-client | Fournit l’échange de fichiers de base du navigateur |
| Navigateur | @univerjs-pro/sheets-exchange-client | Fournit l’import-export Sheet |
| Server | @univerjs-pro/collaboration-exchange-service | Gère les task d’import et d’export, les Middleware et la création et lecture des Units |
| Server | @univerjs-pro/collaboration-exchange-endpoint | Fournit les routes d’import, d’export et de task |
| Server | @univerjs-pro/exchange-node | Convertit Office et données Univer dans Node.js |
Exchange Service crée et lit les Units via Core Service et lit et écrit les fichiers via File Service ; il s’assemble donc avec Core et File.
Règles de sélection
- Commencez par les paquets Core du démarrage rapide.
- Choisissez un Core Database Adapter : Memory, SQLite, PostgreSQL ou personnalisé.
- Pour un déploiement sur plusieurs nœuds, ajoutez l’adaptateur pub/sub et le stockage de session tickets sur Redis.
- Installez seulement les extensions utilisées.
- Pour les images, pièces jointes ou l’import et export, assemblez d’abord File, puis ajoutez Office Exchange si besoin.
- Créez un Adapter distinct par module, même avec une base de données partagée.
Consultez les extensions collaboratives pour les relations et les exemples pour les assemblages exécutables.
Que pensez-vous de ce guide ?