We don't add to your latency, we establish best price-performance.
llmbridge, our open-source gateway in C++ (Apache 2.0), is a drop-in OpenAI-compatible proxy that adds microseconds, not milliseconds. Kottos AI measures what each venue delivered and establishes best price-performance for the next request: routed by us when we host, recommended to your gateway when you do.
llmbridge, the open-source hop in your request path. Microseconds, zero dependencies, Apache 2.0.
Kottos AI, the tape: it measures what each venue delivered and returns the best one available per request. Hosted, we route on it. In your VPC, your gateway decides.
The venues, the providers themselves. Which one serves the request is what moves your latency and your bill.
| gateway | runtime | non-streaming | streaming | peak req/s | cores used | req/s per 1% CPU |
|---|---|---|---|---|---|---|
| llmbridge v0.53.0 ours, Kottos AI | C++ | 0.07 ms | 0.18 ms | 40,677 | 0.98 | 354 |
| GoModel 0.1.86 | Go | 0.47 ms | 0.75 ms | 16,468 | 5.96 | 23 |
| Bifrost 2.0.0 | Go | 0.80 ms | 2.77 ms | 10,043 | 7.90 | 11 |
| Portkey 1.15.2 | Node | 7.56 ms | 27.60 ms | 1,232 | 1.20 | 10 |
| LiteLLM 1.99.1 | Python | 10.77 ms | 46.06 ms | 880 | 7.05 | 1 |
| socat byte pipe the floor | C | 0.06 ms | 0.27 ms | 43,973 | 2.17 | 157 |
Not our harness: the AI gateway reproducible benchmark by Jakub A. Wąsek of ENTERPILOT, every gateway from its public Docker image against the same in-memory mock, run by us on a 12-CPU laptop with llmbridge added. Compare rows within this table only; the socat byte pipe parses nothing and is the cost of being in the path at all. Setup, exclusions and raw data: the benchmarks page.
# Front a provider and translate OpenAI ↔ provider on the fly: llmbridge --listen 8088 --upstream https://api.anthropic.com --upstream-dialect anthropic --workers 4 # Clients keep speaking the OpenAI API. Point them at :8088, nothing else changes.
Build and run in a few minutes → Apache 2.0, C++20, Linux.
The milliseconds it adds to every request, and the venue it picks for you. The first is measurable to the microsecond. The second shows up on the bill, and only a per-request record shows you where.
LiteLLM, the default choice, is Python: on an independent harness it adds 11 ms at the median per request and 46 ms streamed, on seven cores, and caps out at a few hundred requests per second per worker. Voice agents have ~300 ms turn budgets; agentic workflows chain 5–30× more calls per task than a chatbot. The overhead compounds on exactly the workloads growing fastest.
A router that picks the venue on the quoted $/M ignores what the request actually costs you. A prompt cache lives at one venue: switch to the one that looks cheaper and the cache misses, so the $0.25 cache read becomes a $10 input token (Claude Fable 5.1, direct). OpenRouter's router chose Bedrock for us at +251 ms median over the pinned venue (our measurement, Aug 2026), and its default weighting is by posted price alone. The quoted price and the paid price part ways, and nothing on a price page tells you by how much. Replayed on 6,361 requests of our own traffic, that rule cost 21% more for no price gain (how we measured it).
The external table above is one harness we did not write. These two are ours: llmbridge against LiteLLM doing the same OpenAI↔Anthropic translation, request by request and then streamed. The full set, the sweep to 24,576 concurrent streams, the stamp-by-stamp timeline of one request, the methodology and the raw data are on the benchmarks page.
Added p99 per request, one worker each, same translation work against the same mock. LiteLLM 1.95.0 pinned; ~1,000× at 100 RPS.
Streaming time to first token the gateway adds, swept over concurrent streams. llmbridge stays on the no-gateway floor through 512; LiteLLM delivers 4% of the tokens there.
For a single request, yes, generation takes seconds and the gateway is invisible. The efficiency shows up at scale: at millions of requests a day, LiteLLM's ~250 RPS per worker means dozens of processes burning CPU and memory, while llmbridge handles the same volume on a fraction of the hardware. It compounds in agentic workloads (dozens of calls per task) and on real-time budgets like voice, which is exactly what the streaming benchmark above shows: at 512 concurrent streams LiteLLM's first token arrives after ~12.6 seconds and 96% of the tokens never arrive at all, while llmbridge stays on the no-gateway floor. And most of all, it's what powers best price-performance across providers (the same model is priced up to ~10× apart, an estimated 15–40% lower cost) without adding latency of its own.
No GC, no locks on the hot path, no third-party runtime dependencies. Designed by someone who spent nine years in high-frequency and electronic trading, where latency budgets and tail distributions are the job.
Completion-driven I/O (multishot accept/recv, provided buffers) with a keep-alive upstream pool, and epoll fallback for older kernels. One core sustains ~84k RPS, and scales out with SO_REUSEPORT.
A tiny dependency-free JSON parser/serializer scoped to the chat-completion shapes, and zero-copy string_view over input buffers.
It's C++. Tail latency is bounded by malloc, not garbage collection, so p99.9 stays flat under load.
# --upstream-dialect openai|anthropic|gemini|cohere|bedrock|azure --io auto|epoll|uring --workers N # --upstream-timeout SECONDS (upstream silence before a request/stream is aborted) # TLS on either leg needs a TLS build (-DLLMBRIDGE_TLS=ON); the default build is dependency-free. # --listen-tls --tls-cert CERT --tls-key KEY terminates the client's TLS. --config FILE names an upstream table.
Prefer a library? Call the translation functions directly from C++: llmbridge::provider::openai_to_anthropic_request(...) and back. Same zero-dependency core.
llmbridge is the fast gateway core, free under Apache 2.0. We maintain it; you use it without restriction.
tool_choice, parallel calls, tool_result round-trip, streaming and non-streaming, and cache_control forwarded byte for byte--listen-tls for the client’s connection; verification is always onThe paid product is the intelligence, not the hosting. Two ways to take it: hosted, i.e. point your client at our endpoint and we operate the data plane; or self-hosted, the same container in your own VPC, so prompts and provider keys never leave your network, connected to our control plane for the routing intelligence. Same engine and same intelligence either way; the only difference is where the data plane runs. And llmbridge itself stays free under Apache 2.0 whichever you choose.
The price book runs live today: the same model tracked across providers in real time (see the ~10× spread below). The latency/error book is measured on every hosted request: a rolling p95 per venue that routing consults. The cross-provider comparison is in build with design partners: venue selection routed by us when we host, recommended to your gateway when you host. At-cost token passthrough and a separate charge for the routing, never a percentage of token spend and never a token markup.
Per-request tracing, token-cost attribution by team/project, budgets, and audit logs. Anonymized routing metadata only. prompt content is never logged.
You work with us directly. Drop-in migration from LiteLLM/OpenRouter/Portkey: change your base URL and key, existing code works.
The same model (say Llama-3.3-70B) is served by 15+ providers at up to ~10× price dispersion and 5–20× latency variance. That's a commodity market structure. We think it should be priced and executed like one. The people who execute in a commodity market best are the ones who've spent years pricing, executing, and measuring latency inside one.
| Provider | Input $/M | Output $/M | Quant | Context | Uptime |
|---|---|---|---|---|---|
| Fetching live prices from OpenRouter... | |||||
Live from OpenRouter when this page loads: the same model, priced up to ~10× apart across providers (Llama-3.3-70B today). But they differ on quantization, context, and uptime (columns at right), so the cheapest is often the quantized / smaller-context one. Routing captures the gap among providers that meet your SLA, not the cheapest overall. See the hosted gateway →
Inference has ratings agencies for the issuer and no tape for the fill.
Evals grade the model; nobody publishes what a given venue delivered on a given request. Corporate bonds traded that way until TRACE made the fills public in 2002, and spreads compressed without anyone adding a bid side. The full thesis: how inference trades, the inference map, and where the analogy breaks →
Kottos AI is building exchange-grade infrastructure for LLM inference: an open-source microsecond gateway today, real-time intelligence that establishes best price-performance next, and (as GPU compute financializes) price discovery for inference capacity itself. The open core is how you start; the routing intelligence is where it compounds.
The hosted gateway is in private beta with a few design-partner slots open. Voice agents, agentic systems and high-volume APIs, anything where latency and venue choice show up in the bill, are the workloads we want to see first.