OpenViSTAI · Agents · Blockchain · Crypto
Menu
RAG & Knowledge Systems

Vecdb

Vecdb is an embeddable Rust vector database that stores float32 vectors and JSON metadata on disk and provides in-process dense HNSW, BM25 text, hybrid and metadata-filtered search. Its vecdb-core library uses SQLite for metadata and has no network dependency; an optional vecdb-api crate wraps the core in an HTTP server.

Independent OpenViST project profile, based on linked sources.

Vecdb — OpenViST project profile in RAG & Knowledge Systems.
OpenViST project illustration. See the linked sources for product details.
Understand the project

Practical overview

When it fits

Use vecdb when a Rust application needs an in-process local retrieval component and you want dense search, BM25, hybrid ranking or metadata filters without running a separate database service. Consider the optional HTTP crate when a REST server is specifically needed.

Who it is for

  • Rust developers adding local vector retrieval to an application.
  • Teams building document search that combines semantic similarity with BM25 text matching.
  • Developers who need metadata filters or want to evaluate quantized vector indexes.

Documented uses

  • Store vector records and associated JSON metadata in a local application data directory.
  • Retrieve nearest vectors with HNSW search.
  • Search text with the built-in BM25 index or combine text and dense retrieval.
  • Filter retrieval results using JSON metadata.
  • Optionally expose the embedded search core through an HTTP service.
Before you choose

Requirements & limits

The project is open source under the MIT license. Its documented core is a Rust library; the HTTP service is an optional separate crate.

  • The core operates in-process with local storage and does not require a separate server.
  • Index construction is single-node and can be slow at scale: the project reports about 2.5 hours for one million vectors on a laptop at the default ef_construction setting.
  • For large builds, the README documents setting ef_construction to 100 as a faster option, with a small recall difference in its SIFT1M comparison.
  • Quantization is optional: the project describes int8 indexes as about four times smaller and binary indexes as about 32 times smaller.
  • The optional vecdb-api crate adds an HTTP server, metrics, API-key authentication and Python and TypeScript SDKs; these are distinct from the embedded core.

Check current requirements in the official documentation. Source-based guidance does not mean OpenViST has run or independently tested this project.

Source-based practical guide

Add a local dense-search collection

Create a collection, insert vector records with JSON metadata, and query nearest vectors in a Rust application.

Before you start

  • A Rust application
  • The vecdb-core and serde_json dependencies
  • Vector values with a consistent dimension for the collection

Steps

  1. Add vecdb-core and serde_json with cargo.

  2. Open a local data directory with Db::open and open or create a named collection with its vector dimension.

  3. Insert records using an ID, a vector and JSON metadata.

  4. Query the collection with a vector and a result limit; call flush to persist the index for faster reopening.

Expected outcome

The application can query nearest vector records from its local collection.

Guide limitations

  • The example demonstrates dense vector search; BM25, hybrid and filtered queries use separate documented query methods.
  • Index construction can take substantial time for large datasets; the project reports about 2.5 hours for one million vectors on a laptop at the default construction setting.
Evidence and transparency

Sources & review

Source record details
Source availability
Active
Sources checked
15 October 2026
Original website title
zaydmulani09/vecdb · Official homepage title · retained in its source language