Yjs
CRDTベースの協調編集ライブラリ。リッチテキストエディタとの連携に特化している。
主な機能
- 共有データ構造(YText, YArray, YMap, YXmlFragmentなど)
- WebSocket/WebRTCによる同期
- オフライン対応
- Undo/Redo(自分の操作のみを戻す)
エディタ連携
ProseMirror、TipTap、Slate、Quillなど主要なエディタライブラリと連携可能。
import * as Y from 'yjs'
import { WebsocketProvider } from 'y-websocket'
const ydoc = new Y.Doc()
const provider = new WebsocketProvider('wss://server', 'room', ydoc)