ANN search library for Python and Java
Top 28.3% on sourcepulse
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
pip install voyager
com.spotify:voyager:2.1.0
to pom.xml
(Maven) or build.sbt
(Scala).Highlighted Details
hnswlib
package, known for its efficiency.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.
4 months ago
1+ week