CrabTalk
[ Open source · Rust ]

One API. Every model.

Route requests to OpenAI, Anthropic, Gemini, Azure, Bedrock, or Ollama through one OpenAI-compatible endpoint. Sub-millisecond overhead. Single binary. No runtime.

/* Start in 30 sec … */

$ cargo install crabllm crabctl
The Router. Requests enter as one format, pass through the gateway, and fan out to provider zones. Hover a zone to simulate failover; click for a burst of traffic.
$P50_OVERHEAD
0.26 ms
$PEAK_MEMORY
34.9 MB
$RUNTIME
single binary
[ What you get ]

Six capabilities, out of the box

Provider translation, routing, streaming, auth, caching, budgets — the gateway handles them so your client doesn’t.

01

Provider translation

Send OpenAI format. CrabLLM translates to Anthropic, Gemini, Bedrock, and Azure automatically.

providers/overview →
02

Routing & fallback

Weighted random selection across providers. Exponential backoff retry. Automatic failover.

features/routing →
03

Streaming first-class

SSE proxied without buffering. Per-chunk extension hooks. Keep-alive pings.

features/streaming →
04

Virtual keys & auth

Per-key model access control. Rate limiting, usage tracking, and budget enforcement.

features/auth →
05

Caching & rate limits

SHA-256 response cache. Per-key RPM and TPM limits. Sliding-window enforcement.

features/extensions →
06

Budget enforcement

Per-key spend limits in USD. Automatic cost tracking from token usage and pricing config.

features/extensions →
[ Performance ]

Not the bottleneck

Gateway overhead at 5,000 concurrent requests per second — identical limits (2 CPUs, 512 MB) against a mock backend with instant responses. Full results →

Latency
GatewayP50P99
CrabLLM0.26ms0.54ms
Bifrost0.61ms1.26ms
LiteLLM159ms227ms
Memory
GatewayPeak RSS
CrabLLM34.9 MB
Bifrost171.7 MB
LiteLLM541.8 MB

One API. Every model.

0.26ms · single binary