Skip to content

absolutejs/sync-adapters

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

@absolutejs/sync-adapters

CRDT backend adapters for @absolutejs/sync — a private workspace monorepo. Each adapter is published as its own package and implements the TextCrdtAdapter contract from @absolutejs/sync/crdt; install only the one you want.

Adapter Package Backend Status
yjs/ @absolutejs/sync-yjs Yjs
automerge/ @absolutejs/sync-automerge Automerge
loro/ @absolutejs/sync-loro Loro

Why adapters

@absolutejs/sync ships a zero-dependency, first-party CRDT kit at @absolutejs/sync/crdt (a PN-counter, an LWW register, and an RGA collaborative-text type). That keeps the core package dependency-free and is enough for offline-merge and moderate collaboration.

Production-scale collaborative text is a genuine footgun — unbounded tombstone growth, full-state sync cost, and edit-interleaving subtleties — and Yjs is the community staple that solves them. Rather than pull it into the core, the Yjs integration lives here as a first-party-maintained adapter behind the same CrdtText / TextCrdtAdapter contract: swap rgaText for yjsText and every call site stays the same.

Why a monorepo

Adapters share the TextCrdtAdapter contract from @absolutejs/sync. Keeping them in one workspace means a contract change can update every adapter in a single PR, with one CI and one bun install — while each still publishes independently so consumers pull only the backend (and its heavy deps) they actually use.

Develop

bun install          # installs every workspace member
bun run typecheck    # across all adapters
bun run test         # across all adapters
bun run build        # across all adapters

License

CC BY-NC 4.0

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors