Metadata-Version: 2.4
Name: pydiskann
Version: 0.5.3
Classifier: Programming Language :: Rust
Classifier: Programming Language :: Python :: 3
Classifier: Operating System :: OS Independent
Summary: Python bindings for diskann-rs: disk-based Vamana ANN search with filtering, incremental updates and quantization
License-Expression: MIT
Requires-Python: >=3.12
Description-Content-Type: text/markdown; charset=UTF-8; variant=GFM
Project-URL: Repository, https://github.com/lukaesch/diskann-rs

# pydiskann

Python bindings for [diskann-rs](https://github.com/lukaesch/diskann-rs): memory-mapped
Vamana/DiskANN vector search with filtered search, incremental updates and quantization
(F16, Int8, PQ, RaBitQ).

```bash
uv add pydiskann
```

```python
import pydiskann as d

idx = d.DiskANN.build(vectors, "index.db", metric="l2")
idx.search(query, k=10, beam_width=128)
```

Vectors are `list[list[float]]` (`arr.tolist()` for numpy). `l2` returns squared distances.

```py
docker run --rm -v "$PWD":/io -w /io/python quay.io/pypa/manylinux_2_28_x86_64 bash -c \
  'curl -sSf https://sh.rustup.rs | sh -s -- -y -q && . ~/.cargo/env && pipx run maturin build --release --sdist --out dist'
uv publish python/dist/*
```
