Scales to 156k+ req/s on 16 cores

One static binary. Linear with cores. Microseconds of overhead, single-digit-MB idle.

Throughput 9,750+ rps per core, linear · 156,223 on 16 cores
Added latency 33 µs busbar;dur p99, one request (v1.4.1)
Memory 8.3 MB resident, idle · one static binary (v1.4.1)

Add cores, add capacity — linearly

Busbar's request path is CPU-bound on the work that matters (parse, translate, serialize) and nothing else — no GC, no database in the hot path, no per-request lock. So throughput tracks the cores you give it, in a straight line. Measured on one c7g.8xlarge (32 vCPU Graviton3), driving unique requests through a fast upstream (so every request is real proxy work, not a cache hit):

req/s (scales linearly) added latency (flat)
050k100k150k 04080 246810121416 CPU cores → 2 cores · 19,838 req/s · 100% success · 58 MB · added latency 29/37 µs (p50/p99) 4 cores · 38,285 req/s · 100% success · 80 MB · added latency 26/33 µs (p50/p99) 6 cores · 61,505 req/s · 100% success · 94 MB · added latency 27/34 µs (p50/p99) 8 cores · 83,850 req/s · 100% success · 91 MB · added latency 26/32 µs (p50/p99) 10 cores · 101,853 req/s · 100% success · 102 MB · added latency 26/33 µs (p50/p99) 12 cores · 120,038 req/s · 100% success · 106 MB · added latency 26/33 µs (p50/p99) 14 cores · 142,038 req/s · 100% success · 110 MB · added latency 26/33 µs (p50/p99) 16 cores · 156,223 req/s · 100% success · 118 MB · added latency 26/33 µs (p50/p99) 2 cores · added latency 29 µs p50 / 37 µs p99 (busbar;dur, concurrency 1) 4 cores · added latency 26 µs p50 / 33 µs p99 (busbar;dur, concurrency 1) 6 cores · added latency 27 µs p50 / 34 µs p99 (busbar;dur, concurrency 1) 8 cores · added latency 26 µs p50 / 32 µs p99 (busbar;dur, concurrency 1) 10 cores · added latency 26 µs p50 / 33 µs p99 (busbar;dur, concurrency 1) 12 cores · added latency 26 µs p50 / 33 µs p99 (busbar;dur, concurrency 1) 14 cores · added latency 26 µs p50 / 33 µs p99 (busbar;dur, concurrency 1) 16 cores · added latency 26 µs p50 / 33 µs p99 (busbar;dur, concurrency 1) 156k req/s ~33 µs — flat
Throughput (green) climbs in a straight line — about 9,764 req/s per core — while Busbar's own added latency (busbar;dur, amber) stays flat at ~33 µs no matter the load. 2 cores 19k → 16 cores 156k, 100% success, on one c7g.8xlarge box.

And it stays flat and fast until it runs out of CPU — not until it falls over. At 16 cores busbar delivers every request you offer, at sub-millisecond added latency (~33 µs p99), right up to the full 156k/s; past that it's simply out of CPU budget (add cores and the ceiling moves up), never unstable. Busbar reports its own added time in-band on every response (Server-Timing: busbar;dur), so you can read the 33 µs on your own traffic instead of trusting us.

How that stacks up

We stand on our own numbers — but here's the short version against the two alternatives people ask about most. Two separate comparisons to Busbar, not a ranking of Bifrost against LiteLLM. Figures we measured are tagged we measured; each project's own published figures their published.

Two kinds of number, labelled as such: the Bifrost figures we measured ourselves on identical hardware (same box, same fast upstream, unique traffic so it's real proxy work — not a cache hit); the LiteLLM figures are their own published numbers on their own hardware, taken at their word. Every Busbar number reads from one version-stamped source (facts.ts) and is re-measured each release — the full method and raw data are linked below.