• Home
  • Categories
  • Tags
  • Pricing
  • Submit
    Decorative pattern
    1. Home
    2. Sdks & Libraries
    3. Annoy

    Annoy

    An open-source library for approximate nearest neighbor search in high-dimensional spaces, often used as a backend for vector databases and search engines.

    🌐Visit Website

    About this tool

    Annoy

    Annoy (Approximate Nearest Neighbors Oh Yeah) is an open-source C++ library with Python bindings for performing approximate nearest neighbor search in high-dimensional spaces. It is optimized for memory usage and supports efficient loading and saving of indexes to disk, enabling large-scale vector search.

    Features

    • Multiple Distance Metrics: Supports Euclidean, Manhattan, Cosine, Hamming, and Dot (Inner) Product distances.
    • Efficient Memory Usage: Indexes are designed to be small and can be memory-mapped, allowing multiple processes to share the same data.
    • Index Persistence: Can create large, read-only file-based data structures that are mmapped into memory, enabling fast loading and sharing.
    • Decoupled Index Creation and Loading: Indexes can be built once, saved as files, and loaded quickly by many processes.
    • On-Disk Index Building: Can build indexes directly on disk, making it possible to handle datasets larger than RAM.
    • Cross-Language Bindings: Native C++ library with Python bindings. Additional community bindings for Go, Lua, Java, Scala, Ruby, Rust, .NET, JVM, and Dart (read-only for some languages).
    • Threaded Index Building: Supports building indexes using multiple CPU cores.
    • Customizable Parameters: Number of trees (n_trees) and nodes to inspect during searching (search_k) can be tuned for trade-offs between speed and accuracy.
    • Static Indexes: Once built, indexes are read-only (no adding of items after build), promoting immutability and efficiency.
    • Prefaulting Support: Optionally pre-reads the entire file into memory for faster subsequent searches.
    • Python API:
      • AnnoyIndex(f, metric): Create index for vectors of dimension f with specified metric.
      • add_item(i, v): Add item with integer id i and vector v.
      • build(n_trees, n_jobs=-1): Build index with specified number of trees and jobs.
      • save(fn), load(fn), unload(): Save/load/unload index from disk.
      • get_nns_by_item(i, n, ...), get_nns_by_vector(v, n, ...): Retrieve nearest neighbors.
      • get_item_vector(i), get_distance(i, j), get_n_items(), get_n_trees(): Various utility functions.
      • on_disk_build(fn): Build index directly on disk.
      • set_seed(seed): Set random seed for reproducible builds.
    • C++ API: Similar to Python, via #include "annoylib.h".
    • Cross-Platform Support: Works on Linux, OS X, Windows.
    • Community and Ecosystem: Widely used in production (e.g., by Spotify for music recommendations), with a large and active community.
    • Open Source: Licensed under Apache-2.0.

    Pricing

    Annoy is open-source software and is free to use under the Apache-2.0 license.

    Resources

    • GitHub Repository
    • PyPI Package
    • Documentation (README)
    Surveys

    Loading more......

    Information

    Websitegithub.com
    PublishedMay 13, 2025

    Categories

    1 Item
    Sdks & Libraries

    Tags

    4 Items
    #Open Source#Ann#High Dimensional#Vector Search

    Similar Products

    6 result(s)
    KGraph

    KGraph is an open-source library for fast approximate nearest neighbor search in high-dimensional vector spaces, applicable to vector database solutions.

    Cottontail DB

    Cottontail DB is an open-source vector database for storing and searching high-dimensional data, with features geared towards research and production environments.

    Li, Wen, et al. "Approximate nearest neighbor search on high dimensional data—experiments, analyses, and improvement."

    An influential paper analyzing and improving approximate nearest neighbor search methods for high-dimensional data, highly relevant for developing and understanding vector databases.

    ANN Library

    A C++ library for approximate nearest neighbor searching in arbitrarily high dimensions, developed by David Mount and Sunil Arya at the University of Maryland. Provides data structures and algorithms for both exact and approximate nearest neighbor searching.

    FLANN

    Fast Library for Approximate Nearest Neighbors containing a collection of algorithms optimized for nearest neighbor search in high dimensional spaces with automatic algorithm and parameter selection.

    HNSW (Go)

    A Go implementation of the HNSW approximate nearest neighbor search algorithm, enabling developers to embed efficient vector similarity search directly into Go services and custom vector database solutions.

    Decorative pattern
    Built with
    Ever Works
    Ever Works

    Connect with us

    Stay Updated

    Get the latest updates and exclusive content delivered to your inbox.

    Product

    • Categories
    • Tags
    • Pricing
    • Help

    Clients

    • Sign In
    • Register
    • Forgot password?

    Company

    • About Us
    • Admin
    • Sitemap

    Resources

    • Blog
    • Submit
    • API Documentation
    All product names, logos, and brands are the property of their respective owners. All company, product, and service names used in this repository, related repositories, and associated websites are for identification purposes only. The use of these names, logos, and brands does not imply endorsement, affiliation, or sponsorship. This directory may include content generated by artificial intelligence.
    Copyright © 2025 Awesome Vector Databases. All rights reserved.·Terms of Service·Privacy Policy·Cookies