Embedded vector libraries

Infino with turbovec and FAISS, all in one process: the same queries, exact ground truth, and each library through its own public API.

cat README.md

How it is measured

engines
Infino, turbovec and FAISS, each through its own public API
process
all in one process, so no network or serialization in the timings
ground truth
brute-force exact search, so recall is measured, not estimated
Infino mode
the shipped flat_ivf mode: a table built by the normal append, commit and optimize lifecycle, serving its resident 4-bit plane
datasets
dbpedia-1536 (OpenAI embeddings) and Cohere 768, 100K vectors each, top-10
FAISS build
compiled from the source faiss-rs bundles, with -march=native so FastScan uses SIMD
provenance
each run commits a run.json with the host, the engine commit and the exact command
ls results/inprocess/

Results

The tables and the chart are published in retrievalbench, with every result file and the run that produced it. Results are CC BY 4.0, so they can be quoted anywhere, including in a comparison that disagrees with ours.

cargo bench -- vector-codec

Reproduce it

Plain cargo bench in retrievalbench. The corpus downloads once. Add --features faiss, after running scripts/build_faiss.sh, for the FAISS rows. Remove infino.yaml before running anything else, since every other benchmark measures shipped defaults.

reproduce.sh
git clone https://github.com/infino-ai/retrievalbench && cd retrievalbench
printf 'vector:\n  search_mode: flat_ivf\n' > infino.yaml
INFINO_BENCH_SUPERTABLE_DOCS=100000 \
  cargo bench -- vector-codec \
  corpus=hf:KShivendu/dbpedia-entities-openai-1M corpus-dir=./corpora
cat FAQ.md

Common questions

Why compare with libraries rather than vector databases?

An embedded engine runs inside your application, the same place a library like FAISS does, so libraries are the fair comparison for that use. Vector databases are measured separately, through VectorDBBench, on its own page.

Which Infino settings does this use?

One configuration line selects the flat_ivf search mode, and everything else is the shipped default. The table is built the normal way, by appending, committing and optimizing, not by a special benchmark path.

Vector search that lives next to your keyword index. Try it on your own data.

Free tier · No credit card to start

or run it yourself: pip install infino · Apache-2.0 · quickstart →