PatANN - Pattern-Aware Vector Database and ANN Framework
Overview
PatANN is a pattern-aware, massively parallel, and distributed vector search framework designed for scalable and efficient nearest neighbor search, operating both in-memory and on-disk. Unlike conventional algorithms, PatANN leverages macro and micro patterns within vectors to drastically reduce search space before performing costly distance computations.
Refer to the website for technical details, algorithm overview, key innovations, benchmarks, and tutorials.
While still in beta, PatANN's pattern-first approach delivers unprecedented performance advantages. As shown in our benchmarks (Figure 1), PatANN consistently outperforms leading ANN libraries including HNSW (hnswlib), Google ScaNN, Facebook FAISS variants, and others in the critical recall-throughput tradeoff.
Installation
Install PatANN using pip:
pip install patann
Platforms
- Linux
- macOS (Apple Silicon)
- Windows
- Android
- iOS
Code Examples
Code examples for all platforms (Python, Kotlin, Java, Objective-C, Swift) in both asynchronous and synchronous modes are available at
https://github.com/mesibo/patann
You can also download python sample code using patann command line interface:
patann --help
Key Distinguishing Features
- Novel pattern-based probing for ANN search
- In-Memory, On-Disk, and Hybrid Index
- Fully asynchronous operations with built-in support for conventional synchronous execution
- Refined search, filtering, and pagination algorithms
- Unlimited scalability without pre-specified capacity
- Dynamic sharding to load balance across servers
- Cloud (in-progress) and Serverless
- SIMD-Accelerated for both x86_64 (SSE*, AVX2, AVX-512) and ARM (NEON, SVE) platforms
- OS-optimized I/O—huge pages (Linux), large pages (Windows), and super pages (macOS)
- NUMA-aware architecture
Release files for patann 0.1.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| patann-0.1.3.tar.gz | 4.6 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| patann-0.1.3-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 9.3 MB
Release files / patann-0.1.3.tar.gz
| Download URL | patann-0.1.3.tar.gz |
|---|---|
| Size | 4.6 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
dde56002c608825462cdea704c410f8b41a9997648681503cad368d7f38bea47
|
|
BLAKE2b-256 checksum How to use checksums |
2621ca319a1d6fba2c7325b861031ee2fec94b8bd9b3a8fb8130013d9f87a4e5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.11.5
|
Release files / patann-0.1.3-py3-none-any.whl
| Download URL | patann-0.1.3-py3-none-any.whl |
|---|---|
| Size | 4.7 MB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
57d83d428f1469c72c8de2ce363a27aaa8bde75c449b731e992bfd864ecd5f77
|
|
BLAKE2b-256 checksum How to use checksums |
d8f7bf9b3c7b8c550bf3aa5fcf1959e026214cf835473152bd075f7be9210f96
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.11.5
|