turbovec is a Rust-based in-process vector index with Python bindings that compresses embeddings with TurboQuant to use much less memory and search faster than FAISS at matched recall.
turbovec is a local vector-search library for Python and Rust. It indexes embeddings in memory, supports direct search over the compressed vectors, and exposes both a plain index and an id-mapped variant for user-owned ids and deletions. The README also describes persistence, filtering, and integrations with several LLM/RAG frameworks.
It addresses the cost of storing and searching large embedding collections, especially when float32 vectors consume a lot of RAM and standard search can be slower. The project is aimed at use cases where you want a fully local, in-process vector index with low memory use, fast updates, and no training or rebuild step.
Conceptually, turbovec stores each dimension in a 2-bit or 4-bit compressed form using TurboQuant, then searches that compressed representation directly with SIMD-oriented kernels. The README describes a staged search approach that scans one bit plane first and then rescoring a shortlist exactly, which is how it balances speed and recall. It also supports incremental persistence through sync/write operations so changes can be saved without rebuilding the whole index.
It is attracting attention because it combines several traits that are useful for modern embedding and RAG workloads: strong memory savings, faster search than a FAISS baseline in the reported benchmarks, incremental updates, and an offline-first library model. The repository also offers Python and Rust APIs plus integrations for LangChain, LlamaIndex, Haystack, and Agno, which likely broadens its appeal to practitioners. The README highlights concrete benchmark numbers and operational features such as allowlist filtering and crash-safe sync, which can make the project stand out.
The README explicitly compares turbovec with FAISS, especially FAISS FastScan and IndexPQ, and positions turbovec as a faster and smaller in-process alternative in the reported tests. It also frames turbovec as a choice for local vector search rather than a graph index, so graph-based ANN systems are a different direction when the corpus grows very large. Beyond that, the README does not claim direct comparisons with other libraries.
AI-explained · grounded in each repo's README