toeverything / y-octo

CRDT implementation which is compatible with https://github.com/yjs/yjs

Home Page:https://octobase.pro/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Y-Octo

test docs crates codecov

Y-Octo is a high-performance CRDT implementation compatible with yjs.

Introduction

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.

Features

  • βœ… 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.

Testing & Linting

Put everything to the test! We've established various test suites, but we're continually striving to enhance our coverage:

  • Rust Tests
  • Node Tests
  • Smoke Tests
  • eslint, clippy

Related projects

  • OctoBase: The open-source embedded database based on Y-Octo.
  • yjs: Shared data types for building collaborative software in web.

Maintainers

License

Y-Octo are MIT licensed.

About

CRDT implementation which is compatible with https://github.com/yjs/yjs

https://octobase.pro/

License:Other


Languages

Language:Rust 97.3%Language:JavaScript 2.1%Language:TypeScript 0.6%Language:Shell 0.0%