A C library that happens to speak SQL
SQLite is a C library implementing a small, fast, self-contained, high-reliability, full-featured SQL database engine. Each adjective matters:
- Serverless — no separate server process. The library reads and writes ordinary disk files. No setup, no admin, no daemon.
- Zero-configuration — no installation step. No config files, no ports, no users. Open a file and go.
- Single-file — the entire database (tables, indexes, triggers, views) lives in one cross-platform file on disk. Copy the file, you've backed up the database.
- Transactional — every statement runs in a transaction. Crash mid-write, the database survives intact. Fully ACID.
- Self-contained — about 900 KB of compiled code with minimal OS dependencies. Smaller than most JavaScript framework bundles.
That bundle of properties is what makes SQLite so different from client-server databases like Postgres or MySQL. There is no separate server. There is no network protocol. There is no port. SQLite runs inside your application's process, sharing your app's memory and file descriptors.
Principle: The unit of deployment for SQLite is the file. Backup is
cp. Migration is replace-the-file. Replication is rsync. The mental model collapses to filesystem operations — that simplicity is the feature.