voyager  by spotify

ANN search library for Python and Java

created 2 years ago
1,479 stars

Top 28.3% on sourcepulse

GitHubView on GitHub
Project Summary

Voyager is an approximate nearest-neighbor (ANN) search library designed for efficient in-memory vector search. It targets Python and Java developers needing a simple, deployable solution for high-volume vector similarity queries, offering feature parity and index compatibility across both languages. The library is battle-tested in production at Spotify, handling hundreds of millions of daily queries.

How It Works

Voyager implements the Hierarchical Navigable Small Worlds (HNSW) algorithm, leveraging the hnswlib package as its foundation. It enhances hnswlib with additional features focused on convenience and performance. This approach provides a balance between search speed and accuracy, aiming for higher recall than alternatives like Annoy while offering a simpler, more deployable experience than distributed systems like Sparkey for vector data.

Quick Start & Requirements

  • Python: pip install voyager
  • Java: Add com.spotify:voyager:2.1.0 to pom.xml (Maven) or build.sbt (Scala).
  • Compatibility: Linux (Python 3.7-3.13, Java 8-16+), macOS (Python 3.7-3.13, Java 8-16+), Windows (Python 3.7-3.13, Java 8-16+). Note: ARM64 support is limited to Linux and macOS.

Highlighted Details

  • Production-ready at Spotify, serving hundreds of millions of queries daily.
  • Feature parity and index compatibility between Python and Java bindings.
  • Built upon the hnswlib package, known for its efficiency.
  • Claims higher recall compared to Annoy.

Maintenance & Community

Contributions are welcomed. Details are available in CONTRIBUTING.md.

Licensing & Compatibility

Licensed under the Apache 2 License. This license is permissive and generally compatible with commercial and closed-source applications.

Limitations & Caveats

ARM64 support for Python and Java is currently limited to Linux and macOS environments; Windows on ARM is not supported.

Health Check
Last commit

4 months ago

Responsiveness

1+ week

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

Explore Similar Projects

Starred by John Resig John Resig(Author of jQuery; Chief Software Architect at Khan Academy), Zhiqiang Xie Zhiqiang Xie(Author of SGLang), and
7 more.

milvus by milvus-io

0.4%
36k
Cloud-native vector database for scalable ANN search
created 5 years ago
updated 1 day ago
Feedback? Help us improve.