Expand description
§DiskAnn (generic over anndists::Distance<T>)
An on-disk DiskANN library that:
- Builds a Vamana-style graph (greedy + α-pruning) in memory
- Writes vectors + fixed-degree adjacency to a single file
- Memory-maps the file for low-overhead reads
- Is generic over any Distance
from anndists(e.g. L2 onf32, Cosine onf32, Hamming onu64, …)
§Example (f32 + L2)
use anndists::dist::DistL2;
use rust_diskann::{DiskANN, DiskAnnParams};
let vectors: Vec<Vec<f32>> = vec![vec![0.0; 128]; 1000];
let index = DiskANN::<f32, DistL2>::build_index_default(&vectors, DistL2, "index.db").unwrap();
let q = vec![0.0; 128];
let nns = index.search(&q, 10, 64);§Example (u64 + Hamming)
use anndists::dist::DistHamming;
use rust_diskann::{DiskANN, DiskAnnParams};
let index: Vec<Vec<u64>> = vec![vec![0u64; 128]; 1000];
let idx = DiskANN::<u64, DistHamming>::build_index_default(&index, DistHamming, "mh.db").unwrap();
let q = vec![0u64; 128];
let _ = idx.search(&q, 10, 64);§File Layout
[ metadata_len:u64 ][ metadata (bincode) ][ padding up to vectors_offset ] [ vectors (num * dim * T) ][ adjacency (num * max_degree * u32) ]
vectors_offset is a fixed 1 MiB gap by default.
Structs§
- DiskANN
- Main struct representing a DiskANN index (generic over vector element
Tand distanceD) - Disk
AnnParams - Optional bag of knobs if you want to override just a few.
Enums§
- Disk
AnnError - Custom error type for DiskAnn operations
Constants§
- DISKANN_
DEFAULT_ ALPHA - DISKANN_
DEFAULT_ BUILD_ BEAM - DISKANN_
DEFAULT_ MAX_ DEGREE - Defaults for in-memory DiskANN builds