Favicon of sqlite-vec

sqlite-vec

A vector search SQLite extension written in C with no dependencies. Runs on Linux, macOS, Windows and in browsers via WebAssembly under Apache 2.0.

sqlite-vec adds vector storage and similarity search to SQLite, so developers can keep embeddings alongside application data in a local database. It's for applications that need to find related items by vector distance without running a separate vector database server. The extension is small, written in C and has no dependencies.

It stores and queries float, int8 and binary vectors, with nearest-neighbor searches that return matching records and their distances. It also supports non-vector data through metadata, auxiliary and partition key columns. That lets an application keep descriptive fields and group information alongside its vectors instead of managing those relationships in a separate store.

Its portability is a practical reason to choose it. sqlite-vec runs on Linux, macOS and Windows, as well as Raspberry Pi hardware and browsers through WebAssembly. Vector storage and queries run wherever the application's SQLite database runs, including on the user's own machine.

Bindings are available for Python, Node.js, Ruby, Go and Rust. It also integrates with Datasette, rqlite and sqlite-utils, giving developers ways to add vector search to existing SQLite projects. sqlite-vec is the successor to sqlite-vss and is open source under Apache 2.0. The project warns that updates can introduce breaking changes while it remains pre-v1.

Similar to sqlite-vec