granne  by granne

Rust library for graph-based approximate nearest neighbor search

created 5 years ago
320 stars

Top 86.0% on sourcepulse

GitHubView on GitHub
Project Summary

Granné is a Rust library for approximate nearest neighbor (ANN) search, designed for efficient indexing of billions of vectors by minimizing memory usage. It targets developers and researchers working with large-scale similarity search, offering a memory-mapped, extensible HNSW graph implementation.

How It Works

Granné implements Hierarchical Navigable Small World (HNSW) graphs, a popular algorithm for ANN search. Its key advantage lies in its focus on memory efficiency, enabling the indexing of massive datasets. The library supports memory-mapped indexes for reduced RAM footprint and offers extensibility, allowing elements to be added to an existing index without rebuilding.

Quick Start & Requirements

  • Rust: Install via rustup.rs. Build with cargo build --release.
  • Python Bindings: Available via pip install granne.
  • Optional BLAS: For performance, enable with cargo build --release --features "blas". Requires libblas-dev and libopenblas-dev on Debian/Ubuntu.

Highlighted Details

  • Graph-based Approximate Nearest Neighbor Search (HNSW).
  • Focus on reducing memory usage for billions of vectors.
  • Memory-mapped indexes.
  • Extensible indexes (add elements to existing index).
  • Python bindings available.

Maintenance & Community

The project is associated with Cliqz Search. Further community or maintenance details are not provided in the README.

Licensing & Compatibility

The README does not explicitly state a license.

Limitations & Caveats

The README mentions potential issues with BLAS integration on macOS. The project's status (e.g., alpha, beta, stable) and comprehensive documentation are not detailed.

Health Check
Last commit

1 year ago

Responsiveness

1 week

Pull Requests (30d)
0
Issues (30d)
0
Star History
3 stars in the last 90 days

Explore Similar Projects

Feedback? Help us improve.