Same-session only
Every number on this page comes from one continuous session, because this hardware drifts up to 42% between sessions on unchanged code. A cross-session comparison would measure the machine, not the engines.
Benchmarks · VectorDBBench 1.0.22 · Cohere-1M · 768d · cosine
At matched recall Rostam serves ~2× the queries of Milvus and pgvector and ~4× Qdrant — under a neutral, third-party harness, with the caveats printed as large as the wins.
Six engines, one continuous session, HNSW m=16 /
ef_construction=200 / k=100 pinned identically on every
engine, and ef swept. VectorDBBench is maintained by the company behind
Milvus — not by us.
The numbers
Recall against queries per second. The lead is stable across the whole curve, so it does not depend on picking a favourable operating point.
| Matched recall | Rostam | vs Milvus | vs pgvector | vs Weaviate | vs Qdrant | vs Redis |
|---|---|---|---|---|---|---|
| 0.95 | 3,161 QPS | 1.84× | 1.83× | 3.25× | — | 6.54× |
| 0.97 | 2,642 QPS | 2.02× | 2.18× | 3.03× | 4.16× | 7.53× |
| 0.98 | 2,088 QPS | 1.90× | 2.28× | 2.67× | 3.98× | 7.90× |
| 0.99 | 1,471 QPS | 1.78× | — | — | 3.55× | — |
Read at matched recall, which is the only like-for-like comparison —
engines land at different recall for the same ef, and a segmented engine
runs that ef against every segment, so equal ef is
not equal work.
the fastest load in the set
of any multi-core engine in the set
no other engine in the set measured higher
Methodology
Two caveats bound everything above — and they are not footnotes.
Every number on this page comes from one continuous session, because this hardware drifts up to 42% between sessions on unchanged code. A cross-session comparison would measure the machine, not the engines.
The benchmark client shares the box with the engine under test — a cost that penalises the fastest engine hardest. So these throughput figures are floors, not ceilings.
Full per-ef curves, per-engine CPU accounting, the filter case, paired A/B controls, and the complete methodology — including where the data cuts against Rostam — are in the open benchmark repository. And Rostam's other half — the key-value engine — is measured with the same discipline against Redis, Memcached, Dragonfly and Aerospike on the KV benchmark page.
Beyond the numbers
Throughput gets you to the door. What a skeptical infra engineer asks next:
One Go binary, no cgo, no dependencies — Apache 2.0, with an explicit patent grant. Your data stays on your hardware.
Rostam is also an embeddable library — the same engine inside your Go binary, no server in the picture at all.
Per-shard Raft replication, online resharding, S3 backups, RBAC/JWT/mTLS, and Prometheus metrics.
Selective metadata filters run through an exact filter-first planner — recall holds as filters get sharper.
SQ8 at 4× smaller with recall@10 ≈ 0.98 — down to binary at 32× smaller, recall@10 ≈ 0.96 rescored.
An embedded web dashboard for collections, cluster topology, and KV keys — plus a first-party, dependency-free Python client.
curl -fsSL https://rostamlabs.com/install.sh | sh