Releases: toeverything/OctoBase
0.8.0
What's Changed
OctoBase
- S3 Support for Blob Storage @thorseraq @Xuanwo (#466, #471, #473, #474)
- Workspace root doc GUID should be consistent @forehalo (#480)
- Make workspace root doc's guid the same as workspaceId @thorseraq (#483)
- Refactor Core and RPC @darkskygit (#494, #503)
- Make storage API friendly @darkskygit @forehalo (#472, #489, #527, #528)
Y-Octo
- Thread safety improvements @darkskygit @forehalo @zxch3n (y-crdt/y-octo#9, #496, #512, #518, #520)
- Memory management improvements @darkskygit @forehalo (y-crdt/y-octo#16, #478, #488, #522, #525)
- Binary codec improvements @forehalo @thorseraq (#475, #484, #497, #504)
- CRDT operation correctness improvements @darkskygit @forehalo (#495, #506, #516, #519, #524, #526)
Tests
- Improve code robustness @darkskygit (y-crdt/y-octo#10, #470, #485, #502, #517)
- Benchmarking improvements @darkskygit (y-crdt/y-octo#11, #468)
TLDR
In this release, we've validated our CRDT implementation, jwst-codec, across a multitude of production scenarios. We're pleased to announce that it has been operating stably in the AFFiNE Cloud production environment for over a month. We've encapsulated this CRDT functionality into a standalone crate: Y-Octo. Y-Octo is a tiny, ultra-fast CRDT collaboration library and has interoperability and binary compatibility with yjs.
Additionally, we have continued to make enhancements to OctoBase. Key updates in this release include the integration of S3 as a supported storage target (#466, #473, #474), along with improvements to our storage API (#472, #489, #527, #528).
New Contributors
- @Xuanwo made their first contribution in #473
- @zxch3n made their first contribution in y-crdt/y-octo#9
Full Changelog: p20230614...p20230904
0.5.1-canary.4
What's Changed
- [+] Expanded CRDT capabilities with new operations and types by @darkskygit @forehalo @thorseraq (#461, #455, #438, #440)
- [+] Introduced new testing and benchmarking by @darkskygit @thorseraq (#450, #447, #459)
- [+] Integrated WebRTC signalling and connectors by @a-wing (#446, #444)
- [*] Refactored several functionalities for efficiency and ease of use by @forehalo (#453, #449)
- [*] Fixed potential issues in marker, logger and network connection by @darkskygit @forehalo @thorseraq (#460, #458, #454, #456)
TLDR
In this update, we've finalized the CRDT implementation for List/Text/Map (#461, #455, #438, #440), bolstered by additional unit tests and benchmarks (#450, #447, #459). A new WebRTC-based connector (#446, #444) was introduced, thanks to our community contributors. Other key improvements include refactoring enhancements (#453, #449) and a range of fixed potential issues (#460, #458, #454, #456). As we move forward, these CRDT implementation and enhancements will pave the way for the upcoming rewrite of the AFFiNE Cloud server.
New Contributors
Full Changelog: p20230528...p20230614
0.5.1-canary.3
What's Changed
- [+] added encoding for documents into binary (#441) by @thorseraq
- [+] implemented storing of ID in items (#439) by @darkskygit
- [+] added a guide on how to write a new connector to the documentation (#432) by @darkskygit
- [+] updated the write implementation (#427) by @darkskygit
- [+] completed the apply update implementation (#430) by @forehalo
- [+] refactored the client sync functionality (#428) by @darkskygit
- [+] added read/write traits for raw CRDT types (#422) by @darkskygit
- [+] implemented the application of awareness update (#421) by @darkskygit
- [*] completed the codec unit test (#437) by @thorseraq
- [*] refactored the read/write ybinary (#435) by @forehalo
- [*] migrated the Octobase playground to the homepage (#419) by @thorseraq
- [*] fixed the issue of missing updates during full migration (#426) by @thorseraq
TLDR
In this update, we continue to develop our CRDT implementation (#430, #435) and have accomplished a full read-write flow for CRDT Item and Yjs Binary (#421, #422, #427, #428, #439, #441). Furthermore, we've written a guide on how to integrate OctoBase with any bi-directional communication protocol, available for community reference (#432). We've now replaced the original yrs implementation with the OctoBase sync in our affine cloud servers, which have been running stably for two weeks, showing perceptible improvements in stability.
Full Changelog: p20230516...p20230528
0.5.1-canary.2
What's Changed
- [+] feat: impl integrate update @forehalo (#413)
- [+] feat: octobase editor synchronization playground @thorseraq (#416)
- [+] feat: port sync protocol @darkskygit (#412)
- [+] feat: add aio affine cloud image baseline ci @darkskygit
- [+] feat: webhook for subscribing block changes @thorseraq (#414, #417)
New Contributors
TLDR
In this update, we have implemented the sync protocol of octobase and included unit test and fuzzing. Additionally, we have preliminarily re-implemented the CRDT algorithm in octobase in a secure manner, and included basic unit testing. This will make octobase more robust and performant.
Full Changelog: p20230504...p20230516
0.5.1-canary.1
What's Changed
- [+] feat: assemble runtime crdt state @darkskygit (#408)
- [+] feat: add workspace avatar @JimmFly (#365)
- [+] feat: add var buf & var string writer @thorseraq (#396)
- [+] feat: subscribing synchronized blocks from collaboration server @thorseraq (#397)
- [*] fix: block subscribing skipped caused by failing to update
observed_blocks
@thorseraq (#410) - [*] fix: cannot subscribe blocks with get_blocks_by_flavour @thorseraq (#406)
- [*] fix: cannot save to local storage of workspace synchronized from collaboration server @thorseraq (#394)
Full Changelog: p20230419...p20230504
0.5.1-canary.0
- [+] feat: expose method for manually retrieval of modified blocks (#391) @thorseraq
- [+] feat: optimize check_shared (#390) @JimmFly
- [+] feat: new ybinary parser (#389) @darkskygit
- [+] feat: jni binding for block level observation (#384) @thorseraq
- [+] feat: block level observation (#370) @thorseraq
- [+] feat: support page share expire time (#369) @darkskygit
- [*] fix: support blocksuite specific behavier (#387) @darkskygit
- [*] chore: add collaboration doc and best practice (#380) @thorseraq
- [*] chore: test using ymap from different source with same id (#378) @thorseraq
- [*] test: add update merge test @darkskygit
- [*] fix: awareness subscription memory leak (#372) @darkskygit
0.5.0
- [+] feat: enable coverage test & more stable stress test
- [+] feat: clone nested data in doc (#359) @darkskygit
- [+] feat: single page sharing permission check (#361) @darkskygit
- [*] fix: unable to start when missing env file (#353) @fundon
- [*] fix: check permissions of blob API (#354) @zuoxiaodong0815
- [*] chore: move hosting feature to cloud infra crate (#357) @darkskygit
- [*] refactor: add more concrete error types eliminating anyhow::Error in libs crate (#358) @thorseraq