Recern Vector documentation
Recern Vector is an embedded vector database. A database is a single file; there is no server. You open the file from Python, Rust or the command line, add vectors with JSON metadata, and search them with an HNSW index. Every search can report how it ran, and every collection can report the state of its index and measure its own recall.
Status: prototype (0.0.x). The API and the file format will change between releases. Version 0.1 is reserved for a stable, versioned file format.
When it fits
- Semantic search, RAG retrieval or recommendations inside an application: a desktop app, a script, a notebook, a backend process that owns its data.
- Up to a few million vectors that fit in memory.
- You want to see what the index is doing: why a query was slow, whether a filter was applied efficiently, what recall you actually get.
When it does not
- Many processes writing to the same database at once, or a shared database behind a network API. Use a database server.
- Data much larger than memory. The whole database is loaded on open.
- You need durable writes after every single change. Today
save()rewrites the whole file (see Limitations and roadmap).
Contents
| Page | What it covers |
|---|---|
| Getting started | Install, then a first database from Python, Rust and the CLI |
| Concepts | Databases, collections, records, metrics, the HNSW index, saving, threads |
| Filters | Metadata filter syntax and how filtered searches are planned |
| Inspecting and tuning | explain, stats, estimate_recall, choosing ef, compact |
| Python API | Every class, method and exception in the recern_vector package |
| Rust API | The recern-vector crate |
| Command line | The recern-vector command |
| File format | What is inside a .rvec file |
| Limitations and roadmap | What the prototype does not do yet, and what comes next |
Runnable examples are in examples/. Benchmarks against faiss, LanceDB and sqlite-vec: recern.net/vector/benchmarks.