A vector search SQLite extension that runs anywhere!
Find a file
Alex Garcia b00865429b Filter deleted nodes from DiskANN search results and add delete tests
DiskANN's delete repair only fixes forward edges (nodes the deleted
node pointed to). Stale reverse edges can cause deleted rowids to
appear in search results. Fix: track a 'confirmed' flag on each
search candidate, set when the full-precision vector is successfully
read during re-ranking. Only confirmed candidates are included in
output. Zero additional SQL queries — piggybacks on the existing
re-rank vector read.

Also adds delete hardening tests:
- Rescore: interleaved delete+KNN, rowid_in after deletes, full
  delete+reinsert cycle
- DiskANN: delete+reinsert cycles with KNN verification, interleaved
  delete+KNN

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-31 17:13:29 -07:00
.github rm demo gha workflow 2026-03-31 01:21:54 -07:00
benchmarks Add ANN search support for vec0 virtual table (#273) 2026-03-31 01:03:32 -07:00
benchmarks-ann Add comprehensive ANN benchmarking suite (#279) 2026-03-31 01:29:49 -07:00
bindings Add ANN search support for vec0 virtual table (#273) 2026-03-31 01:03:32 -07:00
examples node:sqlite sample 2025-01-24 13:30:14 -08:00
scripts Fix broken unzip -d line in vendor.sh 2026-03-31 13:14:18 -07:00
site Add ANN search support for vec0 virtual table (#273) 2026-03-31 01:03:32 -07:00
tests Filter deleted nodes from DiskANN search results and add delete tests 2026-03-31 17:13:29 -07:00
.gitignore Add comprehensive ANN benchmarking suite (#279) 2026-03-31 01:29:49 -07:00
ARCHITECTURE.md Metadata filtering (#124) 2024-11-20 00:59:34 -08:00
LICENSE-APACHE add licenses 2024-05-10 22:42:10 -07:00
LICENSE-MIT add licenses 2024-05-10 22:42:10 -07:00
Makefile Add DiskANN index for vec0 virtual table 2026-03-31 01:21:54 -07:00
README.md sponsor update 2025-01-24 12:00:41 -08:00
reference.yaml Remove vec_npy_each from default entrypoint and move to sqlite3_vec_numpy_init entrypoint 2024-09-25 23:07:17 -07:00
SECURITY.md add security doc 2024-09-26 00:22:31 -07:00
sqlite-dist.toml update sqlite-dist 2024-08-05 16:03:09 -07:00
sqlite-vec-diskann.c Filter deleted nodes from DiskANN search results and add delete tests 2026-03-31 17:13:29 -07:00
sqlite-vec-ivf-kmeans.c Add IVF index for vec0 virtual table 2026-03-31 01:18:47 -07:00
sqlite-vec-ivf.c Add IVF index for vec0 virtual table 2026-03-31 01:18:47 -07:00
sqlite-vec-rescore.c Initialize rescore distance variable to FLT_MAX 2026-03-31 14:35:55 -07:00
sqlite-vec.c Filter deleted nodes from DiskANN search results and add delete tests 2026-03-31 17:13:29 -07:00
sqlite-vec.h.tmpl cleanup 2024-11-20 06:48:13 -08:00
test.sql Metadata filtering (#124) 2024-11-20 00:59:34 -08:00
TODO Metadata filtering (#124) 2024-11-20 00:59:34 -08:00
TODO.md Add ANN search support for vec0 virtual table (#273) 2026-03-31 01:03:32 -07:00
VERSION v0.1.10-alpha.1 2026-03-31 01:31:39 -07:00

sqlite-vec

An extremely small, "fast enough" vector search SQLite extension that runs anywhere! A successor to sqlite-vss

Important

sqlite-vec is a pre-v1, so expect breaking changes!

  • Store and query float, int8, and binary vectors in vec0 virtual tables
  • Written in pure C, no dependencies, runs anywhere SQLite runs (Linux/MacOS/Windows, in the browser with WASM, Raspberry Pis, etc.)
  • Store non-vector data in metadata, auxiliary, or partition key columns

Mozilla Builders logo

sqlite-vec is a Mozilla Builders project, with additional sponsorship from Fly.io , Turso, SQLite Cloud, and Shinkai. See the Sponsors section for more details.

Installing

See Installing sqlite-vec for more details.

Language Install More Info
Python pip install sqlite-vec sqlite-vec with Python PyPI
Node.js npm install sqlite-vec sqlite-vec with Node.js npm
Ruby gem install sqlite-vec sqlite-vec with Ruby Gem
Go go get -u github.com/asg017/sqlite-vec/bindings/go sqlite-vec with Go Go Reference
Rust cargo add sqlite-vec sqlite-vec with Rust Crates.io
Datasette datasette install datasette-sqlite-vec sqlite-vec with Datasette Datasette
rqlite rqlited -extensions-path=sqlite-vec.tar.gz sqlite-vec with rqlite rqlite
sqlite-utils sqlite-utils install sqlite-utils-sqlite-vec sqlite-vec with sqlite-utils sqlite-utils
Github Release GitHub tag (latest SemVer pre-release)

Sample usage

.load ./vec0

create virtual table vec_examples using vec0(
  sample_embedding float[8]
);

-- vectors can be provided as JSON or in a compact binary format
insert into vec_examples(rowid, sample_embedding)
  values
    (1, '[-0.200, 0.250, 0.341, -0.211, 0.645, 0.935, -0.316, -0.924]'),
    (2, '[0.443, -0.501, 0.355, -0.771, 0.707, -0.708, -0.185, 0.362]'),
    (3, '[0.716, -0.927, 0.134, 0.052, -0.669, 0.793, -0.634, -0.162]'),
    (4, '[-0.710, 0.330, 0.656, 0.041, -0.990, 0.726, 0.385, -0.958]');


-- KNN style query
select
  rowid,
  distance
from vec_examples
where sample_embedding match '[0.890, 0.544, 0.825, 0.961, 0.358, 0.0196, 0.521, 0.175]'
order by distance
limit 2;
/*
┌───────┬──────────────────┐
│ rowid │     distance     │
├───────┼──────────────────┤
│ 2     │ 2.38687372207642 │
│ 1     │ 2.38978505134583 │
└───────┴──────────────────┘
*/

Sponsors

Development of sqlite-vec is supported by multiple generous sponsors! Mozilla is the main sponsor through the new Builders project.

Mozilla Builders logo

sqlite-vec is also sponsored by the following companies:

Fly.io logo Turso logo SQLite Cloud logo Shinkai logo

As well as multiple individual supporters on Github sponsors!

If your company interested in sponsoring sqlite-vec development, send me an email to get more info: https://alexgarcia.xyz

See Also

  • sqlite-ecosystem, Maybe more 3rd party SQLite extensions I've developed
  • sqlite-rembed, Generate text embeddings from remote APIs like OpenAI/Nomic/Ollama, meant for testing and SQL scripts
  • sqlite-lembed, Generate text embeddings locally from embedding models in the .gguf format