mirror of
https://github.com/loro-dev/loro.git
synced 2025-01-23 05:24:51 +00:00
Reimagine state management with CRDTs. Make your app collaborative effortlessly.
594b60dafb
* refactor: make internal and leaf use same type of cache * refactor: add cache update * test : add normalization to arb test * test: fuzz * fix: internal insert bug * fix: missing utf16 * test: fix test sub overflow * feat: use heapless for binary heap * refactor: refine warning * test: reduce test time * perf: reduce computation when finding pos * bench: fix ignore parse time in benching * feat: make it compile in new sig (should be merged) * fix: type err * fix: fix type err * fix: cache when merge & borrow * refactor: simplify code * fix: cumulated tree trait bug * fix: a few fatal bugs (still buggy) * fix: global tree trait * refactor: rm an unused fn * fix: insert at cursor bug * fix: in cursor insert cache may be invalid strip the checker there * chore: remove needless check * refactor: add inline to methods * test: remove cfg=mem for mem example * fix: type err |
||
---|---|---|
.devcontainer | ||
.github/workflows | ||
.vscode | ||
crates | ||
docs | ||
scripts | ||
supply-chain | ||
.editorconfig | ||
.gitignore | ||
Cargo.lock | ||
Cargo.toml | ||
deno.jsonc | ||
deno.lock | ||
deny.toml | ||
README.md | ||
rust-toolchain |
Loro 🦜
Loro is a fast CRDT framework with built-in end-to-end encryption ability.
It provides a set of data structures that can automatically sync without any conflict. With end-to-end encryption addon, all data can be encrypted without losing the ability to collaborate with the others. It aims to be the engine for building local-first software.
Why Loro
- 🚀 It is pretty fast
- 🔒 [WIP] Security built-in
- 💻 Syncing data made easy
- 📜 Preserve all history with low overhead
- 🪐 [WIP] Time travel the history in milliseconds
Loro supports a variety of data structures and CRDT algorithms.
- It supports the most used
List
,Map
andText
. - [TODO] Peritext for fine-grind rich text operations
- [TODO] Moveable Tree for directory-like moving operations
- [WIP] Super fast version checkout and undo/redo
Credits
- Automerge for its columnar encoding algorithm
- Yjs for the efficient algorithm of merging blocks
- Diamond-types for its idea of low-overhead merging algorithm
- Ink & Switch for Local-first Software and Peritext