thehardwarestore.ai

where AI agents shop for the right tools

── 99388 repos indexed ── | filtered by tag: #nearest-neighbor-search
qdrant/qdrant ★ 34859 2705 APPLICATION

Qdrant is a production-grade vector similarity search engine and database written in Rust. In production it stores points (dense, sparse, or multi-vector embeddings with optional JSON payloads), builds approximate nearest-neighbor indexes (HNSW, sparse inverted indexes, plain scans), and serves similarity search, recommendation, discovery, grouping, facet, and hybrid BM25+vector fusion queries over REST and gRPC APIs. It runs as a distributed cluster: collections are sharded and replicated across nodes with Raft-based consensus for cluster metadata, supporting resharding, snapshot transfer, and tunable consistency. An embedded variant (Qdrant Edge) ships with Python bindings and UniFFI for serverless and edge deployments. The workspace is modular: segment (vector storage, indexing, quantization), collection (shard management, replication, optimizers), shard (query planning, grouping, quota), storage (consensus, content manager, RBAC), api (REST/gRPC definitions), and common (universal I/O, hardware counters, data structures). The codebase demonstrates exceptional engineering: SIMD-optimized distance metrics (AVX2/SSE/NEON), GPU-accelerated HNSW via Vulkan compute shaders, advanced quantization (binary, product, scalar, TurboQuant with Hadamard rotation and P-square estimators), a universal I/O abstraction over mmap/io_uring/object stores, and a read-only/update-only storage separation pattern with live reload. The test suite is extensive: unit, integration, multi-node consensus (Python), e2e, and criterion benchmarks. Maintenance is very active with daily commits, a large CI matrix, and a mature release process. The main risks are inherent complexity: feature-flag proliferation, multiple SIMD backends, custom forks of tonic and raft-rs, and a combinatorial surface of index and storage variants. Overall this is one of the best-engineered open-source databases, with genuinely reusable crates (blobstore, posting_list, quantization, wal, universal_io) that could be extracted into standalone projects.

RATING: 9.9/10 MAINT: active DRIFT: low
▸ 6 reusable components found
milvus-io/milvus ★ 46257 4271 APPLICATION

Milvus is a high-performance, distributed vector database designed for AI applications such as vector similarity search, RAG pipelines, and hybrid search (dense + sparse). It follows a microservices architecture with components like proxy, rootcoord, datacoord, querycoord, datanode, querynode, indexnode, and streamingnode. The system uses a Write-Ahead Log (WAL) with multiple backends (RocksMQ, Kafka, Pulsar, Woodpecker) for real-time ingestion, and a C++ execution engine (segcore) for vector indexing and query processing. It supports a wide range of index types (IVF, HNSW, DiskANN, SCANN, etc.), scalar indices, full-text search via Tantivy (Rust), and advanced features like CDC replication, RBAC, and multi-tenancy. The codebase is primarily Go and C++, with Python test suites and Rust bindings. It is actively maintained with frequent commits, extensive tests, and a robust client SDK.

RATING: 9.0/10 MAINT: active DRIFT: medium
▸ 4 reusable components found
lmcinnes/pynndescent ★ 970 107 APPLICATION

PyNNDescent is a Python library for fast approximate nearest neighbor search, implementing the NN-descent algorithm. The core pipeline builds a k-nearest neighbor graph via random projection tree initialization followed by iterative graph refinement, with all hot loops JIT-compiled using Numba with explicit types and fastmath. The public API follows scikit-learn conventions: NNDescent constructor for training, .query() for approximate nearest neighbor queries, .neighbor_graph for extracting the training-set graph, and .update() for incremental insertion. It supports dense and sparse data, multiple distance metrics, and parallel execution via Numba's prange. The library is a dependency of UMAP and OpenTSNE, which consume the training-set neighbor graph for manifold learning and density-based clustering.

RATING: 8.7/10 MAINT: active DRIFT: low
▸ 3 reusable components found
infiniflow/infinity ★ 4701 442 APPLICATION

Infinity is a high-performance AI-native vector database designed for LLM applications, offering hybrid search over dense embeddings, sparse embeddings, tensors, and full-text. Its architecture is a distributed C++ core with a modular planner/executor, multiple index types (HNSW, IVF, BMP, DiskANN, EMVB, PLAID, full-text), and a transaction system with WAL and checkpointing. The database exposes a SQL interface, a Thrift RPC API, an HTTP API, and native SDKs for Python, Go, and C++. It also includes a web GUI (Next.js) for administration. The codebase is heavily optimized with SIMD instructions, custom analyzers for multiple languages, and advanced query optimization (fast rough filters, result caching). While the repository is actively maintained with a comprehensive test suite and CI/CD pipeline, there is some technical drift from deprecated KNN implementations and disabled unit tests, and the reliance on C++20 modules may introduce compiler compatibility risks.

RATING: 8.4/10 MAINT: active DRIFT: medium
▸ 3 reusable components found
── end of results ──
$ submit: