Y-Octo is a high-performance CRDT implementation compatible with yjs.
Y-Octo is a tiny, ultra-fast CRDT collaboration library built for all major platforms. Developers can use Y-Octo as the Single source of truth for their application state, naturally turning the application into a local-first collaborative app.
Y-Octo also has interoperability and binary compatibility with yjs. Developers can use yjs to develop local-first web applications and collaborate with Y-Octo in native apps alongside web apps.
AFFiNE is using y-octo in production. There are Electron app and Node.js server using y-octo in production.
Mysc is using y-octo in the Rust server, and the iOS/Android client via the Swift/Kotlin bindings (Official bindings coming soon).
- ✅ Collaborative Text
- ✅ Read and write styled Unicode compatible data.
 - 🚧 Add, modify and delete text styles.
 - 🚧 Embedded JS data types and collaborative types.
 - ✅ Collaborative types of thread-safe.
 
 - Collaborative Array
- ✅ Add, modify, and delete basic JS data types.
 - ✅ Recursively add, modify, and delete collaborative types.
 - ✅ Collaborative types of thread-safe.
 - 🚧 Recursive event subscription
 
 - Collaborative Map
- ✅ Add, modify, and delete basic JS data types.
 - ✅ Recursively add, modify, and delete collaborative types.
 - ✅ Collaborative types of thread-safe.
 - 🚧 Recursive event subscription
 
 - 🚧 Collaborative Xml (Fragment / Element)
 - ✅ Collaborative Doc Container
- ✅ YATA CRDT state apply/diff compatible with yjs
 - ✅ State sync of thread-safe.
 - ✅ Store all collaborative types and JS data types
 - ✅ Update event subscription.
 - 🚧 Sub Document.
 
 - ✅ Yjs binary encoding
- ✅ Awareness encoding.
 - ✅ Primitive type encoding.
 - ✅ Sync Protocol encoding.
 - ✅ Yjs update v1 encoding.
 - 🚧 Yjs update v2 encoding.
 
 
Put everything to the test! We've established various test suites, but we're continually striving to enhance our coverage:
- Rust Tests
- Unit tests
 - Loom multi-threading tests
 - Miri undefined behavior tests
 - Address Sanitizer memory error detections
 - Fuzzing fuzzing tests
 
 - Node Tests
 - Smoke Tests
 - Eslint, Clippy
 
- OctoBase: The open-source embedded database based on Y-Octo.
 - yjs: Shared data types for building collaborative software in web.
 
Why not yrs
Y-Octo are MIT licensed.
