Skip to main content

ruvector_diskann/
lib.rs

1//! # ruvector-diskann
2//!
3//! DiskANN/Vamana implementation for billion-scale approximate nearest neighbor search.
4//!
5//! ## Algorithm
6//! - **Vamana graph**: greedy search + α-robust pruning for bounded out-degree
7//! - **Product Quantization (PQ)**: compressed distance for candidate filtering
8//! - **Memory-mapped graph**: SSD-friendly access, only load neighbors on demand
9//!
10//! ## Reference
11//! Subramanya et al., "DiskANN: Fast Accurate Billion-point Nearest Neighbor Search on a Single Node" (NeurIPS 2019)
12
13pub mod distance;
14pub mod error;
15pub mod graph;
16pub mod index;
17pub mod pq;
18/// Fixed-topology reuse + periodic rebuild under metric drift (BET 1, ADR-200).
19#[cfg(feature = "reuse-under-drift")]
20pub mod reuse;
21
22pub use error::{DiskAnnError, Result};
23pub use index::{DiskAnnConfig, DiskAnnIndex};
24pub use pq::ProductQuantizer;
25#[cfg(feature = "reuse-under-drift")]
26pub use reuse::{DriftingIndex, RebuildPolicy, RecallTrigger};