sqlite-vec
A lightweight vector extension for SQLite that adds vector storage and similarity search capabilities through a virtual table mechanism. It is positioned as a simple, easy-to-use solution for getting started quickly with vector search in SQLite.
Timeline (last 90 days)
sqlite-vec can serve as a local vector database to store embeddings, completely avoiding external calls.
sqlite-vec stores vectors using virtual tables, created via the CREATE VIRTUAL TABLE ... USING vec0 syntax.
In sqlite-vec, auxiliary columns defined with a + prefix cannot be used for filtering or searching—doing so will raise an "illegal WHERE constraint on an auxiliary column" error; metadata columns without the prefix can be used for WHERE filtering.
In benchmarks, at a scale of 50,000 vectors, sqlite-vec takes approximately 84ms/query and sqlite-vector approximately 78ms/query; at 150,000 vectors, the figures are 241ms and 231ms respectively, with sqlite-vector generally querying faster.
In memory efficiency tests with 50,000 vectors, sqlite-vec requires approximately 150MB for full vector search, while sqlite-vector uses quantization (turbo4) and requires only approximately 19.8MB.
sqlite-vec stores vectors using virtual tables, whereas sqlite-vector uses ordinary tables and stores vectors as BLOBs.
Projects such as sqlite-vss (a SQLite vector search extension based on Faiss) and sqlite-vec are filling the gap in vector retrieval capabilities for SQLite.
All Facts (7)
Projects such as sqlite-vss (a SQLite vector search extension based on Faiss) and sqlite-vec are filling the gap in vector retrieval capabilities for SQLite.
60%Unverifiedsqlite-vec can serve as a local vector database to store embeddings, completely avoiding external calls.
50%UnverifiedIn sqlite-vec, auxiliary columns defined with a + prefix cannot be used for filtering or searching—doing so will raise an "illegal WHERE constraint on an auxiliary column" error; metadata columns without the prefix can be used for WHERE filtering.
50%UnverifiedIn benchmarks, at a scale of 50,000 vectors, sqlite-vec takes approximately 84ms/query and sqlite-vector approximately 78ms/query; at 150,000 vectors, the figures are 241ms and 231ms respectively, with sqlite-vector generally querying faster.
50%UnverifiedIn memory efficiency tests with 50,000 vectors, sqlite-vec requires approximately 150MB for full vector search, while sqlite-vector uses quantization (turbo4) and requires only approximately 19.8MB.
50%Unverifiedsqlite-vec stores vectors using virtual tables, whereas sqlite-vector uses ordinary tables and stores vectors as BLOBs.
50%Unverifiedsqlite-vec stores vectors using virtual tables, created via the CREATE VIRTUAL TABLE ... USING vec0 syntax.
50%