A Rust vector index with Python bindings that compresses embeddings to 2-bit or 4-bit using TurboQuant, achieving up to 16x compression without a training phase. It utilizes hand-written SIMD kernels for search speeds measured faster than FAISS on ARM.
Project overview
It combines high vector compression with no required training phase and hand-written SIMD search kernels, measuring 10-19% faster than FAISS IndexPQFastScan on ARM architectures.
Project type
RAG · Vector Database
Use cases
Knowledge Q&A
Deployment
Refer to project documentation
License
MIT
Best for
Developers needing to add vectors continuously to an index without a separate training phase, parameter tuning, or rebuilding.
Teams requiring local-only execution with no managed service dependency for air-gapped RAG stacks.
Key capabilities
Add vectors to the index continuously without requiring a separate training step, parameter tuning, or rebuilding as the corpus grows.
Utilizes hand-written NEON and AVX-512BW SIMD kernels to provide search speeds faster than FAISS.
Allows passing an id allowlist or bitmask to the search function to filter results within the SIMD kernel without over-fetching.
Compresses vectors using a random rotation and Lloyd-Max scalar quantization to achieve up to 16x compression.
Computes and stores a scalar per vector at encode time to correct systematic underestimation of inner products during scoring.
Provides an IdMapIndex for mapping internal ids to stable external uint64 ids that survive deletes.
Provides Python bindings installable via pip for interacting with the underlying Rust index.
Provides a native Rust library installable via cargo.
Limitations and risks
The TurboQuant asymptotic Beta assumption is looser in low-dimensional vector regimes like GloVe d=200.
Getting started
Run pip install turbovec and instantiate TurboQuantIndex. Coding is required to utilize the library.
Evidence and sources
README: **A 10 million document corpus takes 31 GB of RAM as float32. turbovec fits it in 4 GB - and searches it faster than FAISS.** turbovec is a Rust vector index with Python bindings,…
README: turbovec is a Rust vector index with Python bindings, built on Google Research's [**TurboQuant**](https://arxiv.org/abs/2504.19874) algorithm
README: Restrict results to a candidate set produced by another system (SQL, BM25, ACL, time window, …):
README: The calibration is frozen after the first add and reused by subsequent adds — no retraining, no rebuilds, no separate train phase. Recall gain: up to +1.4pp at @1 on the cells tha…
README: Need stable ids that survive deletes? Use `IdMapIndex`: ```python import numpy as np from turbovec import IdMapIndex index = IdMapIndex(dim=1536, bit_width=4) index.add_with_ids(v…