All Packages¶
Main Package¶
@collabs/collabs: A library for network- and storage-agnostic collaborative data structures (CRDTs).
Network Providers¶
@collabs/ws-client: Contains WebSocketNetwork, a network provider that syncs Collabs documents with a central server using WebSockets.
@collabs/ws-server: Node.js server for @collabs/ws-client. Contains WebSocketNetworkServer and the
collabs-ws-server
command.@collabs/tab-sync: Contains TabSyncNetwork, a network provider that shares updates across local tabs using BroadcastChannel.
@collabs/matrix-widget: Contains MatrixWidgetNetwork, a network provider that syncs Collabs documents through a Matrix room from inside a widget. It is currently experimental because it does not save documents reliably.
Storage Providers¶
@collabs/indexeddb: Contains IndexedDBDocStore, a storage provider that stores Collabs documents in IndexedDB.
@collabs/local-storage: Contains LocalStorageDocStore, a storage provider that stores Collabs documents in localStorage.
UI Plugins¶
@collabs/react: Contains the useCollab React hook, and CollabsTextInput, a wrapper around
<input type="text" />
with built-in Collabs sync.
Internal¶
@collabs/collabs is internally split into two packages:
@collabs/core: The parts of Collabs that are applicable to general collaborative data structures (update-driven replicated data types), not just Conflict-free Replicated Data Types (CRDTs). Use this to import internal utilities not included in @collabs/collabs, or if you are developing a non-CRDT extension to Collabs (e.g., a server-side reconciliation library.)
@collabs/crdts: Collabs’s CRDTs.