Skip to main content

Easy-to-use, fast, simple multi-platform approximate nearest-neighbor search library.

Project description

The word Voyager_in blue, with a multicoloured graphic illustrating an orbit to its left.

License: Apache 2.0 Documentation Supported Platforms Apple Silicon support for macOS and Linux (Docker) Test Badge

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.

Python Documentation Java Documentation

Installation

Python

pip install voyager

Java

Add the following artifact to your pom.xml:

<dependency>
  <groupId>com.spotify</groupId>
  <artifactId>voyager</artifactId>
  <version>2.0.4</version>
</dependency>

You can find the latest version on Voyager's Releases page.

Scala

Add the following artifact to your build.sbt:

"com.spotify" % "voyager" % "2.0.4"

You can find the latest version on Voyager's Releases page.

Compatibility

OS Language Version x86_64 (Intel) arm64 (ARM)
Linux Python 3.7
Linux Python 3.8
Linux Python 3.9
Linux Python 3.10
Linux Python 3.11
Linux Python 3.12
Linux Java 8-16+
macOS Python 3.7
macOS Python 3.8
macOS Python 3.9
macOS Python 3.10
macOS Python 3.11
macOS Python 3.12
macOS Java 8-16+
Windows Python 3.7
Windows Python 3.8
Windows Python 3.9
Windows Python 3.10
Windows Python 3.11
Windows Python 3.12
Windows Java 8-16+

Contributing

Contributions to voyager are welcomed! See CONTRIBUTING.md for details.

License

Voyager is copyright 2022-2024 Spotify AB.

Voyager is licensed under the Apache 2 License.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

voyager-2.0.9-cp312-cp312-win_amd64.whl (201.9 kB view hashes)

Uploaded CPython 3.12 Windows x86-64

voyager-2.0.9-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.3 MB view hashes)

Uploaded CPython 3.12 manylinux: glibc 2.17+ x86-64

voyager-2.0.9-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (4.2 MB view hashes)

Uploaded CPython 3.12 manylinux: glibc 2.17+ ARM64

voyager-2.0.9-cp312-cp312-macosx_11_0_arm64.whl (358.1 kB view hashes)

Uploaded CPython 3.12 macOS 11.0+ ARM64

voyager-2.0.9-cp312-cp312-macosx_10_13_x86_64.whl (380.1 kB view hashes)

Uploaded CPython 3.12 macOS 10.13+ x86-64

voyager-2.0.9-cp312-cp312-macosx_10_13_universal2.whl (736.0 kB view hashes)

Uploaded CPython 3.12 macOS 10.13+ universal2 (ARM64, x86-64)

voyager-2.0.9-cp311-cp311-win_amd64.whl (200.7 kB view hashes)

Uploaded CPython 3.11 Windows x86-64

voyager-2.0.9-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.3 MB view hashes)

Uploaded CPython 3.11 manylinux: glibc 2.17+ x86-64

voyager-2.0.9-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (4.2 MB view hashes)

Uploaded CPython 3.11 manylinux: glibc 2.17+ ARM64

voyager-2.0.9-cp311-cp311-macosx_11_0_arm64.whl (358.4 kB view hashes)

Uploaded CPython 3.11 macOS 11.0+ ARM64

voyager-2.0.9-cp311-cp311-macosx_10_13_x86_64.whl (378.5 kB view hashes)

Uploaded CPython 3.11 macOS 10.13+ x86-64

voyager-2.0.9-cp311-cp311-macosx_10_13_universal2.whl (734.5 kB view hashes)

Uploaded CPython 3.11 macOS 10.13+ universal2 (ARM64, x86-64)

voyager-2.0.9-cp310-cp310-win_amd64.whl (199.7 kB view hashes)

Uploaded CPython 3.10 Windows x86-64

voyager-2.0.9-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.3 MB view hashes)

Uploaded CPython 3.10 manylinux: glibc 2.17+ x86-64

voyager-2.0.9-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (4.2 MB view hashes)

Uploaded CPython 3.10 manylinux: glibc 2.17+ ARM64

voyager-2.0.9-cp310-cp310-macosx_11_0_arm64.whl (356.6 kB view hashes)

Uploaded CPython 3.10 macOS 11.0+ ARM64

voyager-2.0.9-cp310-cp310-macosx_10_13_x86_64.whl (377.2 kB view hashes)

Uploaded CPython 3.10 macOS 10.13+ x86-64

voyager-2.0.9-cp310-cp310-macosx_10_13_universal2.whl (731.2 kB view hashes)

Uploaded CPython 3.10 macOS 10.13+ universal2 (ARM64, x86-64)

voyager-2.0.9-cp39-cp39-win_amd64.whl (196.4 kB view hashes)

Uploaded CPython 3.9 Windows x86-64

voyager-2.0.9-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.3 MB view hashes)

Uploaded CPython 3.9 manylinux: glibc 2.17+ x86-64

voyager-2.0.9-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (4.2 MB view hashes)

Uploaded CPython 3.9 manylinux: glibc 2.17+ ARM64

voyager-2.0.9-cp39-cp39-macosx_11_0_arm64.whl (357.0 kB view hashes)

Uploaded CPython 3.9 macOS 11.0+ ARM64

voyager-2.0.9-cp39-cp39-macosx_10_13_x86_64.whl (377.4 kB view hashes)

Uploaded CPython 3.9 macOS 10.13+ x86-64

voyager-2.0.9-cp39-cp39-macosx_10_13_universal2.whl (731.4 kB view hashes)

Uploaded CPython 3.9 macOS 10.13+ universal2 (ARM64, x86-64)

voyager-2.0.9-cp38-cp38-win_amd64.whl (199.8 kB view hashes)

Uploaded CPython 3.8 Windows x86-64

voyager-2.0.9-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.3 MB view hashes)

Uploaded CPython 3.8 manylinux: glibc 2.17+ x86-64

voyager-2.0.9-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (4.2 MB view hashes)

Uploaded CPython 3.8 manylinux: glibc 2.17+ ARM64

voyager-2.0.9-cp38-cp38-macosx_11_0_arm64.whl (356.6 kB view hashes)

Uploaded CPython 3.8 macOS 11.0+ ARM64

voyager-2.0.9-cp38-cp38-macosx_10_13_x86_64.whl (377.2 kB view hashes)

Uploaded CPython 3.8 macOS 10.13+ x86-64

voyager-2.0.9-cp38-cp38-macosx_10_13_universal2.whl (731.1 kB view hashes)

Uploaded CPython 3.8 macOS 10.13+ universal2 (ARM64, x86-64)

voyager-2.0.9-cp37-cp37m-win_amd64.whl (199.9 kB view hashes)

Uploaded CPython 3.7m Windows x86-64

voyager-2.0.9-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.4 MB view hashes)

Uploaded CPython 3.7m manylinux: glibc 2.17+ x86-64

voyager-2.0.9-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (4.3 MB view hashes)

Uploaded CPython 3.7m manylinux: glibc 2.17+ ARM64

voyager-2.0.9-cp37-cp37m-macosx_10_13_x86_64.whl (372.1 kB view hashes)

Uploaded CPython 3.7m macOS 10.13+ x86-64

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page