CRDT Yjs/Automerge/Loro 2026(シーアールディーティー)
CRDT Conflict-Free Replicated Data Type。Yjs 13.x (Y-WebRTC・Y-Indexeddb・Y-IndexedDB Persistence)・Automerge 2.2 (Inkandswitch)・Loro 1.x (Rust・最速)・Replicache・SyncedStore・Liveblocks Yjs・Hocuspocus (Yjs Server)・y-protocols・YATA・OT Operational Transform代替・State-Based vs Op-Based CRDT・Last-Writer-Wins・Multi-Player Editing・¥0 OSS、2026年Loro Rust急成長。
概要
CRDT(Conflict‑Free Replicated Data Type)は、分散環境で同時編集を安全に行うためのデータ構造です。2026年現在、代表的なオープンソース実装としてYjs 13.x、Automerge 2.2、Loro 1.x(Rust)があります。YjsはWebRTC、IndexedDB、Persistenceを備え、リアルタイム協調編集に最適化されています。AutomergeはTypeScriptベースで、Inkandswitchの実装が2025年にマルチプレイヤー機能を拡張。LoroはRustで書かれ、2026年に最速実装として注目されている。さらに、Replicache、SyncedStore、Liveblocks Yjs、Hocuspocus(Yjsサーバ)やy-protocols、YATAなど、エコシステムが拡大している。OT(Operational Transform)を代替し、State‑BasedとOp‑Basedの両方をサポート。Last‑Writer‑Wins戦略で衝突解決を行い、マルチプレイヤー編集がスムーズに実現できる。
主な特徴・仕組み
- 分散同期:Yjs 13.3(2025年リリース)では、WebRTCとIndexedDBを同時に使用し、オフライン時もローカルで編集可能。
- Rust実装の高速化:Loro 1.xは2026年にRust版が最速化され、1ms以下の遅延で1000ユーザー同時編集を実現。
- マルチプレイヤーサポート:Automerge 2.2はInkandswitchが提供するマルチプレイヤーAPIで、同時編集の競合を自動で解決。
- State‑Based vs Op‑Based:YjsはOp‑Based、AutomergeはState‑Based、Loroはハイブリッドで両方のメリットを兼ね備える。
- Last‑Writer‑Wins:全実装でタイムスタンプベースの衝突解決を採用し、データ整合性を保つ。
- ゼロコスト OSS:すべての実装が商用利用可能なMITライセンスで提供。
- 拡張性:y-protocolsやYATAにより、独自プロトコルを追加できる。
- リアルタイムストリーミング:Liveblocks YjsとHocuspocusは、サーバーサイドでの状態同期を高速化。
- データ永続化:Y-IndexedDB Persistenceはローカルストレージに永続化し、再起動後も即時復元。
- 統合ツール:ReplicacheはデータベースとCRDTを統合し、データの整合性を保つ。
スペック比較表
| 実装 | 主言語 | バージョン | 主要プロトコル | 代表的機能 | 2025/2026年注目点 |
|---|---|---|---|---|---|
| Yjs | JavaScript | 13.3 | Op‑Based, WebRTC | IndexedDB Persistence | 2025年リリースでオフライン同期強化 |
| Automerge | TypeScript | 2.2 | State‑Based | Inkandswitchマルチプレイヤー | 2025年末にマルチプレイヤーAPI追加 |
| Loro | Rust | 1.0 | ハイブリッド | 1ms以下遅延 | 2026年にRust版が最速化 |
| Replicache | JavaScript | 1.1 | Op‑Based | データベース統合 | 2025年にデータ永続化機能拡張 |
| Hocuspocus | TypeScript | 2.0 | Op‑Based | サーバーサイド同期 | 2026年にYjsサーバ統合 |
具体例・対応製品
- RTX 5090(24GB GDDR7、TDP 450W、¥128,000)
- ゲーム開発者がリアルタイムに3Dシーンを共同編集。Yjs 13.xでGPUメモリの状態を同期。
- Ryzen 9 9950X3D(16コア/32スレッド、3.5GHzベース、5.0GHzブースト)
- Loro Rust版をCPU上で動かし、複数ユーザーが同時にコードベースを編集。
- DDR5‑6000 32GB(8GB×4、240W TDP、¥32,000)
- 高速RAMを搭載したサーバーでReplicacheを稼働。State‑Based CRDTでデータ整合性を保つ。
- Samsung 980 PRO 4TB NVMe(4TB、1.7TB/s読み込み、¥120,000)
- Y-IndexedDB Persistenceでローカル永続化。オフライン時でも即時復元可能。
- SyncedStore 3.0(OSS、0円)
- 複数のブラウザ間でファイル同期。YjsとHocuspocusをバックエンドに使用。
自作PCでの選び方・注意点
- CPU:Loro Rust版はマルチスレッドに強い。Ryzen 9 9950X3Dのような16コア以上を推奨。
- GPU:RTX 5090のような高メモリGPUは、3D協調編集でメモリ帯域を確保。
- メモリ:DDR5‑6000 32GB以上で、同時編集時のキャッシュを十分に確保。
- ストレージ:NVMe SSD 4TB以上で、Y-IndexedDB Persistenceの高速書き込みを活かす。
- ネットワーク:10GbEイーサネットまたはWi‑Fi 6Eを装備し、WebRTCの帯域を確保。
- 電源:450W以上、80 PLUS Platinumを推奨。
- 冷却:高負荷時にCPU・GPUの温度を35℃以下に保つ。
- OS:Ubuntu 24.04 LTS(Linux)で、Rust・Node.jsの最新バージョンをインストール。
関連用語との違い
| 用語 | 本体 | 特徴 | 2025/2026年の動向 |
|---|---|---|---|
| OT(Operational Transform) | 競合解決 | 変更操作を順序付けて統合 | 2025年に一部プロダクトでCRDTへ移行 |
| State‑Based CRDT | データ全体 | 変更を状態で送信 | Loroはハイブリッドで両方を併用 |
| Op‑Based CRDT | 操作単位 | 変更操作を送信 | YjsはOp‑Basedを採用し、リアルタイム性が高い |
| Loro | Rust | 低レイテンシ | 2026年に最速実装で注目 |
| Yjs | JavaScript | WebRTC・IndexedDB | 2025年にY-IndexedDB Persistenceが大幅改良 |
| Automerge | TypeScript | State‑Based | 2025年末にマルチプレイヤーAPI追加 |
よくある質問(FAQ)
Q1. CRDTはどのくらい遅延が発生しますか?
A1. Yjs 13.3ではWebRTCを利用した場合、平均遅延は30〜50 ms。Loro 1.xはRustで最適化され、1 ms以下の遅延を実現しています。
Q2. 既存のデータベースとCRDTを併用できますか?
A2. はい。Replicacheは既存のSQL/NoSQLデータベースとCRDTを統合し、データ整合性を保ちつつリアルタイム同期が可能です。
Q3. CRDTを使うとデータサイズが膨らみますか?
A3. Op‑Based CRDT(Yjs)は操作単位で送信するため、変更が少ない場合はデータサイズが小さいです。State‑Based CRDT(Automerge)は全体状態を送るため、頻繁な変更があるとサイズが増える可能性があります。Loroはハイブリッドで最適化されています。
まとめ
2026年現在、Yjs 13.x、Automerge 2.2、Loro 1.x(Rust)はそれぞれ独自の強みを持ち、リアルタイム協調編集を実現する主要なCRDT実装です。YjsはWebRTCとIndexedDBでオフライン時も編集可能、AutomergeはState‑Basedで安全なマージ、LoroはRustで最速化されたハイブリッド型が特徴。自作PCを構築する際はCPU・GPU・メモリ・ストレージ・ネットワークをバランスよく選び、10GbEやWi‑Fi 6Eで帯域を確保すると、CRDTの低レイテンシと高スループットを最大限に活かせます。OTからの移行やState/Opのハイブリッド化は2025–2026年に加速しており、今後も分散協調編集の標準技術として確固たる地位を築いていくでしょう。