Expand description
§DiskAnnRS
A DiskANN-like Rust library implementing approximate nearest neighbor search with single-file storage support. The library provides both Euclidean distance and Cosine similarity metrics, using the Vamana graph algorithm for efficient search.
§Features
- Single-file storage format with memory-mapped access
- Support for both Euclidean and Cosine distance metrics
- Vamana graph construction with pruning
- Efficient beam search with medoid entry points
- Minimal memory footprint during search
§Example
use diskann_rs::{DiskANN, DistanceMetric};
// Build a new index from vectors
let vectors = vec![vec![0.0; 128]; 1000]; // Your vectors
let index = DiskANN::build_index(
&vectors,
32, // maximum degree
128, // build-time beam width
0.5, // alpha parameter for pruning
DistanceMetric::Euclidean,
"index.db"
).unwrap();
// Search the index
let query = vec![0.0; 128]; // your query vector
let neighbors = index.search(&query, 10, 64); // find top 10 with beam width 64
Structs§
- DiskANN
- Main struct representing a DiskANN index
Enums§
- Disk
AnnError - Custom error type for DiskAnnRS operations
- Distance
Metric - Supported distance metrics for vector comparison