ScramDB vs SQLite
SQLite is the most deployed database in the world and it is deliberately not a server: its documentation says it "competes with fopen()", it allows one writer at any instant, and it tells you to avoid sharing a database across machines. Foreign keys are even off unless each connection turns them on. ScramDB is the database you move to when the application outgrows a file, and it answered the same analytical workload 407 times faster.
Side by side
| ScramDB | SQLite | |
|---|---|---|
| Concurrent writers | As many as you have | One writer at any instant, per its own documentation |
| Network access | A server on the PostgreSQL wire protocol | A local file. Its docs advise against sharing one across machines |
| Foreign keys | Enforced, always | Present but disabled by default; each connection must enable them |
| Typing | Real column types, checked on write | Type affinity: the type belongs to the value, so a TEXT column can hold a number as text |
| Schema changes | ALTER TABLE for the change you need | RENAME, ADD, DROP and a NOT NULL change; anything else is the documented twelve step table rebuild |
| Access control | Roles, grants, column privileges, row-level security | Filesystem permissions |
| Analytics | Columnar, compiled to native code, every core | Row store, single process |
| Where it fits | The system of record for a service or a fleet of them | Embedded and edge, application file formats, local analysis |
The wall is the writer, not the speed
Every SQLite application eventually meets the same wall: a second process needs to write. Its documentation is honest about it, and about the network filesystem workarounds people reach for. ScramDB is a server from the first line: many writers at once, roles, and policies that decide which rows each of them may see.
And the analytical gap is enormous
A row store in one process against a columnar engine compiled to native machine code across every core is not a close contest: 407 times faster on the same data and the same machine, in a fraction of the disk.
When SQLite is the right answer
Embedded devices, mobile apps, application file formats, test fixtures and local analysis. SQLite is superb, public domain, and the right default for a single process that owns its data.
Other head to heads
Same wire protocol, same drivers, same SQL. A columnar engine and native-code execution underneath.
ClickHouse cannot hold your transactions, so it lives next to a real database with a pipeline between them. ScramDB is both.
No columnar storage, no vectorized execution, no parallel query in the community server. Every analytical scan is a row walk.
Run it yourself in one line
One static binary, no dependencies. It picks its own config, listens on the postgres port 5432 and runs in the background.
$curl -fsSL https://scramdb.com/install | bash