← all repositories
sqliteai/sqlite-vector

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.

1k stars C RAG · Search
sqlite-vector
Collecting fresh signals — velocity needs a few days of history.
collecting data…
star history

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.

heatdrop uses Google Analytics to see which pages get read — nothing else. Your call. How we handle data.