A Lody user sent us the sweetest little story about how she’s been using Lody and Loro to polish her work. It’s so warm and genuinely adorable.
@troubledskies You made my whole day.
The Loro Protocol repo is now open source!
It contains documentation for the wire protocol, along with TypeScript and Rust implementations of WebSocket clients and servers.
The protocol allows reusing a single connection to join multiple CRDT rooms, such as LoroDoc or the Ephemeral Store. It’s also compatible with Yjs and includes experimental support for end-to-end encrypted LoroDoc synchronization.
Loro Mirror is released! It makes building a collaborative experience much easier. You declare a simple schema and keep using setState. Mirror syncs a typed, immutable view of your app state with CRDTs, so you avoid most of the diff/patch glue
A quick preview of the new lib: you can setState like React; diffs are computed automatically and fed to the CRDTs. Your app can easily support real-time collaboration, offline editing, versioning.
A quick preview of the new lib: you can setState like React; diffs are computed automatically and fed to the CRDTs. Your app can easily support real-time collaboration, offline editing, versioning.
You can now use Loro in React Native📱✨
The demo below showcases the real-time collaboration between an iPhone (left) and an Android (right) through Loro.
The @loro_dev team is also very responsive. We don’t take adding dependencies lightly, but the library’s quality combined with its team gave us the confidence we needed to bet on them
if you are looking for a real-time collaboration library (based on CRDTs), I highly recommend @loro_dev. it's performant, type-safe, and actively maintained
and I've tried them all
In version 1.5, for environments that support multi-threading, such as Rust and Swift, LoroDoc can now be directly and safely shared and accessed in parallel across multiple threads without triggering the previous WouldBlock panic.
New in loro-crdt v1.5.0: Enhanced document control with pre-commit hook, plus EphemeralStore for optimized state synchronization. Now you can build verifiable editing history as Merkle DAGs inside Loro.
New version control primitives have been added to Loro:
- diff(from, to): calculate the differences between any two versions
- revertTo(version): Generate ops to revert to the target version
- applyDiff(diff): Apply differences
Inspecting historical ops is now easier