-
-
Notifications
You must be signed in to change notification settings - Fork 6
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge branch 'main' into darksky/node-binding-impl
- Loading branch information
Showing
27 changed files
with
1,322 additions
and
1,092 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,5 +1,2 @@ | ||
[env] | ||
CARGO_WORKSPACE_DIR = { value = "", relative = true } | ||
|
||
[target.x86_64-unknown-linux-gnu] | ||
rustflags = ["-C", "target-cpu=native"] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,10 +1,82 @@ | ||
# Y-Octo | ||
|
||
[![test](https://github.com/toeverything/y-octo/actions/workflows/y-octo.yml/badge.svg)](https://github.com/toeverything/y-octo/actions/workflows/y-octo.yml) | ||
[![docs]](https://docs.rs/y-octo/latest/y_octo) | ||
[![crates]](https://crates.io/crates/y-octo) | ||
[![codecov]](https://codecov.io/gh/toeverything/y-octo) | ||
|
||
Y-Octo is a high-performance CRDT implementation compatible with [yjs]. | ||
|
||
Y-Octo aims to provide a thread-safe, high-performance CRDT implementation on multiple platforms and offers binary compatibility and interoperability 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](https://en.wikipedia.org/wiki/Single_source_of_truth) for their application state, naturally turning the application into a [local-first](https://www.inkandswitch.com/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 | ||
|
||
- [DarkSky](https://github.com/darkskygit) | ||
- [liuyi](https://github.com/forehalo) | ||
- [X1a0t](https://github.com/thorseraq) | ||
- [LongYinan](https://github.com/Brooooooklyn) | ||
|
||
## License | ||
|
||
Y-Octo are [MIT licensed]. | ||
|
||
[codecov]: https://codecov.io/gh/toeverything/y-octo/graph/badge.svg?token=9AQY5Q1BYH | ||
[crates]: https://img.shields.io/crates/v/y-octo.svg | ||
[docs]: https://img.shields.io/docsrs/y-octo.svg | ||
[test]: https://github.com/toeverything/y-octo/actions/workflows/y-octo.yml/badge.svg | ||
[yjs]: https://github.com/yjs/yjs | ||
[Address Sanitizer]: https://github.com/toeverything/y-octo/actions/workflows/y-octo-asan.yml/badge.svg | ||
[Memory Leak Detect]: https://github.com/toeverything/y-octo/actions/workflows/y-octo-memory-test.yml/badge.svg | ||
[OctoBase]: https://github.com/toeverything/octobase | ||
[BlockSuite]: https://github.com/toeverything/blocksuite | ||
[AFFiNE]: https://github.com/toeverything/affine | ||
[MIT licensed]: ./LICENSE |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.