Analysis updated 2026-07-03
Build an offline-first app that writes data locally and syncs with a server when reconnected, with no manual conflict resolution.
Enable real-time collaborative editing where multiple users modify the same data concurrently and changes merge automatically.
Sync a user's SQLite database across multiple devices without writing custom merge or conflict logic.
Add local-first instant writes to any SQLite-backed app while syncing changes in the background.
| vlcn-io/cr-sqlite | curlpipe/ox | kube-rs/kube | |
|---|---|---|---|
| Stars | 3,703 | 3,702 | 3,704 |
| Language | Rust | Rust | Rust |
| Setup difficulty | moderate | easy | hard |
| Complexity | 3/5 | 2/5 | 4/5 |
| Audience | developer | developer | ops devops |
Figures from each repo's GitHub metadata at analysis time.
Requires loading a native SQLite extension, writes to synced tables are about 2.5x slower than standard SQLite writes.
CR-SQLite is an extension for SQLite, a popular embedded database, that lets two or more separate copies of the same database accept independent changes and then merge those changes together without data conflicts. The project's own description calls it "like Git, for your data" because it handles the same kind of diverge-then-reconcile problem that version control handles for code files. This is useful in several specific situations: syncing a database across a user's devices, building collaborative editing features where multiple people change data at the same time, letting an app keep working while offline and then sync when reconnected, and making an app feel instant by writing locally first and syncing in the background. Without something like CR-SQLite, an application developer has to write custom logic for each of these scenarios. The way it works is that you load the extension into your existing SQLite database and then call a function to upgrade any table you want to keep in sync. After that, a special virtual table called crsql_changes records what has changed. To sync two databases, you query that table on one side and insert the results into the other side. SQLite then figures out which changes win using rules built into the extension. On the performance side, the README notes that writes to synced tables are currently about 2.5 times slower than writes to regular SQLite tables, while reads are unchanged. The extension is available for SQLite and also for libSQL, a fork of SQLite. The repository includes example applications, tutorials, and links to live demos so you can see the sync behavior in action before integrating it into your own project.
A SQLite extension that lets multiple copies of a database accept independent changes and then merge them without conflicts, enabling offline-first apps and real-time collaboration.
Mainly Rust. The stack also includes Rust, SQLite, libSQL.
Setup difficulty is rated moderate, with roughly 1h+ to a first successful run.
Mainly developer.
This repo across BitVibe Labs
Verify against the repo before relying on details.