Expand description
Safe Rust bindings for the zvec vector database.
Zvec is an open-source, in-process vector database — lightweight, lightning-fast, and designed to embed directly into applications. This Rust SDK wraps the zvec C-API to provide safe, idiomatic Rust access to all zvec functionality.
§Quick Start
use zvec_rust::*;
fn main() -> zvec_rust::Result<()> {
initialize(None)?;
let schema = CollectionSchema::builder("example")
.add_field(FieldSchema::new("id", DataType::String, false, 0)?)
.add_vector_field("embedding", DataType::VectorFp32, 4,
IndexParams::hnsw(MetricType::Cosine, 16, 200)?)
.build()?;
let collection = Collection::create_and_open("./data", &schema, None)?;
let mut doc = Doc::new()?;
doc.set_pk("doc1");
doc.add_string("id", "doc1")?;
doc.add_vector_f32("embedding", &[0.1, 0.2, 0.3, 0.4])?;
collection.insert(&[&doc])?;
let query = SearchQuery::new("embedding", &[0.4, 0.3, 0.3, 0.1], 10)?;
let results = collection.query(&query)?;
for result in &results {
println!("PK={} Score={:.4}", result.get_pk().unwrap_or(""), result.get_score());
}
Ok(())
}Re-exports§
pub use collection::Collection;pub use collection::CollectionOptions;pub use collection::CollectionStats;pub use collection::DocIterator;pub use collection::DocWriteResult;pub use collection::IndexStat;pub use collection::WriteResult;pub use config::initialize;pub use config::is_initialized;pub use config::version;pub use config::ConfigBuilder;pub use doc::Doc;pub use error::Error;pub use error::ErrorCode;pub use error::Result;pub use multi_query::MultiQuery;pub use multi_query::SubQuery;pub use query::DiskannQueryParams;pub use query::FlatQueryParams;pub use query::Fts;pub use query::FtsQueryParams;pub use query::GroupBySearchQuery;pub use query::HnswQueryParams;pub use query::IvfQueryParams;pub use query::IvfRabitqQueryParams;pub use query::SearchQuery;pub use query::SearchQueryBuilder;pub use schema::CollectionSchema;pub use schema::FieldSchema;pub use schema::IndexParams;pub use types::DataType;pub use types::DocOperator;pub use types::IndexType;pub use types::LogLevel;pub use types::MetricType;pub use types::QuantizeType;pub use zvec_rust_sys as sys;
Modules§
- collection
- config
- doc
- error
- multi_
query - Multi-query and sub-query types for combined vector searches.
- prelude
- Convenience prelude that re-exports the most commonly used types.
- query
- schema
- types