Crate diskann_rs

Crate diskann_rs 

Source
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§

DiskAnnError
Custom error type for DiskAnnRS operations
DistanceMetric
Supported distance metrics for vector comparison