Why ship a vector database when SQLite can scan BLOBs?
SQLite-Vector is a C extension that turns ordinary SQLite tables into a vector search engine for phones, browsers, and edge devices without virtual tables, preindexing, or external servers.

What it does
SQLite-Vector adds exact and quantized vector search to SQLite by treating vectors as ordinary BLOB columns. You initialize a column with a type and dimension, optionally quantize the data in-place, then query for nearest neighbors via SQL table-returning functions. It ships as a loadable extension or prebuilt libraries for iOS, Android, Linux, macOS, Windows, and WASM, defaulting to about 30 MB of RAM.
The interesting bit The extension implements TurboQuant, a data-oblivious quantizer inspired by a Google Research paper, which packs each vector down to 2/3/4 bits per dimension plus a single scale value and scores through SIMD lookup-table kernels without reconstructing full float32 vectors. On a synthetic million-vector dataset this compressed the payload from roughly 3.07 GB to 396 MB, and a real Fashion-MNIST run pushed 4-bit recall to 0.948—though 2-bit mode dropped to 0.596 on the same real data, so the compression is aggressive and dataset-dependent.
Key highlights
- No virtual tables or schema contortions: vectors live as
BLOBs in regular SQLite tables alongside your other columns. - Zero preindexing: there is no hours-long build step; load the extension and scan immediately.
- TurboQuant 4-bit reduced storage to about 13 % of raw float32 payload on the benchmark dataset, with a 14.9× speedup over the extension’s own full scan at 0.84 recall (synthetic) and 0.948 (Fashion-MNIST).
- Cross-platform C core with SIMD kernels, packaged for mobile, desktop, browser, and server targets.
- Runs offline by default, keeping embeddings inside the local database process.
Caveats
- Recall degrades aggressively at lower bit depths: 2-bit TurboQuant fell to 0.48 recall on synthetic data and 0.596 on Fashion-MNIST, so the README explicitly warns you must validate on your target embeddings.
- Benchmark timings and resident memory vary significantly by CPU, storage speed, SQLite cache settings, and allocator behavior, as the project notes in its own footnotes.
- The quoted speedups compare TurboQuant against the extension’s own exact full scan, not against preindexed solutions.
Verdict If you are building on-device RAG, mobile semantic search, or offline edge AI and already use SQLite, this is a rare extension that meets you where you are. If you need sub-millisecond queries across billions of vectors in the cloud, keep renting those GPU clusters.
Frequently asked
- What is sqliteai/sqlite-vector?
- SQLite-Vector is a C extension that turns ordinary SQLite tables into a vector search engine for phones, browsers, and edge devices without virtual tables, preindexing, or external servers.
- Is sqlite-vector open source?
- Yes — sqliteai/sqlite-vector is an open-source project tracked on heatdrop.
- What language is sqlite-vector written in?
- sqliteai/sqlite-vector is primarily written in C.
- How popular is sqlite-vector?
- sqliteai/sqlite-vector has 1k stars on GitHub.
- Where can I find sqlite-vector?
- sqliteai/sqlite-vector is on GitHub at https://github.com/sqliteai/sqlite-vector.