Scales to 209k+ req/s on 16 cores

One static binary, linear with cores. Microseconds of added latency, single-digit-MB idle.

Throughput 13,050+ rps per core · 209,214 on 16 cores, measured, linear · c7g.8xlarge (v1.5.1)
Added latency 82 µs end-to-end p99, gateway − direct · onthebench m7g field box (v1.5.1)
Memory 7.3 MiB resident, idle · one static binary (v1.5.1)

Add cores, add capacity, linearly

Busbar's request path is CPU-bound (parse, translate, serialize), no GC and no database in the hot path, so throughput scales linearly with cores.

req/s (scales linearly) processing time · busbar;dur (flat)
0100k200k 04590 246810121416 CPU cores → 2 cores · 21,626 req/s · 100% success · 57.7 MB · processing time 22/35 µs (busbar;dur p50/p99) 4 cores · 47,880 req/s · 100% success · 99.5 MB · processing time 21/33 µs (busbar;dur p50/p99) 6 cores · 74,514 req/s · 100% success · 92.9 MB · processing time 22/33 µs (busbar;dur p50/p99) 8 cores · 103,984 req/s · 100% success · 97.3 MB · processing time 22/34 µs (busbar;dur p50/p99) 10 cores · 132,313 req/s · 100% success · 86.1 MB · processing time 21/32 µs (busbar;dur p50/p99) 12 cores · 161,630 req/s · 100% success · 91 MB · processing time 21/33 µs (busbar;dur p50/p99) 14 cores · 187,510 req/s · 100% success · 96.3 MB · processing time 21/32 µs (busbar;dur p50/p99) 16 cores · 209,214 req/s · 100% success · 91.7 MB · processing time 20/31 µs (busbar;dur p50/p99) 2 cores · processing time 22 µs p50 / 35 µs p99 (busbar;dur, concurrency 1 — CPU, not latency) 4 cores · processing time 21 µs p50 / 33 µs p99 (busbar;dur, concurrency 1 — CPU, not latency) 6 cores · processing time 22 µs p50 / 33 µs p99 (busbar;dur, concurrency 1 — CPU, not latency) 8 cores · processing time 22 µs p50 / 34 µs p99 (busbar;dur, concurrency 1 — CPU, not latency) 10 cores · processing time 21 µs p50 / 32 µs p99 (busbar;dur, concurrency 1 — CPU, not latency) 12 cores · processing time 21 µs p50 / 33 µs p99 (busbar;dur, concurrency 1 — CPU, not latency) 14 cores · processing time 21 µs p50 / 32 µs p99 (busbar;dur, concurrency 1 — CPU, not latency) 16 cores · processing time 20 µs p50 / 31 µs p99 (busbar;dur, concurrency 1 — CPU, not latency) 209k req/s ~33 µs, flat
c7g.8xlarge, 2→16 cores, unique requests, 100% success: throughput (green) climbs linearly — ~13,050+ req/s per core — while processing time (amber, busbar;dur — CPU, not latency) stays flat at ~33 µs, reported in-band on every response (v1.5.1).
This is a single-box linearity demo: the load generator and mock run on the same 32-core box as Busbar (8 cores each), so this per-core rate is conservative, depressed by co-located contention rather than a clean ceiling. The isolated per-core ceiling is a separate experiment: ~16,959 req/s per core, Busbar alone on a 4-core pin with no co-tenant load (onthebench (v1.5.1)).

How that stacks up

We stand on our own numbers, but here's the short version against the two alternatives people ask about most. Figures we measured are tagged we measured; each project's own published figures their published.

Our benchmark: one clean box per gateway we measured

Every gateway on its own fresh, identical box — one dedicated machine each, so no run bleeds into the next. Live on the neutral field at onthebench.ai.

GatewayAdded latency (end-to-end) p99Throughput (RPS)Memory idle / peak
BusbarBusbar 82 µs 67,837 7.336 / 23 MiB
LiteLLM · Rust 106 µs 48,354 252.621 / 258 MiB
AISIX (api7) 208 µs 20,578 77.438 / 95 MiB
agentgateway 228 µs 24,771 25.164 / 49 MiB
Helicone 294 µs 14,941 42.898 / 57 MiB
Kong 389 µs 21,520 403.473 / 621 MiB
APISIX 465 µs 20,764 178.561 / 210 MiB
Bifrost 1,058 µs 4,969 245.113 / 942 MiB
GoModel 2,073 µs 1,853 52.578 / 88 MiB
Portkey 3,720 µs 855 123.848 / 249 MiB
LiteLLM · Python 8,221 µs 152 1,080 / 1,104 MiB

Added latency = gateway p99 − direct-to-mock p99 (c1). Throughput = sustained RPS at a realistic 20 ms model delay. Memory = idle / peak RSS under load; did not serve = couldn't hold the endpoint. Measured 2026-08-04.

Busbar's own compute is 33 µs (busbar;dur p99, 16-core c7g.8xlarge scaling run). The benchmark's 82 µs is end-to-end p99 on an AWS m7g.4xlarge (Graviton3, 4-core pin).
0 µsClient Busbar AI
82 µsClient Busbar AI

Green is Busbar's real work, timed on its own clock (busbar;dur), no wire in it. Grey is kernel + TCP time every proxy pays; co-locate Busbar with your app and it's sub-millisecond, and against an ~800 ms model call all of it vanishes.

we measured is our number on identical hardware; their published is that project's own figure, taken at their word.