Open Issues Need Help
View All on GitHubAI Summary: Enhance the Rust-powered k-NN library, `rust-annie`, by adding methods to retrieve index metadata and statistics. This includes adding a `get_info()` method to return metrics like size, memory usage, build time, and last modified date, along with dimension validation and health checks. The changes will affect the core Rust code (`src/index.rs`, `src/hnsw_index.rs`) and the Python wrapper (`src/py_index.rs`). Debug/verbose modes should also be implemented for improved troubleshooting.
A lightning-fast, Rust-powered brute-force k-NN library for Python, with optional batch queries, thread-safety, and on-disk persistence
AI Summary: Enhance the existing benchmarking system for a Rust-based k-NN library by creating standardized datasets, adding memory profiling, comparing against other libraries (scikit-learn, faiss, annoy, nmslib), implementing regression detection in CI, creating a performance dashboard with historical tracking, reporting latency percentiles, and benchmarking both index building and search performance. This involves modifying benchmark scripts, CI workflows, and potentially creating a new dashboard.
A lightning-fast, Rust-powered brute-force k-NN library for Python, with optional batch queries, thread-safety, and on-disk persistence
AI Summary: The task is to create a Rust procedural macro, `#[py_annindex]`, that automatically generates PyO3 bindings for Rust traits, aiming to reduce boilerplate code and ensure consistent docstrings in the Python API. This macro should be designed to easily integrate new k-NN search backends (like HNSW or Hybrid) with minimal code changes. The generated Python API must match the existing manually written version.
A lightning-fast, Rust-powered brute-force k-NN library for Python, with optional batch queries, thread-safety, and on-disk persistence
AI Summary: The task requires modifying the Rust-annie library to allow users to select the k-NN search backend (currently only brute-force is supported) at object creation time. This involves adding a `backend` parameter to the constructor, handling different backend strings ("brute", "hnsw"), implementing error handling for unknown backends, and adding comprehensive tests in both Python and Rust to ensure correctness and functionality.
A lightning-fast, Rust-powered brute-force k-NN library for Python, with optional batch queries, thread-safety, and on-disk persistence
AI Summary: The task involves adding support for AMD ROCm GPUs to the existing Rust-based k-NN library, 'Annie'. This requires researching suitable Rust bindings for ROCm, abstracting the CUDA/ROCm backends, writing ROCm kernels for distance calculations, implementing runtime detection, adding tests and benchmarks, and potentially setting up CI with an AMD GPU runner.
A lightning-fast, Rust-powered brute-force k-NN library for Python, with optional batch queries, thread-safety, and on-disk persistence
AI Summary: Enhance the Python API of the Rust-powered k-NN library, `rust-annie`, by adding type hints, expanding docstrings with usage examples, and generating HTML documentation. This involves adding type annotations to the PyO3-exposed API, writing comprehensive docstrings, creating an API reference, and setting up a documentation hosting service like ReadTheDocs or GitHub Pages.
A lightning-fast, Rust-powered brute-force k-NN library for Python, with optional batch queries, thread-safety, and on-disk persistence
AI Summary: The task involves adding GPU acceleration (CUDA/ROCm) to an existing Rust-based k-NN library, requiring research into relevant crates, prototyping a CUDA kernel for batched distance computation, performance evaluation against CPU SIMD, Python interface integration with GPU fallback, and comprehensive testing and documentation.
A lightning-fast, Rust-powered brute-force k-NN library for Python, with optional batch queries, thread-safety, and on-disk persistence