automerge-perf
crop
automerge-perf | crop | |
---|---|---|
2 | 3 | |
35 | 233 | |
- | 1.7% | |
3.2 | 6.5 | |
7 months ago | about 1 month ago | |
JavaScript | Rust | |
- | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
automerge-perf
-
Announcing crop, the fastest UTF-8 text rope for Rust
The automerge folks have a real-life editing history of a large document in their benchmarks: https://github.com/automerge/automerge-perf
-
You might not need a CRDT
This is an implementation problem with automerge. I wrote a blog post last year about CRDT performance. I re-ran the benchmarks a couple months ago. Automerge has improved a lot since then, but a simple benchmark test (automerge-perf[1]) still takes 200MB of RAM using automerge-rs. Yjs and Diamond types can run the same benchmark in 4mb / 2mb of ram respectively.
I've had a chat with some of the automerge people about it. They're working on it, and I've shared the techniques I'm using in diamond types (and all the code). Its just an implementation bottleneck.
[1] https://github.com/automerge/automerge-perf/
crop
-
What's is a rusty way to implement sharable trees?
This is pretty much how copy-on-write ropes work. Check out xi-rope, Ropey or crop, they're all built using B-trees and implement the behavior you described.
-
Announcing crop, the fastest UTF-8 text rope for Rust
It already has that
What are some alternatives?
jumprope-rs
cloudplow - Automatic rclone remote uploader, with support for multiple remote/folder pairings. UnionFS Cleaner functionality: Deletion of UnionFS whiteout files and their corresponding files on rclone remotes. Automatic remote syncer: Sync between different remotes via a Scaleway server instance, that is created and destroyed at every sync.
plane - A distributed system for running WebSocket services at scale.
aria2-ariang-docker - 🐳 Aria2 downloader and AriaNg webui Docker image based on Alpine Linux
pigeon - Diff, patch, merge, and synchronize JSON documents with an Automerge-compatible interface
statebox_riak - Convenience library that makes it easier to use statebox with riak, extracted from best practices in our production code at Mochi Media.
Cloudbox - Ansible-based solution for rapidly deploying a Docker containerized cloud media server.
SponsorBlock - Skip YouTube video sponsors (browser extension)
gluetun - VPN client in a thin Docker container for multiple VPN providers, written in Go, and using OpenVPN or Wireguard, DNS over TLS, with a few proxy servers built-in.
ropey - A utf8 text rope for manipulating and editing large texts.
crdt-benchmarks - Real world text editing traces for benchmarking CRDT and Rope data structures [Moved to: https://github.com/josephg/editing-traces]