Routing that keeps you up
Fallback chains, weighted splits, least cost, least latency, tiers and classifiers, with retries, hedging and circuit breakers. Any client can call any provider: dialects and streams are translated.


Antirion is the fastest open-source AI gateway. One Rust binary, console included, between your apps and every model provider.
Speaks OpenAI, Anthropic, Gemini and Bedrock, and calls every one of these, or any OpenAI-compatible server such as vLLM.
01/Performance
Antirion, Bifrost and LiteLLM on the same dedicated machines, interleaved run by run, against an upstream that answers at once.
37×
lower overhead
p50 at 5,000 RPS: 0.53 ms against 19.7 ms
4×
the sustained rate
on 4 vCPUs: 14,000 RPS against 3,500 RPS
6.5×
less memory
peak at 5,000 RPS: 215 MiB against 1,389 MiB
Gateway overhead, median, simple chat at 5,000 requests per second. Lower is better.
Antirion
0.53 ms
Bifrost 2.2.4
19.7 ms
LiteLLM 1.103.1
every request failed
| Scenario | Antirion | Bifrost 2.2.4 | LiteLLM 1.103.1 |
|---|---|---|---|
| Simple chat at 10,000 RPS, overhead p50 / p99 | 0.61 ms / 1.50 ms | 12.1 s / 19.1 s | 100% errors |
| Invalid key rejected at 20,000 RPS, p50 / p99 | 0.30 ms / 0.75 ms | 1.86 s / 2.49 s | 100% errors |
| Unknown model rejected at 20,000 RPS, p50 / p99 | 0.57 ms / 1.27 ms | 17.7 s / 27.4 s | 100% errors |
02/Console
The gateway, the Admin API and the web console ship together. No sidecars, no separate UI to deploy, no runtime to install.


03/Drop-in
Clients speak OpenAI, Anthropic, Gemini or Bedrock, so the official SDKs, LangChain and the Vercel AI SDK work as they are. Antirion translates between the dialects, so any client can call any provider.
1import os2from openai import OpenAI3 4client = OpenAI(- base_url="https://api.openai.com/v1",+ base_url="http://localhost:8080/v1",6 api_key=os.environ["ANTIRION_API_KEY"],7)8 9reply = client.chat.completions.create(10 model="chat",11 messages=[{"role": "user", "content": "Hello"}],12)
04/Platform
Everything a platform team puts in front of its models, in the open-source build. There is no enterprise edition.
Fallback chains, weighted splits, least cost, least latency, tiers and classifiers, with retries, hedging and circuit breakers. Any client can call any provider: dialects and streams are translated.


Rate limits and budgets in dollars or tokens on the organization, team, project, key and Model, with projections, run-out dates and a ledger behind every number.


The route taken, every attempt and why it failed, tokens, cost, cache status and guardrail verdicts. Prometheus, OTLP and log sinks for the rest of your stack.


PII, secrets, regexes, JSON schemas, tool permissions, moderation and LLM judges, on requests, responses and streams. Block, redact with format-preserving masks, flag or divert.


An embedded store, or many nodes on PostgreSQL and Valkey.
Tool servers and A2A agents behind the same keys, budgets and log.
Per Model, team or key, with hit rates and the spend each cache saved.
33.4%
hit rate, last 24 hours
~$49.05
saved
OIDC, SAML and GitHub sign-in, custom roles, change requests.
SBOM, Sigstore signatures and SLSA provenance. Distroless, non-root.
YAML, API or console, schema-checked, with diffs and rollback.
version: 1server: { listen: "0.0.0.0:8080" }admin: { listen: "0.0.0.0:8081" }store: { backend: embedded }
05/Deploy
A single node with an embedded store, or a cluster on PostgreSQL and Valkey. Requests go from your network straight to your providers.
Docker
A standalone node with an embedded store
docker run -p 8080:8080 -p 8081:8081 -v antirion-data:/var/lib/antirion eliasbiondo/antirionCompose
Two nodes on PostgreSQL and Valkey
docker compose -f compose.cluster.yaml up -dKubernetes
The Helm chart, with autoscaling
helm install antirion deploy/helm/antirion --set mode=clusterBinary
Linux, amd64 and arm64, signed
antirion serve --config antirion.yamlFrom the first container to the first request through the gateway, the guide walks every step.
Read the getting-started guide