SQLite
A lightweight, embedded SQL database that runs in-process — no server to install. SQLite stores the entire database in a single file. The most deployed database in the world (every phone, every browser). Perfect for local apps, prototypes, and read-heavy small sites.
D. Richard Hipp · Created SQLite in 2000
- Mobile and desktop apps.
- Local development/testing.
- Small read-heavy sites.
- Embedded systems.
- High-concurrency web apps (use PostgreSQL).
- Distributed/multi-server (no replication).
- Write-heavy workloads.
Definition
SQLite is a self-contained, serverless, embedded SQL database. The entire database is one file. The database engine runs in your app's process. ACID-compliant. No configuration, no administration. Supports most SQL features. Used in mobile apps, browsers, and embedded systems.
Why it exists
To provide a zero-config, embeddable SQL database for apps that need local storage without running a database server — perfect for mobile, desktop, and small web apps.
How it works
Link the SQLite library into your app. Open a file. Run SQL via the C API or language bindings. The engine reads/writes the file directly. WAL mode allows concurrent readers + one writer. No network — it's in-process.
Scaling limits
One writer at a time (serialized writes). No built-in replication. Not for high-concurrency server apps. File-based — network filesystems cause corruption. No user accounts/permissions.
Cost shape
Free and public domain.
Alternatives
- PostgreSQL — Server-based, concurrent, scalable, but needs setup.
- DuckDB — Analytical (OLAP) focus, columnar, embedded.
Failure modes
- Write contention (single writer).
- Corruption on network filesystems.
- No concurrent writes.
- File size limits.