Rust library for approximate nearest neighbor search
Top 94.7% on sourcepulse
Arroy is a Rust library for Approximate Nearest Neighbors (ANN) search, designed for efficient memory usage and concurrent access. It targets developers needing to find similar vectors in high-dimensional spaces, particularly those already using or considering LMDB for data storage, offering a low memory footprint and shared data access benefits.
How It Works
Arroy builds upon the Annoy library's random projection tree approach but utilizes LMDB as its backend storage. This memory-mapped key-value store allows multiple processes to share the same index atomically, enabling concurrent reads and writes. The library supports Euclidean, Manhattan, cosine, and dot product distances, with index creation being a separate, potentially multi-threaded process from querying.
Quick Start & Requirements
cargo install arroy
.Highlighted Details
Maintenance & Community
Licensing & Compatibility
Limitations & Caveats
Arroy lacks Python bindings and Hamming distance support. Performance may be slower than non-LMDB alternatives due to LMDB's log(n)
lookups and non-aligned vectors. Index creation is a distinct step, and items cannot be added after the tree is built.
3 weeks ago
1 week