voyager
Easy-to-use, fast, simple multi-platform approximate nearest-neighbor search library.
Decision gist · record as of 2026-08-14
Yes. Voyager is production-ready, actively maintained, permissively licensed, and has no known vulnerabilities. It offers a clean API for a common and performance-critical task (approximate nearest-neighbor search). Install it if you need fast vector similarity queries on embeddings; the medium install friction is offset by broad platform coverage and proven scale at Spotify.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires numpy; compiled wheels are available for common platforms, but installation may require a C++ compiler on unsupported architectures.
- Medium install friction due to compiled C++ bindings, but pre-built wheels cover Python 3.7–3.12 across Linux (x86_64, ARM), macOS (Intel, ARM), and Windows (x86_64).
- Actively maintained with recent commits and production use at scale.
License · maintenance · safety
permissive license (permissive) — Licensed under Apache 2, a permissive open-source license allowing commercial and private use with minimal restrictions—suitable for most projects without legal concern.
last release 2024-12-13 (609 days) · last repo commit 2026-03-01 · 1,589 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 117,976 downloads/mo, #12,140 on PyPI
Alternatives
Verify before relying
pip install voyager
import voyager
import numpy
index = voyager.Index(space='cosine')
index.add(vectors)
nearest = index.query(query_vector, k=10)- Whether the package supports dynamic index updates (add/remove vectors after initial build) or requires rebuild.
- Memory overhead and scalability limits for very large vector collections.
- Tuning guidance for HNSW parameters (M, ef_construction, ef) for different use cases.
- Performance comparison specifics with other approximate nearest-neighbor libraries beyond the ann-benchmarks reference.
What it is and what it does
Voyager is a production-grade library for approximate nearest-neighbor search on vector embeddings, built on the HNSW algorithm and used at Spotify to handle hundreds of millions of queries daily. It wraps the open-source hnswlib with additional convenience features and maintains feature parity between Python and Java implementations, making it suitable for both single-machine and distributed systems that need fast similarity lookups on embedding data.
The library is designed for in-memory operation, meaning vectors are loaded into RAM for query speed. It supports multiple distance metrics (e.g., cosine, Euclidean) and is optimized for recall-accuracy tradeoffs typical of approximate search. Installation is straightforward via pip on supported platforms (Linux, macOS, Windows), with pre-built wheels for Python 3.7–3.12, though it does depend on numpy and compiled C++ bindings.
Use it for
- Powering recommendation systems by finding similar user embeddings or item embeddings in real time.
- Semantic search over document embeddings to retrieve relevant results faster than exact similarity.
- Duplicate detection by indexing embeddings and querying for near-neighbors to identify similar content.
- Machine learning feature retrieval, retrieving nearest neighbors in embedding space for classification or clustering tasks.
- Real-time personalization by querying user preference embeddings against product or content embeddings.
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes.
Voyager is production-ready, actively maintained, permissively licensed, and has no known vulnerabilities. It offers a clean API for a common and performance-critical task (approximate nearest-neighbor search). Install it if you need fast vector similarity queries on embeddings; the medium install friction is offset by broad platform coverage and proven scale at Spotify.
Install
voyager on PyPI
Before you install
Medium install friction due to compiled C++ bindings, but pre-built wheels cover Python 3.7–3.12 across Linux (x86_64, ARM), macOS (Intel, ARM), and Windows (x86_64). Actively maintained with recent commits and production use at scale.
Requires numpy; compiled wheels are available for common platforms, but installation may require a C++ compiler on unsupported architectures.
License in practice
Licensed under Apache 2, a permissive open-source license allowing commercial and private use with minimal restrictions—suitable for most projects without legal concern.
Quickstart
pip install voyager
import voyager
import numpy
index = voyager.Index(space='cosine')
index.add(vectors)
nearest = index.query(query_vector, k=10)
Verify before relying
- Whether the package supports dynamic index updates (add/remove vectors after initial build) or requires rebuild.
- Memory overhead and scalability limits for very large vector collections.
- Tuning guidance for HNSW parameters (M, ef_construction, ef) for different use cases.
- Performance comparison specifics with other approximate nearest-neighbor libraries beyond the ann-benchmarks reference.
Package facts
| License | permissive license permissive |
| Python support | Not specified |
| Install friction | Medium. Platform-specific wheel |
| Runtime dependencies | 1 packagenumpy |
| Maintenance | Actively maintained 609 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 117,976 / month, #12,140 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | Development Status :: 5 - Production/StableLicense :: OSI Approved :: Apache Software LicenseOperating System :: MacOSOperating System :: Microsoft :: WindowsOperating System :: POSIX :: LinuxProgramming Language :: C++Programming Language :: PythonProgramming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.7Programming Language :: Python :: 3.8Programming Language :: Python :: 3.9Topic :: Database :: Database Engines/Servers |
Evidence: voyager-2.1.0-cp310-cp310-macosx_10_13_universal2.whl; voyager-2.1.0-cp310-cp310-macosx_10_13_x86_64.whl; voyager-2.1.0-cp310-cp310-macosx_11_0_arm64.whl; voyager-2.1.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl; voyager-2.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl; voyager-2.1.0-cp310-cp310-win_amd64.whl; voyager-2.1.0-cp311-cp311-macosx_10_13_universal2.whl; voyager-2.1.0-cp311-cp311-macosx_10_13_x86_64.whl; voyager-2.1.0-cp311-cp311-macosx_11_0_arm64.whl; voyager-2.1.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl; voyager-2.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl; voyager-2.1.0-cp311-cp311-win_amd64.whl; voyager-2.1.0-cp312-cp312-macosx_10_13_universal2.whl; voyager-2.1.0-cp312-cp312-macosx_10_13_x86_64.whl; voyager-2.1.0-cp312-cp312-macosx_11_0_arm64.whl; voyager-2.1.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl; voyager-2.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl; voyager-2.1.0-cp312-cp312-win_amd64.whl; voyager-2.1.0-cp37-cp37m-macosx_10_13_x86_64.whl; voyager-2.1.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “fast vector retrieval”
- voyagerVoyager performs fast approximate nearest-neighbor searches on…
- llama-index-vector-stores-redisIntegrates Redis as a vector store backend for LlamaIndex, enabling…
- colbert-aiColBERT is a BERT-based retrieval model that encodes passages and…
Give your agent the search over MCP, or paste the wish link into any chat.
More Database Engines/Servers packages
DuckDB is an in-process SQL database engine that executes analytical queries on local and remote data files (CSV, Parquet, JSON) without requiring a separate server or external dependencies.
pymssql provides a Python DB-API interface to Microsoft SQL Server, built on FreeTDS, enabling standard database operations like connecting, querying, and retrieving results.
Install it if you need to connect Python to Microsoft SQL Server and prefer a lightweight, DB-API-compliant interface over heavier ORMs.
mysqlclient provides a Python interface to MySQL and MariaDB databases, enabling direct database connections and query execution from Python code.
SQLModel combines SQLAlchemy and Pydantic to let you define SQL database tables and rows as Python classes with type annotations, eliminating code duplication between ORM models and data validators.
TinyDB is a lightweight, pure-Python document database that stores JSON-like dictionaries to local files, with no external dependencies or server required.
Native Python client library for connecting to and querying Vertica databases, implementing the DB-API v2.0 standard.
However, the aging maintenance status suggests it may not receive timely updates for new Vertica features or Python versions—verify compatibility with your specific…
See also nmslib · pyspark-hnsw · usearch · annoy · hnswlib · cuvs-cu12 · scann · kdtree · lunr · turbopuffer