electric_dart
eventually-consistent-mesh
electric_dart | eventually-consistent-mesh | |
---|---|---|
2 | 2 | |
84 | 2 | |
- | - | |
9.7 | 6.4 | |
3 days ago | 8 months ago | |
Dart | Python | |
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.
electric_dart
-
Show HN: ElectricSQL, Postgres to SQLite active-active sync for local-first apps
Hey, yup it's definitely a medium term objective.
The team at SkillDevs are maintaining a Daft/Flutter client at https://github.com/SkillDevs/electric_dart
Plus we have a thread to extract the core client-side replication component to Rust to be able to compile for multiple targets.
-
CRDT-richtext: Rust implementation of Peritext and Fugue
We (ElectricSQL) have some work underway on a Rust/WASM port of our core client component, that’s designed to open up more language support.
This is a community contributed Dart/Flutter client https://github.com/SkillDevs/electric_dart that may also be a useful reference.
eventually-consistent-mesh
-
The growing pains of database architecture
https://github.com/samsquire/eventually-consistent-mesh/blob...
I wrote a Jepsen test that because it is not linerarizable, it fails.
My script abandons the C(onsistency) of CAP and maintains (A)vailability and (P)artition tolerance. It assumes the network shall heal and the replication shall resume. In PACELC theory in During normal operation it prefers Availability during Partitions and Else Latency in normal operations.
How do you build a system around a database where values can no longer be valid at any time? If I kick off a process in the database with a value that was only reported by one replica that was partitioned away from the majority of the network, what do I do?
My immediate thoughts are to create dependency relationships to values that are on the agreed path, data that is based on a failed branch is not valid.
https://github.com/samsquire/eventually-consistent-mesh
-
CRDT-richtext: Rust implementation of Peritext and Fugue
https://github.com/samsquire/eventually-consistent-mesh
I implemented an barebones toy SQL and Graph cypher and document storage database
What are some alternatives?
fugue-bench - Fugue list CRDT implementations and benchmarks
electric - Local-first sync layer for web and mobile apps. Build reactive, realtime, local-first apps directly on Postgres.
pg_crdt - POC CRDT support in Postgres
vaxine - Rich-CRDT database based on AntidoteDB.
multiversion-concurrency-contro
crdt-benchmarks - Real world text editing traces for benchmarking CRDT and Rope data structures [Moved to: https://github.com/josephg/editing-traces]
text-diff - a python implementation of diff3 and three way merge
yjs-sqlite-test - Test combining yjs and sqlite wasm