Skip to main content

PatANN is a massively parallel, distributed, and scalable in-memory/on-disk vector database library for efficient nearest neighbor search across large-scale datasets by finding vector patterns.

Project description

PatANN - Pattern-Aware Vector Database / ANN

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.

Website: https://patann.dev

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.

PatANN Benchmark

Installation

Install PatANN using pip:

pip install patann

Usage

PatANN provides Python API as well as a command-line interface to download example code.

Command Line Interface

patann --help

Output:

PatANN Version: 0.1.0
Python Version: 3.11.5
PatANN - https://github.com/mesibo/patann
usage: patann [-h] [--help-examples] [--list-examples] [--copy-examples [DEST]]
PatANN: Pattern-Aware Approximate Nearest Neighbors Search
options:
  -h, --help            show this help message and exit
  --help-examples       Show information about examples
  --list-examples       List available examples
  --copy-examples [DEST]
                        Copy examples to specified directory (default: current directory)

Python API

PatANN supports both synchronous (blocking) and asynchronous (non-blocking) operation modes:

  1. Synchronous Mode: Simple sequential operations, ideal for straightforward applications
  2. Asynchronous Mode: High-throughput parallel operations with callbacks, ideal for production systems

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

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

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

patann-0.1.1.tar.gz (4.6 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

patann-0.1.1-py3-none-any.whl (4.7 MB view details)

Uploaded Python 3

File details

Details for the file patann-0.1.1.tar.gz.

File metadata

  • Download URL: patann-0.1.1.tar.gz
  • Upload date:
  • Size: 4.6 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.5

File hashes

Hashes for patann-0.1.1.tar.gz
Algorithm Hash digest
SHA256 ef0b4d16d2d744b3b99fb8870c836b5e0c3c44ce0538f272341bd48b0dc4167a
MD5 4c757434adee81496b71fe4f1c14a1b2
BLAKE2b-256 25892487e3281d724fba57b4da14d780b52014d6754a61be9c7dc8d8538e3413

See more details on using hashes here.

File details

Details for the file patann-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: patann-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 4.7 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.5

File hashes

Hashes for patann-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 7f8f4f48af7c3ec1d7559fed5d414491fd863ac2245448141f18ea5cd3a8869d
MD5 e8a373faf12486885f704696e92db800
BLAKE2b-256 d23208798b9181fb96ecf8cc42c79a44150db520e57482a1066382eb57beb406

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page