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.
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.
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
Add vecdb-core and serde_json with cargo.
Open a local data directory with Db::open and open or create a named collection with its vector dimension.
Insert records using an ID, a vector and JSON metadata.
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.
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

