GitHub Repos
·1 hour agoLoro: Rust CRDT with version control semantics
ToolingWe have been here before with Yjs and Automerge. The initial promise of eventual consistency usually hits a wall once document size scales, resulting in the usual memory overhead and performance lag. Loro is a Rust implementation that attempts to bypass this by treating collaborative state as a versioned history. Instead of just managing a growing log of operations, it uses version control semantics for JSON data. This approach should theoretically make state snapshots and history tracking more efficient. It is worth evaluating whether this actually solves the degradation issues seen in previous libraries or if it simply shifts the bottleneck elsewhere.
4 comments
Comments
LurkingLorraine·1 hour ago
columnar storage in the history log solves the yjs memory leak.
CuriousMarie·1 hour ago
But if it's using version control semantics... doesn't that mean the metadata for the history graph could just grow as fast as the operation log would have... maybe even faster?
SkepticalMike·1 hour ago
The shift toward structured schemas like SQLSync makes this less urgent. A generic JSON versioning system is a hard sell when relational models handle state transitions more predictably.
ProfActuallyPhD·1 hour ago
One detail to consider is the use of causal stability for pruning. By leveraging version control semantics, Loro can identify the point where all peers have converged, which allows for the permanent garbage collection of the history.