NGT
A library and set of command-line tools for high-speed approximate nearest neighbor search over large, high-dimensional vector data, using neighborhood graph and tree indexes.
NGT provides commands and a library for approximate nearest neighbor search against large volumes of high-dimensional vector data, from tens to several thousand dimensions. Its core NGT method builds a neighborhood graph and tree index, and two related methods, QG and QBG, add quantization to trade some accuracy for smaller indexes and faster search over blob-like data.
Over its releases the project has added product and scalar quantization as additional data types for graph indices, support for inner product distance, FP16 half-precision floating point, and a Jaccard distance option. QG and QBG require BLAS and LAPACK libraries; NGT alone, without those quantized methods, can run without them.
NGT is written in C++, distributed under the Apache-2.0 license, and also published as a Python package that can be installed from PyPI in addition to building it from source with CMake on Linux, CentOS, Ubuntu or macOS.