unum-cloud/USearch
Fast Open-Source Search & Clustering engine × for Vectors & Arbitrary Objects × in C++, C, Python, JavaScript, Rust, Java, Objective-C, Swift, C#, GoLang, and Wolfram 🔍
What it solves
USearch is a high-performance similarity search and clustering engine designed to be smaller, faster, and more portable than industry standards like FAISS. It addresses the need for an efficient way to find the nearest neighbors of vectors (and eventually text) across a wide variety of platforms and programming languages without requiring heavy dependencies.
How it works
USearch implements the HNSW (Hierarchical Navigable Small World) algorithm for approximate nearest neighbor search. It optimizes performance using SIMD (Single Instruction, Multiple Data) and JIT compilation for user-defined metrics. To maintain a small footprint, it uses a single C++11 header library and provides native bindings for 10 different languages. It also supports memory-mapping, allowing large indexes to be served from disk without loading the entire dataset into RAM.
Who it’s for
It is built for developers needing fast vector search capabilities for applications in AI, genomics, chemistry, and geospatial indexing, as well as those who want to integrate similarity search into existing databases or deploy to resource-constrained environments (like iOS, Android, or WebAssembly).
Highlights
- Extreme Performance: Claims up to 10x faster indexing than FAISS and significantly faster brute-force search.
- Broad Compatibility: Native bindings for Python, Rust, Go, Java, C#, JavaScript, C++, and more.
- Memory Efficient: Supports half-precision (
bf16,f16) and quarter-precision (e5m2,e4m3) formats to reduce RAM usage. - Customizable: Allows users to define their own similarity metrics via Numba, Cppyy, or PeachPy.
- Disk-Based Serving: Ability to view large indexes from disk via memory-mapping, potentially reducing cloud infrastructure costs.
- Integrated Clustering: Built-in K-Nearest Neighbors clustering and sub-clustering capabilities.
Related
- Project
- Project
- Project
- Project
- Dispatch