ByteBulletin

[tooling] · · 2 min read

Syncular: An Offline-First SQLite Sync Engine Built on a Server-Side Commit Log

Syncular brings offline-first sync to SQLite with a server-owned commit log, native clients across platforms, and a conformance-tested wire protocol.

By ByteBulletin Editors · Editorial Team

[tooling]

Syncular is a new open-source project that aims to simplify offline-first development by keeping a full SQLite database on each client and synchronizing it through a server-side commit log. The project, currently pre-1.0 and maintained by Benjamin Kniffler, is designed for apps that need to read from local SQLite and keep working without a network connection. Writes apply instantly to the local database, get queued in an outbox, and are synced to the server when connectivity allows.

The architecture separates concerns cleanly. Clients run SQLite in the browser via OPFS, while native integrations share a Rust core with Swift, Kotlin, Flutter, React Native, and Tauri. On the server side, Bun, Node, or Cloudflare Workers can run with SQLite, Postgres, or D1. A server-side SyncClient provides persistent SQLite for backend services, while a database-less SyncRemoteClient lets you submit commits and call registered operations without maintaining a local database. Applications can store domain actions as event rows alongside their writes, which is useful for auditing and event sourcing.

One of the more distinctive aspects is the project's rigor around the wire protocol. The specification is written down, and there are byte-level fixtures in spec/vectors. Both the TypeScript and Rust cores run a shared conformance catalog, ensuring that any behavior change affecting both implementations must update the spec and add a conformance scenario. Integration tests use deterministic fault injection and explicit readiness signals, avoiding flaky sleeps.

Kniffler is transparent about the project's use of AI assistance: the README, docs, tests, and benchmarks have had LLM help, but the core concepts and first implementations are hand-written, informed by years of offline-first work and studies of existing systems like PowerSync, Zero, Electric, Replicache, Turso, LiveStore, and Jazz. Contributions with LLM help are welcome, but must be disclosed in the pull request description, and blindly pasted model output is closed.

For developers evaluating offline-first tooling, Syncular's commit-log approach is a familiar pattern, but its focus on a formally specified protocol and cross-platform native support makes it worth watching as it approaches 1.0.

SHARE

← All stories