autosurgeon
ypy
autosurgeon | ypy | |
---|---|---|
5 | 1 | |
247 | 151 | |
0.8% | 2.0% | |
6.8 | 7.0 | |
3 months ago | about 1 month ago | |
Rust | Rust | |
MIT License | GNU General Public License v3.0 or later |
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.
autosurgeon
-
Automerge-Repo: A "batteries-included" toolkit for local-first applications
Nice, I use automerge with Rust via autosurgeon [0] which is their Rust wrapper, but looks like it hasn't been updated recently, any updates on that? I'm guessing with a small team that web support is taking priority right now, as I'm running this on my Rust client (technically Flutter but via the FFI package flutter_rust_bridge [1]) and server (via the Axum web server crate).
[0] https://github.com/automerge/autosurgeon
[1] https://github.com/fzyzcjy/flutter_rust_bridge
-
Automerge 2.0, CRDTs, and Local-first Software
Also take a look at autosurgeon, which wraps this Rust library (which is lower level) with a higher level API.
-
Automerge 2.0
diamond-types (for reference for others [0]) still only supports plain text, is that right? I was thinking of using it for more general use cases such as an offline habit tracker, which isn't text of course, but I was interested to hear more on the progress towards other data types such as generic JSON data.
Currently for this use case I've been using autosurgeon [1] so far which has a nice Rust API for structs, even if it might be slower than yjs (or yrs, its Rust implementation) or diamond-types.
[0] https://github.com/josephg/diamond-types
[1] https://github.com/automerge/autosurgeon
- Autosurgeon 0.3.0, use conflict-free replicated data types (CRDTs) to build offline-first apps with an easy-to-use API based on Automerge
ypy
-
Automerge 2.0
So exciting! Strangely enough, a couple of hours before this release, we just managed to wrap our heads around Yjs after playing with it on and off for a few weeks!
For anyone not up to date with the world of CRDTs, Seph Gentle's two blog posts have become legendary:
* https://josephg.com/blog/crdts-are-the-future/
* https://josephg.com/blog/crdts-go-brrr/
these are also worth checking out:
* https://github.com/y-crdt/y-crdt (rust implementation started by the creator of Yjs, Kevin Jahns)
* https://github.com/y-crdt/ypy (python bindings for the rust implementation)
* https://github.com/josephg/diamond-types (Seph Gentle's rust implementation of YATA, the algorith behind Yjs)
What are some alternatives?
flutter_rust_bridge - Flutter/Dart <-> Rust binding generator, feature-rich, but seamless and simple.
diamond-types - The world's fastest CRDT. WIP.
local-first-unconf-workshop-2023 - A workshop demonstrating the ODD SDK
automerge-rs - Rust implementation of automerge [Moved to: https://github.com/automerge/automerge]
y-crdt - Rust port of Yjs
automerge_orm - An ORM for Automerge
cr-sqlite - Convergent, Replicated SQLite. Multi-writer and CRDT support for SQLite
v8js - V8 Javascript Engine for PHP — This PHP extension embeds the Google V8 Javascript Engine
electric - Local-first sync layer for web and mobile apps. Build reactive, realtime, local-first apps directly on Postgres.