Back to Projects
TechnologyIn Progress

Sirannon

Turn any SQLite database into a distributed networked data layer with real-time subscriptions and multi-node replication.

databaseopen-sourcedistributed-systemssqlite

One library gives you connection pooling, change data capture, migrations, scheduled backups, distributed replication with conflict resolution, and a client SDK that talks over HTTP or WebSocket. Open a local SQLite database, run queries with ACID guarantees, subscribe to real-time changes, replicate across nodes, and expose the database over the network with a built-in server.

What you get

  1. 1

    Connection pooling and WAL mode

    One write connection and N read connections (default 4) with WAL mode enabled for concurrent reads during writes.

  2. 2

    Real-time change data capture

    Monitors INSERT, UPDATE, and DELETE events through triggers and polling. Subscribe to changes from any client over WebSocket.

  3. 3

    Distributed replication with conflict resolution

    Replicate data across multiple nodes with automatic conflict resolution. Designed for systems that need data availability beyond a single machine.

  4. 4

    Migrations and scheduled backups

    File-based and programmatic migrations with rollback support. Snapshot backups with scheduled rotation to prevent data loss.

  5. 5

    Multi-tenant lifecycle management

    Manage multiple database instances with idle timeouts and LRU eviction. Each tenant gets isolated resources with clean provisioning and teardown.

Runs everywhere

Pluggable drivers for better-sqlite3, Node.js 22+ built-in SQLite, wa-sqlite (browser via IndexedDB), Bun, and Expo (React Native). The server layer is powered by uWebSockets.js with authentication hooks for securing network access.

Where this is going

SQLite is the most deployed database engine on the planet, but the ecosystem treats it as a local-only tool. Sirannon's vision is to turn SQLite into a first-class distributed database that works across every environment: server, browser, mobile, and edge.

The end state is a database layer where you write to SQLite on one node and the data replicates to every other node with conflict resolution handled automatically. Local-first applications that sync when connectivity returns. Edge nodes that serve reads without hitting a central server. Mobile apps that work offline and reconcile when they come back online. All of it powered by the simplest, most battle-tested database engine in existence, with none of the operational weight of traditional distributed databases.

More projects

All projects

Search

Search for blog posts, projects, and pages