AI and models · Edition No. 8 · 2 Sep 2026

MinishLab/vicinity

One interface over several nearest-neighbour backends — the throwaway in-memory index for a single conversation.

← AI and modelsRead the whole edition →
09

MinishLab/vicinity

💎 hidden gem

351 stars · MIT · v0.4.4 (2026-04-14)

One interface over several nearest-neighbour backends — the throwaway in-memory index for a single conversation.

Repo detailsthe review · specs · pros & cons · install

What it is

A tiny Python library giving one interface over several nearest-neighbour backends (exact search, HNSW, FAISS, Annoy and others), with save and load built in. It is from MinishLab, the team behind model2vec.

Why it matters

pgvector (Ed. 2 #11) is the right answer for vectors that must persist, be shared and be backed up. It is the wrong answer for a document a user uploaded four minutes ago and may delete in six: a per-import index, built in memory, queried a hundred times while they explore the map, then discarded, does not want a table, a migration or an HNSW build on your small VPS. It is also how you finally answer Edition 3's open question — BERTopic versus turftopic versus LightRAG — because comparing embedding models over the same conversation ten times is trivial when the index is a variable and awkward when it is a database. Same team as model2vec, so the two compose without thought.

Stars351
LicenceMIT
Latestv0.4.4 (2026-04-14)checked 7 Sep 2026
Written inPython
RunsLocally, on your own machine
Setup effort
2 / 5
Payoff
3 / 5
Good
  • Swapping backends is one argument, which turns "is HNSW worth it at our size" from an afternoon into a minute.
  • No server, no schema, no migration. It is a Python object.
  • Save and load to disk or Hugging Face, so an expensive index for a large permanent corpus can be cached rather than rebuilt.
Watch for
  • It genuinely overlaps pgvector, and running both without a clear rule about which owns what is how a codebase gets confusing. Write the rule down: persistent and shared goes in PostgreSQL, ephemeral and per-import goes here.
  • In-memory means RAM. A large conversation is fine; a hundred concurrent users each holding an index is not, on one Hetzner box.
  • 350 stars and a small team. Low risk because the interface is thin and the backends underneath are the well-known libraries — but it is a convenience layer, not infrastructure.
How to get it

A Python dependency in the FastAPI virtualenv, used inside a Procrastinate job that chunks with Chonkie , embeds with model2vec and indexes here.

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.