# spotify/voyager

🛰️ An approximate nearest-neighbor search library for Python and Java with a focus on ease of use, simplicity, and deployability.

Repository: https://github.com/spotify/voyager
Canonical: https://ross.abutalabs.com/products/spotify-voyager
Homepage: https://spotify.github.io/voyager/
Language: C++
License: Apache-2.0
License Family: permissive
Topics: hnsw, hnswlib, java, machine-learning, nearest-neighbor-search, python
Last push: 2026-03-01T06:14:00+00:00

## Health v2 (maintenance only)
Score: 55/100 (v2, computed 2026-09-02T17:46:02.011165+00:00)
- activity 70, release rhythm 16, longevity 88
- inputs: {"age_days": 1238, "days_push": 185, "days_rel": 344, "gap_med": 283, "n_releases_24m": 2}
- flags: none
- formula: round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)

## Adoption (not part of the score)
Stars 1591, forks 82 (observed 2026-08-28T04:05:08.590780+00:00)

## What it is
Voyager is an in-memory approximate nearest-neighbor search library implementing the HNSW algorithm, with bindings for Python and Java (and Scala) that share index compatibility. Built by Spotify and used in production at scale, it offers fast, dependency-free vector similarity search without requiring a server or GPUs.

## Use cases
- search millions of embeddings with millisecond latency in a Python or Java app
- build semantic search over document embeddings
- power recommendation or similarity features without running a vector database server
- find nearest neighbors for image or audio embeddings
- share a single vector index between Python and Java services
- replace Annoy with a higher-recall, faster ANN library
- embed vector search directly in an application with no operational overhead

## When to choose
- you need fast approximate nearest-neighbor search embedded in Python or Java code
- you want no server, no dependencies, and minimal memory footprint
- you need high recall and speed compared to Annoy
- you want index compatibility across Python and Java
- you need a battle-tested library used in large-scale production

## When to avoid
- you need a distributed, persistent, or multi-node vector database
- you need exact (non-approximate) nearest-neighbor results
- you work in a language other than Python, Java, or Scala
- your index must be updated concurrently by many writers or exceed available memory

## Facets
- artifact type: library
- maturity: stable
- function: search-engine, vector-database, machine-learning
- domain: machine-learning, large-language-models, developer-tools
- platform: python, jvm, windows, cross-platform
- tags: hnsw, ann, embeddings, in-memory, nearest-neighbor-search, java-bindings, scala, no-server, search, macos, linux

## Member repositories
- spotify/voyager (main) score 55

## Provenance
- Observed fields: from GitHub, fetched 2026-08-28T04:05:08.590780+00:00.
- Health v2: computed from the inputs above; adoption is never an input.
- Inferred fields (summary, facets, guidance): AI-extracted, prompt v1, taxonomy v1, on 2026-08-30T03:54:45.763682+00:00, confidence not recorded.
  - readme: https://github.com/spotify/voyager (fetched 2026-08-28T04:05:08.590780+00:00, sha be154ef57b84)
  - homepage: https://spotify.github.io/voyager/ (fetched 2026-08-29T11:25:18.356850+00:00, sha b5242230c1af)
- Data as of 2026-08-30T08:39:29.467469+00:00.
