Data and databases · Edition No. 46 · 10 Oct 2026

asg017/sqlite-vec

Adds find-the-closest-match to SQLite as one small portable file, with no server and nothing to compile.

← Data and databasesRead the whole edition →

8,175 stars · Dual MIT OR Apache-2.0, read from both LICENSE-MIT and LICENSE-APACHE; there is no plain LICENSE file. HOLDER FILLED IN properly in both: 'Alex Garcia', 2024. No added conditions. Two metadata defects: npm declares the malformed expression 'MIT OR Apache', which breaks automated licence tooling, and the package page's only project link is the placeholder https://TODO.com. · v0.1.9 (2026-03-31), settled three ways: the package page states 'Released: Mar 31, 2026', and the npm publish timestamp decodes to 2026-03-31 ~08:02 UTC against the page's 08:00. A pre-release 0.1.10a4 is dated 18 May 2026. · Track this in Scout

Adds find-the-closest-match to SQLite as one small portable file, with no server and nothing to compile.

▶Repo detailsthe review · specs · pros & cons · install

What it does

sqlite-vec is an extension you load into SQLite, written as a single portable C file, designed to run "anywhere SQLite runs" — Linux, macOS, Windows, inside a browser, and on small single-board computers. You create a vec0 table, put number lists in it, and query for nearest neighbours; you can keep ordinary columns alongside them for filtering and partitioning. It handles three storage sizes: full precision, eight-bit, and a one-bit form whose speed difference the author published himself — on one million long number lists, full precision took 8.52 seconds and the one-bit form returned in 124 milliseconds. It ships as a ready-made package for Python, Node, Ruby, Go and two data tools, so there is normally nothing to compile. It does not build an approximate index, which is the central thing to understand: the author states the project "is currently focused on really fast brute-force vector search", so search time grows with the number of rows rather than staying flat. Static read-only blobs do not support inserting, updating or deleting. And it does not let you add a column to a table that already exists — the numbers live in their own table, which makes queries more involved. Its own README says plainly: "sqlite-vec is a pre-v1, so expect breaking changes!"

Why it matters

Who it suits. Anyone building search-by-meaning into a program that already uses SQLite, where the collection is tens or hundreds of thousands of items rather than tens of millions, and where running a separate database server would be absurd. It suits a desktop application, a phone application, or a small service particularly well, because there is no server at all. Skip it if the collection is large and growing: with no approximate index, the cost of a query rises with the row count, and the author's own figures show a million long number lists needing about 6 GB of memory to hold.

What people say. This is the entry with genuinely strong outside sources, and the most important one is bad news. Dan Kennedy, one of SQLite's own core developers, posted on the SQLite user forum on 30 March 2026 that SQLite upstream is building its own vector extension: "There is still no vec1 release, but we are getting closer", with work remaining on processor-specific optimisation and testing he calls "woefully inadequate". The documentation for that extension says it "provides approximate nearest-neighbor (ANN) vector search", is "implemented in portable C and has no external dependencies", uses a named indexing method, and that "The current release is version 0.7" with "No further features are required before a 1.0 release." Neither page mentions sqlite-vec — and what SQLite is building is exactly the approximate indexing sqlite-vec does not have. The other substantial source is Marco Bambini's piece of 1 September 2025, which calls sqlite-vec "A clean re-implementation in C, easier to maintain, exposing a brute-force search strategy" and notes its table design "means vectors must live in separate tables and queries become more complex" — and he discloses in the article, as we do here, that he founded a company selling a competing extension and that his team first sponsored sqlite-vec. Simon Willison wrote two useful how-to pieces in August and October 2024, but he authors the two data tools sqlite-vec ships plugins for, so he is an interested neighbour, and both pieces are two years old.

Verdict. Use it today if the collection is small and the simplicity is the point — one file, no server, and it works in a browser. But go in knowing three things, and the third is the one nobody tells you. It is still before version 1.0 two and a half years in, with 52 unmerged pull requests and the last code landing on 18 May 2026 — about five months ago, well inside the line this report draws, and we are explicitly not calling it dormant. A third party has forked it, stating in the fork's README that it exists "to merge pending upstream PRs and provide community support while the original author is unavailable" — that is the fork's claim and not a verified fact, but it points the same way. And SQLite's own authors are now shipping a competing extension at version 0.7 that does the approximate indexing this one lacks, which will reshape the whole category when it lands. Its own predecessor, asg017/sqlite-vss, is the cautionary note: 2,004 stars, not archived, and no code since 5 May 2024, with a README that tells readers to come here instead.

Stars8,175
LicenceDual MIT OR Apache-2.0, read from both LICENSE-MIT and LICENSE-APACHE; there is no plain LICENSE file. HOLDER FILLED IN properly in both: 'Alex Garcia', 2024. No added conditions. Two metadata defects: npm declares the malformed expression 'MIT OR Apache', which breaks automated licence tooling, and the package page's only project link is the placeholder https://TODO.com.
Latestv0.1.9 (2026-03-31), settled three ways: the package page states 'Released: Mar 31, 2026', and the npm publish timestamp decodes to 2026-03-31 ~08:02 UTC against the page's 08:00. A pre-release 0.1.10a4 is dated 18 May 2026.
Good
  • Dual MIT or Apache-2.0 read from both files with the copyright holder properly filled in, no added conditions, no hosted dependency and nothing to pay for.
  • One portable C file with no server, installing as an ordinary package for Python, Node, Ruby and Go, and running in a browser and on small boards as well as on servers.
  • The one-bit storage option is a real, published speed difference: 8.52 seconds against 124 milliseconds on the author's own million-row benchmark.
Watch for
  • No approximate index, so a query's cost rises with the row count. The author's own numbers put one million long number lists at about 6 GB, and his benchmark machine ran out of memory on a larger set — so that figure is a practical ceiling, not just a disk size.
  • Still before version 1.0 two and a half years in, with 52 open pull requests, the last code in May 2026, and a third-party fork whose stated reason for existing is to merge what upstream has not.
  • SQLite's own core team is building a competing extension with the approximate indexing this one lacks, already at version 0.7 with no further features planned before 1.0. Two metadata defects are worth knowing too: its package metadata declares a malformed licence expression that will confuse automated tooling, and its published home page address is still the placeholder https://TODO.com.
Similar repositories
  • asg017/sqlite-vss

    The same author's earlier attempt at the same job on a heavier library; its README says it is not in active development and sends readers to sqlite-vec.

    Track this in Scout
  • sqliteai/sqlite-vector

    The same job with extra compression and no separate table, but free only inside open-source projects and non-production otherwise, where sqlite-vec is permissive.

    Track this in Scout
  • vlasky/sqlite-vec

    A fork rather than an alternative, adding distance limits and paged results, created to merge pending upstream changes by its own account.

    Track this in Scout
Install
pip install sqlite-vec
npm install sqlite-vec
gem install sqlite-vec
go get -u github.com/asg017/sqlite-vec/bindings/go
Screenshots
asg017/sqlite-vec: GitHub preview card

Get the next edition in your inbox

A dozen repositories, opened and checked. The licence read, the last release dated, and the ones that did not make it named with the reason. It is the half most lists leave out.

No tracking pixels. One click to leave. The archive stays free either way.

We use your address to send the edition and nothing else. Confirm by email, leave in one click. How we handle it.