Vibeleaderboard
Index / app
Visit github.com
Category
AI Tools
Rank

Previous survey · No. 746 ·

Type
APP
Builder
ryancodrai
Date

About

A fast vector index built on TurboQuant, written in Rust with Python bindings.

What it does

TurboVec compresses embedding vectors to two, three, or four bits per coordinate, then searches those compact representations locally. New vectors become searchable immediately without training or rebuilding. It supports positional entries or stable external identifiers, filtered retrieval, deletion, full snapshots, and incremental persistence.

Why it's ranked here

TurboVec makes a strong case for memory-sensitive local retrieval. Its published benchmarks report lower search latency than comparable FAISS configurations on ARM and x86, while its API covers online ingestion, stable identifiers, filtering, and crash-aware persistence. The evidence is extensive, but it comes from the project’s own benchmark suite.

What's good

Filtering happens inside the SIMD search kernel, so selective allowlists can skip whole blocks instead of scoring everything and discarding unwanted results. Incremental saves write only changes after the previous synchronization. Stable identifiers survive swap-based deletion. Python integrations cover LangChain, LlamaIndex, Haystack, and Agno, with explicit persistence and filtering semantics.

Tradeoffs

Compression discards full-precision vectors, which prevents max-marginal-relevance search and means Haystack cannot return stored embeddings. Inputs must be contiguous two-dimensional float32 arrays in Python, dimensions must be positive multiples of eight, and only two, three, or four bits per coordinate are supported. The core requires a 64-bit target. Some framework features still need adjacent components, including Haystack retrieval wiring and embedding generation.

How to use it well

Use TurboVec for local or air-gapped retrieval where memory, ingestion latency, selective filtering, and incremental persistence matter. It fits dense reranking behind SQL, lexical search, access controls, or time-window filtering. Choose stable identifiers when records may be deleted. Bring your own embedding model, and bring a lexical index when you need keyword or hybrid retrieval because TurboVec does not ship one.

Technical notes+

Cargo.toml defines a Rust workspace with turbovec and turbovec-python; release builds enable LTO, one codegen unit, and optimization level 3. turbovec/src/lib.rs rejects non-64-bit targets, defers rotation, centroid, and SIMD-blocked-layout initialization through OnceLock, and exposes positional and stable-ID indexes. turbovec-python/src/lib.rs uses PyO3 and NumPy bindings, validates array shape and dtype, maps malformed inputs to Python exceptions, and handles NumPy boolean masks through raw bytes to avoid invalid Rust bool representations. turbovec-python/build.rs adds platform-specific Python extension linker arguments, including macOS dynamic lookup support.

Observed

Primary language
Rust
Packaging
Published for Python installation through PyPI and Rust installation through crates.io
Interfaces
Rust library and Python library bindings
Framework integrations
Optional Python integrations for LangChain, LlamaIndex, Haystack, and Agno
Platform support
Requires a 64-bit target; includes ARM NEON, x86 AVX-512 and AVX2 kernels, plus scalar fallbacks
Persistence
Supports whole-file snapshots, in-memory serialization, and incremental saves
Repository structure
Cargo workspace contains separate core and Python-binding members

Read from README.md, Cargo.toml, docs/api.md, docs/integrations/agno.md, docs/integrations/haystack.md, docs/integrations/langchain.md, docs/integrations/llama_index.md, turbovec-python/build.rs, turbovec/src/lib.rs, turbovec-python/src/lib.rs.

Tech Stack

Rust

Comments (0)

No comments yet

Editorially curated, with community endorsements as a secondary signal. Corrections welcome.