Voyager is a library for performing fast approximate nearest-neighbor searches on an in-memory collection of vectors.
Voyager features bindings to both Python and Java, with feature parity and index compatibility between both languages. It uses the HNSW algorithm, based on the open-source hnswlib package, with numerous features added for convenience and speed. Voyager is used extensively in production at Spotify, and is queried hundreds of millions of times per day to power numerous user-facing features.
Think of Voyager like Sparkey, but for vector/embedding data; or like Annoy, but with much higher recall. It got its name because it searches through (embedding) space(s), much like the Voyager interstellar probes launched by NASA in 1977.
pip install voyagerAdd the following artifact to your pom.xml:
<dependency>
<groupId>com.spotify</groupId>
<artifactId>voyager</artifactId>
<version>2.2.3</version>
</dependency>You can find the latest version on Voyager's Releases page.
Add the following artifact to your build.sbt:
"com.spotify" % "voyager" % "2.2.3"You can find the latest version on Voyager's Releases page.
| OS | Language | Version | x86_64 (Intel) | arm64 (ARM) |
|---|---|---|---|---|
| Linux | Python | 3.9 | β | β |
| Linux | Python | 3.10 | β | β |
| Linux | Python | 3.11 | β | β |
| Linux | Python | 3.12 | β | β |
| Linux | Python | 3.13 | β | β |
| Linux | Python | 3.14 | β | β |
| Linux | Python | 3.15 | β | β |
| Linux | Java | 8-16+ | β | β |
| macOS | Python | 3.9 | β | β |
| macOS | Python | 3.10 | β | β |
| macOS | Python | 3.11 | β | β |
| macOS | Python | 3.12 | β | β |
| macOS | Python | 3.13 | β | β |
| macOS | Python | 3.14 | β | β |
| macOS | Python | 3.15 | β | β |
| macOS | Java | 8-16+ | β | β |
| Windows | Python | 3.9 | β | β |
| Windows | Python | 3.10 | β | β |
| Windows | Python | 3.11 | β | β |
| Windows | Python | 3.12 | β | β |
| Windows | Python | 3.13 | β | β |
| Windows | Python | 3.14 | β | β |
| Windows | Python | 3.15 | β | β |
| Windows | Java | 8-16+ | β | β |
The Python versions and platforms listed above are officially supported. Release wheels are tested on each listed combination before publication.
Standard CPython 3.12 and later share cp312-abi3 wheels. These wheels may also
install on newer Python versions that have not yet been tested; installation
alone does not establish official support. New versions become officially
supported when their wheel tests are added to CI and pass. Free-threaded Python
builds are not currently supported.
Contributions to voyager are welcomed!
See CONTRIBUTING.md for details.
Voyager is copyright 2022-2024 Spotify AB.
Voyager is licensed under the Apache 2 License.
