DiskANN is a suite of scalable, accurate, cost-effective approximate nearest neighbor (ANN) search algorithms for large-scale vector search. It uses a graph-based index (Vamana) to manage very large datasets with high recall and low latency. For example, DiskANN can index, store, and query a billion-point dataset on a single machine with 64GB RAM and an SSD, achieving high recall and low query latency.
The INFINI Labs DiskANN project provides a pure Rust implementation of these ideas. This crate was originally forked from Microsoft’s partial Rust port (the DiskANN/rust folder) and extended to be complete. In particular, it implements the previously-missing disk-based query functionality, enabling full end-to-end DiskANN indexing and search in Rust.
Key features:
- Pure Rust implementation – no C/C++ dependencies; leverages Rust’s memory safety and concurrency.
- Disk-based indexing and querying – supports very large datasets that do not fit in memory.
- High recall and low latency – optimized for fast approximate nearest neighbor search.
- Parallelism – leverages Rust’s concurrency features for efficient indexing and querying.
Add the diskann crate to your project by including it in Cargo.toml. For example:
[dependencies]
diskann = "0.1"
Contributions and bug reports are welcome! Please open issues or pull requests on the GitHub repository. We follow the standard Rust community conventions.
The code is based on ideas from the DiskANN, Fresh-DiskANN and the Filtered-DiskANN papers with further improvements.
This project forked off from Microsoft/DiskANN and code for NSG .
This project is released under the MIT License. See the LICENSE file for details.