usearch
Smaller & Faster Single-File Vector Search Engine from Unum
What it is and what it does
USearch is a vector search engine that builds approximate nearest-neighbor indexes using the HNSW algorithm. It is designed as a lightweight, single-file C++11 library with Python bindings and support for custom distance metrics. The package lets you index vectors, search for similar vectors efficiently, and optionally serve large indexes from disk without loading them entirely into memory.
Typical usage involves creating an Index with a specified dimensionality and metric, adding vectors with keys, and then searching for nearest neighbors. It supports various data types (f32, f16, bf16, i8, and others) for memory efficiency, works across Linux, macOS, and Windows, and integrates with numpy. The runtime dependencies are numpy, tqdm, and numkong.
Use it for:
- Building semantic search systems that find similar embeddings from language models or vision models in large document or image collections.
- Implementing recommendation engines that match user embeddings to candidate item embeddings in real time.
- Clustering millions of vectors for data analysis, with support for on-disk indexes to reduce memory costs.
- Genomics and chemistry applications using binary Tanimoto and Sorensen coefficients for molecular similarity.
- Hybrid search combining vector similarity with custom filtering predicates or external data structures.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
USearch provides approximate nearest-neighbor vector search using HNSW indexing, supporting custom metrics, multiple data types, and on-disk index serving without loading into RAM.
Yes. USearch is production-stable (Development Status 5), actively maintained, has no known vulnerabilities, and offers a lightweight alternative to heavier vector search libraries. The permissive Apache-2.0 license and broad platform support (Linux, macOS, Windows) make it suitable for most projects. Install friction is moderate due to compiled wheels, but pre-built binaries are available for current Python versions (3.10+). Verify that the numkong dependency is intentional before deploying.
Install
usearch on PyPI
pip
pip install usearchuv
uv add usearchpoetry
poetry add usearchInstalling usearch
Before you install
Medium install friction due to compiled wheels across multiple platforms and Python versions (3.10+). Active maintenance with recent releases and 4264 repository stars suggest solid ongoing support.
License in practice
Apache-2.0 permissive license allows commercial and private use with minimal restrictions, making it suitable for most production deployments.
Quickstart
pip install usearch
import numpy as np
from usearch.index import Index
index = Index(ndim=3)
vector = np.array([0.2, 0.6, 0.4])
index.add(42, vector)
matches = index.search(vector, 10)
Requires Python 3.10 or later; compiled wheels are platform-specific (Linux, macOS, Windows with various architectures).
Verify before relying
- Whether numkong dependency is a typo or an actual required package; fact sheet lists it but it is not mentioned in the description.
- Performance claims (e.g., '10x faster than FAISS') are stated in the description but not independently verified in the fact sheet.
Package facts
| License | Apache-2.0 (permissive) |
| Python support | supports the current Python release (>=3.10) |
| Install friction | medium — platform-specific wheel |
| Runtime dependencies | 3 — numpy, tqdm, numkong |
| Maintenance | actively maintained — 35 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 486,107/month — #6,392 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: usearch-2.26.0-cp310-cp310-macosx_10_9_universal2.whl; usearch-2.26.0-cp310-cp310-macosx_10_9_x86_64.whl; usearch-2.26.0-cp310-cp310-macosx_11_0_arm64.whl; usearch-2.26.0-cp310-cp310-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl; usearch-2.26.0-cp310-cp310-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl; usearch-2.26.0-cp310-cp310-musllinux_1_2_aarch64.whl; usearch-2.26.0-cp310-cp310-musllinux_1_2_x86_64.whl; usearch-2.26.0-cp310-cp310-win_amd64.whl; usearch-2.26.0-cp310-cp310-win_arm64.whl; usearch-2.26.0-cp311-cp311-macosx_10_9_universal2.whl; usearch-2.26.0-cp311-cp311-macosx_10_9_x86_64.whl; usearch-2.26.0-cp311-cp311-macosx_11_0_arm64.whl; usearch-2.26.0-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl; usearch-2.26.0-cp311-cp311-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl; usearch-2.26.0-cp311-cp311-musllinux_1_2_aarch64.whl; usearch-2.26.0-cp311-cp311-musllinux_1_2_x86_64.whl; usearch-2.26.0-cp311-cp311-win_amd64.whl; usearch-2.26.0-cp311-cp311-win_arm64.whl; usearch-2.26.0-cp312-cp312-macosx_10_13_universal2.whl; usearch-2.26.0-cp312-cp312-macosx_10_13_x86_64.whl
Tags
More Artificial Intelligence packages
LiteLLM provides a unified Python interface to…
permissive · top 100 on PyPI
huggingface-hubClient library and CLI tool for downloading,…
permissive · top 100 on PyPI
langchainLangChain provides a framework for building…
permissive · top 1,000 on PyPI
hf-xethf-xet provides chunk-based deduplication and…
permissive · top 1,000 on PyPI
tokenizersTokenizers converts raw text into token…
permissive · top 1,000 on PyPI
transformersTransformers provides a unified framework for…
permissive · top 1,000 on PyPI
pyspark-hnswProvides a PySpark-compatible implementation of…
unclear · top 15,000 on PyPI
voyagerVoyager performs fast approximate…
permissive · top 15,000 on PyPI
cuvs-cu12Provides GPU-accelerated approximate nearest…
permissive · top 15,000 on PyPI
annoyAnnoy searches for approximate nearest…
permissive · top 5,000 on PyPI
nmslibnmslib provides efficient similarity search in…
unclear · top 15,000 on PyPI
faiss-gpuFaiss provides GPU-accelerated similarity…
permissive · top 15,000 on PyPI
hnswlibFast approximate nearest neighbor search using…
unclear · top 15,000 on PyPI
simsimdSimSIMD provides SIMD-optimized kernels for…
permissive · top 5,000 on PyPI
upstash-vectorPython client for Upstash Vector, a serverless…
permissive · top 15,000 on PyPI
nano-vectordbA lightweight vector database that stores and…
permissive · top 15,000 on PyPI