@circuitz/collab-core
v0.1.12
Published
CRDT- and transport-agnostic protocol orchestrator. Wires a pluggable `CollabAdapter` (CRDT engine) to a pluggable `TransportAdapter` (peer discovery + message bus), and bridges the resulting mutations into the `@circuitz/core` graph via `CrdtMutationDriv
Readme
@circuitz/collab-core
CRDT- and transport-agnostic protocol orchestrator. Wires a pluggable
CollabAdapter (CRDT engine) to a pluggable TransportAdapter (peer
discovery + message bus), and bridges the resulting mutations into the
@circuitz/core graph via CrdtMutationDriver.
Chosen CRDT: Yjs
The abstraction here is intentionally CRDT-agnostic, but the only
shipped implementation is Yjs (via @circuitz/collab-yjs). The
adapter interface is kept to leave the door open for swapping in
something else (Automerge, Loro, etc.) without rewiring the editor —
not because we plan to.
A real CRDT swap would also touch @circuitz/collab-yjs/webrtc, which
takes a Y.Doc directly. Treat the collab-yjs/* subpath family as
Yjs-specific by convention.
Transport
Transport stays pluggable. Today:
@circuitz/collab-yjs/webrtc—WebrtcBundlewrapsy-webrtc'sWebrtcProviderfor peer discovery + sync.@circuitz/collab-memory— in-process transport for tests and single-peer demos.
