brinicle

brinicle is an open source C++ vector index engine for approximate nearest neighbor search. Built for disk-first operation and low-RAM environments — predictable RAM usage, stable tail latency, and high recall.

pip install brinicle

What is brinicle?

Disk-first ANN indexing for low-RAM vector search

brinicle is an open source C++ vector index engine for approximate nearest neighbor search. It is built for disk-first operation and low-RAM environments. The goal is simple: keep RAM usage predictable, keep tail latency stable, and still hit high recall.

brinicle supports building and loading indexes, parallel insert/upsert/delete/rebuild, safe search, and local sharding. It also ships with a Python wrapper (pybind), so you can use it directly from Python. Embed it in your service or pair it with your own metadata store — no full vector database required.

Index Engine
brinicle is an index engine, not a full vector database. You embed it in your service or pair it with your own metadata store.
Disk-First Design
Optimized for disk-first operation with low memory overhead. Perfect for tight containers, edge machines, and low-cost instances.
Production Ready
Designed for datasets under 10M vectors with core lifecycle operations: build/load, search, insert/upsert/delete, local sharding, and rebuild.

How to Use brinicle

Get started with brinicle using these code examples. Perform vector search, item search, and autocomplete.

Pythonvector_search.py
import numpy as npimport brinicledim = 384n = 1000X = np.random.randn(n, dim).astype("float32")Q = np.random.randn(dim).astype("float32")engine = brinicle.VectorEngine(    "vector_index",    dim=dim,    M=48,    ef_construction=1024,    ef_search=512,)engine.init(mode="build")for i in range(n):    engine.ingest(str(i), X[i])engine.finalize()results = engine.search(Q, k=10)print(results)

Benchmark Results

See how brinicle performs in real-world scenarios.

In-Process Based
brinicle performance metrics
Average Latency0.095ms
P50 Latency0.095ms
P95 Latency0.120ms
P99 Latency0.133ms
Throughput10,563 QPS

SIFT (1M vectors, 128 dim)

HTTP-Based
brinicle performance metrics
Average Latency0.838ms
P50 Latency0.746ms
P95 Latency1.477ms
P99 Latency2.036ms
Throughput1,204 QPS

SIFT (1M vectors, 128 dim)