Skip to content
Draft
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
36 changes: 36 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,42 @@ DiskANN is a suite of scalable, accurate and cost-effective approximate nearest
This code is based on ideas from Microsoft's [DiskANN](https://aka.ms/AboutDiskANN).
The main branch now contains a rearchitected project written in Rust.

## Architectural direction

The Rust implementation is organized as a modular workspace so algorithm development, storage, and tooling can evolve independently:

- **Base & numerics**: `diskann-wide`, `diskann-vector`, `diskann-linalg`, `diskann-utils`, and `diskann-quantization`
- **Core algorithm**: `diskann`
- **Providers & storage**: `diskann-providers`, `diskann-disk`, and `diskann-label-filter`
- **Benchmarks & tools**: `diskann-benchmark*` and `diskann-tools`

## Providers

DiskANN exposes pluggable providers for graph storage, vectors, and deletes. Current provider implementations include:

- In-memory async providers (default `inmem` provider in `diskann-providers`)
- Bf-tree providers (feature `bf_tree` in `diskann-providers`)
- Caching providers (feature `bf_tree` in `diskann-providers`)
- Disk vertex providers for on-disk indices (`diskann-disk`)
- Label filter providers for metadata filtering (`diskann-label-filter`)

## Getting started

1. Install Rust using the toolchain in `rust-toolchain.toml`.
2. Build the workspace: `cargo build`.
3. Run tests: `cargo test`.
4. Explore the core API in `diskann/` and disk index support in `diskann-disk/`.
5. For benchmarking, see the links below.

## Benchmarks

- Benchmark runner and scenarios: [`diskann-benchmark/README.md`](diskann-benchmark/README.md)
- Label filter benchmarks: [`diskann-label-filter/README.md`](diskann-label-filter/README.md)

## Papers

The list of DiskANN papers is maintained in the [DiskANN Wiki](https://github.com/microsoft/DiskANN/wiki).

This project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/).
For more information see the [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) or
contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with any additional questions or comments.
Expand Down
Loading