---
title: SQLite
slug: sqlite
url: "https://toolweight.com/options/sqlite"
homepage: "https://www.sqlite.org"
categories: sqlite-vs-postgres-vs-mysql
last_verified: 2026-07-01
license: CC-BY-4.0
---

# SQLite

> Embedded SQL engine that runs inside your process, a file, not a server.

SQLite is a C library that implements a small, fast, transactional SQL engine reading and writing a single cross-platform file. There is no daemon, no configuration and no network protocol; a query is a function call. It is developed by a three-person team at Hwaci, funded by a consortium of members, and released into the public domain with a test suite far larger than the engine itself.

## Identity

|  |  |
| --- | --- |
| Name | SQLite |
| Company | SQLite |
| One-liner | Embedded SQL engine that runs inside your process, a file, not a server. |
| Site | https://www.sqlite.org |
| Docs | https://www.sqlite.org/docs.html |
| Repo | https://github.com/sqlite/sqlite |
| Founded | 2000 |
| Open source | Yes |
| Licence | Public domain |
| Brand | https://toolweight.com/vendors/SQLite |
| Compared in | 1 |

## Where it is compared

### [Database engines](https://toolweight.com/compare/sqlite-vs-postgres-vs-mysql)
| Field | Value | Confidence | Verified | Source | Note |
| --- | --- | --- | --- | --- | --- |
| Embedded or server | Embedded (in-process) | Vendor-claimed | 2026-07-01 | https://www.sqlite.org/about.html | There is a client/server wrapper in the wild, but the engine itself is a library. |
| Concurrency model | Reader/writer locking | Vendor-claimed | 2026-07-01 | https://www.sqlite.org/lockingv3.html | WAL mode lets readers proceed against a snapshot while one writer appends, which is MVCC-like but still one writer. |
| Write concurrency | Single writer | Vendor-claimed | 2026-07-01 | https://www.sqlite.org/wal.html | One write transaction per database at a time; others get SQLITE_BUSY until the busy timeout expires. |
| Isolation levels | Serializable | Vendor-claimed | 2026-07-01 | https://www.sqlite.org/isolation.html | Serialisable by default. READ UNCOMMITTED exists only between connections sharing a cache. |
| JSON support | Text functions only | Vendor-claimed | 2026-07-01 | https://www.sqlite.org/json1.html | JSON functions built in since 3.38 and a binary JSONB representation since 3.45, but no JSON column type; index with expression indexes. |
| Full-text search | Extension | Vendor-claimed | 2026-07-01 | https://www.sqlite.org/fts5.html | FTS5 is a loadable extension but ships in the amalgamation and is compiled into most distributions. |
| Vector search | Extension | Community-reported | 2026-07-01 | https://github.com/asg017/sqlite-vec | sqlite-vec gives a vector type and brute-force KNN. No approximate index, so recall is exact and cost is linear. |
| Type strictness | Dynamic (per-value) | Vendor-claimed | 2026-07-01 | https://www.sqlite.org/datatype3.html | Type affinity, not enforcement. STRICT tables since 3.37 give you real checking if you opt in per table. |
| ALTER TABLE | Severe (rebuild required) | Vendor-claimed | 2026-07-01 | https://www.sqlite.org/lang_altertable.html | ADD COLUMN, DROP COLUMN (3.35+), RENAME only. Changing a type or adding a constraint means the documented twelve-step rebuild. |
| Max database size | 256 TB | Vendor-claimed | 2026-07-01 | https://www.sqlite.org/limits.html | 256 TiB is the format limit. The practical wall is backup and single-writer throughput, which most teams meet long before 1 TB. |
| Replication | Third-party only | Vendor-claimed | 2026-07-01 | https://www.sqlite.org/whentouse.html | Nothing in the engine. Litestream, LiteFS, rqlite and Turso each solve it differently and none is free of trade-offs. |
| PITR | ◐ | Community-reported | 2026-07-01 | https://litestream.io/how-it-works/ | Litestream ships WAL frames to object storage continuously, giving real PITR, but it is a separate process you must run and monitor. |
| Online schema change | ○ | Vendor-claimed | 2026-07-01 | https://www.sqlite.org/lang_altertable.html | A rebuild holds the write lock for its duration; on a large table that is user-visible downtime. |
| Connection model | In-process (no connections) | Vendor-claimed | 2026-07-01 | https://www.sqlite.org/threadsafe.html | - |
| Default max conns | - | Vendor-claimed | 2026-07-01 | https://www.sqlite.org/whentouse.html | Not applicable, the database is a file your process opens. |
| Managed options | Turso, Cloudflare D1, Fly.io LiteFS | Inferred | 2026-07-01 | - | All three are SQLite-compatible services rather than managed SQLite; D1 and Turso add their own replication layers. |
| Ops burden | 1 | Inferred | 2026-07-01 | - | No daemon, no users, no upgrades in place. Add one point in practice if you adopt Litestream and actually test the restore. |
| Extension ecosystem | 4 | Inferred | 2026-07-01 | - | A stable loadable-extension ABI with FTS5, R-Tree, sqlite-vec and sqlean, but no package manager and no host that curates them. |
| Client libraries | 5 | Inferred | 2026-07-01 | - | - |
| Migration tooling | 3 | Inferred | 2026-07-01 | - | Atlas, Drizzle and Alembic automate the rebuild dance, but the dance is still happening underneath. |
| GitHub stars | 8,000 | Community-reported | 2026-07-01 | https://github.com/sqlite/sqlite | Approximate. Read-only mirror; development happens in Fossil, so this measures visibility only. |
| Positioning | Small. Fast. Reliable. Choose any three. | Vendor-claimed | 2026-07-01 | https://www.sqlite.org/ | - |
| Licence | Public domain | Vendor-claimed | 2026-07-01 | https://www.sqlite.org/copyright.html | - |
| Embed in closed source | ● | Vendor-claimed | 2026-07-01 | https://www.sqlite.org/copyright.html | Public domain. A paid licence exists purely so companies in jurisdictions without a public domain can have a signed document. |
| Governance | Independent team | Vendor-claimed | 2026-07-01 | https://www.sqlite.org/consortium.html | Hwaci employs the core developers; the SQLite Consortium funds them without steering the roadmap. |
| First release | 2000-08-17 | Vendor-claimed | 2026-07-01 | https://www.sqlite.org/chronology.html | - |

**Verdict.** The best answer for any workload where one process owns the data, and the answer most teams reject for reasons that stopped being true a decade ago. The real constraints are the single writer, the absent replication story and the table rebuild you need for most schema changes, none of which is throughput.

## Alternatives

- [DuckDB](https://toolweight.com/options/duckdb), In-process columnar analytics engine, SQLite's shape, a warehouse's execution model.
- [MariaDB](https://toolweight.com/options/mariadb), GPL-only MySQL fork under a foundation, with Galera clustering and native vectors.
- [MySQL](https://toolweight.com/options/mysql), The relational server that ran the early web, now Oracle-stewarded and InnoDB-based.
- [PostgreSQL](https://toolweight.com/options/postgresql), MVCC relational server with the widest SQL surface and a deep extension ecosystem.

## Licence and attribution

Data from toolweight (https://toolweight.com), licensed CC-BY-4.0.

- Licence: [CC-BY-4.0](https://creativecommons.org/licenses/by/4.0/)
- Canonical HTML: https://toolweight.com/options/sqlite
- Machine-readable: https://toolweight.com/options/sqlite.md · https://toolweight.com/api/v1 · https://toolweight.com/mcp
- toolweight takes no affiliate revenue and sells no placements. Corrections: https://toolweight.com/suggest
