sqlite-vec is a vector search SQLite extension that runs anywhere SQLite runs.
The tool addresses the need to store and query vector embeddings within SQLite databases without external dependencies or specialized infrastructure. It implements vector search as a virtual table called vec0, allowing developers to index and retrieve vectors efficiently alongside traditional relational data. The extension is written in pure C with no external dependencies, making it portable across operating systems and environments including Linux, macOS, Windows, WebAssembly in browsers, and embedded systems like Raspberry Pis. It supports multiple vector types: float vectors, int8 vectors, and binary vectors. Beyond vector storage, the tool allows non-vector data to be stored in metadata columns, auxiliary columns, or partition key columns, enabling hybrid queries that combine vector similarity with structured filtering.
Developers should choose this tool if they need vector search capabilities embedded directly in SQLite without managing separate vector databases or services. It suits projects ranging from local AI applications to edge deployments where keeping data and search logic self-contained is valuable. The tool is positioned as a successor to an earlier project, sqlite-vss, representing an evolution of the approach to vector search in SQLite.
The project is in pre-v1 development, meaning breaking changes should be expected as the API stabilizes. Development activity shows ongoing refinement of core functionality with attention to cross-platform compatibility and the addition of different vector type support. The tool maintains focus on the constraint of being extremely small and dependency-free while achieving adequate performance for vector search workloads.