autosurgeon
electric
autosurgeon | electric | |
---|---|---|
5 | 27 | |
247 | 4,879 | |
0.8% | 8.4% | |
6.8 | 9.8 | |
3 months ago | 2 days ago | |
Rust | Elixir | |
MIT License | Apache License 2.0 |
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
electric
-
Ask HN: How Can I Make My Front End React to Database Changes in Real-Time?
I'm interested in this problem also!
I think there is a large overlap with projects that market/focus on offline-first experiences.
AFAIK this problem can be solved by:
1) Considering a client-side copy of the database that gets synced with the remote DB. This is an approach [PowerSync](https://www.powersync.com/) and [ElectricSql](https://electric-sql.com/) and [rxdb](https://rxdb.info/) take!
-
Cloudflare acquires PartyKit to allow developers to build real-time multi-user
Yeah I agree with it being an exaggeration. They are certainly riding the admittedly dated perception that realtime is so hard it's only available to the Googles and Figmas. But there's now some amazing open source solutions available like Y.js and ElectricSQL[1]. The barrier has certainly come down.
[1] https://github.com/electric-sql/electric
- Ask HN: Who is hiring? (April 2024)
- FLaNK Stack 26 February 2024
- FLaNK Stack Weekly 12 February 2024
- Show HN: RemoteStorage – sync localStorage across devices and browsers
- I pwned half of America's fast food chains, simultaneously
-
PostgreSQL 16 Bi-Directional Logical Replication
https://github.com/electric-sql/electric :
> ElectricSQL is a local-first software platform that makes it easy to develop high-quality, modern apps with instant reactivity, realtime multi-user collaboration and conflict-free offline support.
> Local-first is a new development paradigm where your app code talks directly to an embedded local database and data syncs in the background via active-active database replication. Because the app code talks directly to a local database, apps feel instant. Because data syncs in the background via active-active replication it naturally supports multi-user collaboration and conflict-free offline
"SQLedge: Replicate Postgres to SQLite on the Edge" (2023)
-
Show HN: PowerSync – Bi-directional Postgres<>SQLite sync for offline-first apps
Yup, this is correct.
We have had some requests / discussions around adding hooks to the sync service that will support custom logic on the write path (as per https://github.com/electric-sql/electric/discussions/565). This seems like a good idea but they don't exist yet.
- Electric SQL – Local-first sync layer for web and mobile apps
What are some alternatives?
flutter_rust_bridge - Flutter/Dart <-> Rust binding generator, feature-rich, but seamless and simple.
fulcro - A library for development of single-page full-stack web applications in clj/cljs
diamond-types - The world's fastest CRDT. WIP.
cr-sqlite - Convergent, Replicated SQLite. Multi-writer and CRDT support for SQLite
local-first-unconf-workshop-2023 - A workshop demonstrating the ODD SDK
crdt-benchmarks - A collection of CRDT benchmarks
y-crdt - Rust port of Yjs
wundergraph - WunderGraph is a Backend for Frontend Framework to optimize frontend, fullstack and backend developer workflows through API Composition.
automerge_orm - An ORM for Automerge
multiversion-concurrency-control - Implementation of multiversion concurrency control, Raft, Left Right concurrency Hashmaps and a multi consumer multi producer Ringbuffer, concurrent and parallel load-balanced loops, parallel actors implementation in Main.java, Actor2.java and a parallel interpreter
ypy - Python bindings to y-crdt
mycelite - Mycelite is a SQLite extension that allows you to synchronize changes from one instance of SQLite to another.