Reimagine state management with CRDTs. Make your app collaborative effortlessly.
Find a file
2022-11-30 23:55:58 +08:00
.devcontainer chore: add dev container 2022-11-18 00:48:18 +08:00
.github/workflows refactor: use import context & basic notify 2022-11-24 12:15:25 +08:00
.vscode chore: replace justfile with deno task 2022-11-21 12:50:15 +08:00
crates feat: encode updates 2022-11-30 23:55:58 +08:00
docs docs: add glossary 2022-11-18 21:02:31 +08:00
scripts chore: dev container config 2022-11-18 00:31:11 +08:00
supply-chain chore: update crdt-list dep 2022-10-26 23:35:21 +08:00
.editorconfig feat: rle 2022-07-13 00:47:41 +08:00
.gitignore fix: reduce heap alloc 2022-10-31 19:27:13 +08:00
Cargo.lock feat: encode updates 2022-11-30 23:55:58 +08:00
Cargo.toml chore: micro optimization 2022-10-26 23:31:34 +08:00
deno.jsonc fix: return none for deleted container when finding path 2022-11-28 18:14:05 +08:00
deno.lock test: add wasm test 2022-11-23 19:49:39 +08:00
deny.toml chore: add cargo deny config 2022-07-17 16:33:16 +08:00
README.md docs: init readme 2022-11-18 21:02:31 +08:00
rust-toolchain chore: use stable rust as GAT become stable 2022-11-06 23:18:15 +08:00

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 and Text.
  • [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