Skip to main content

rolter

rolter

A high-performance, open-source LiteLLM-proxy alternative in Rust —
an OpenAI/Anthropic-compatible AI gateway and load balancer.

CI Release Documentation Coverage baseline: 64%

Latest release crates.io PyPI MSRV: Rust 1.82 License


rolter proxies commercial providers and load-balances self-hosted OpenAI-compatible fleets (e.g. 20–30 vLLM instances) with cache-aware routing, full RBAC, reload-free configuration, and cost/usage tracking.

Status: active development. The gateway, Postgres-backed control plane, reload-free configuration, cost controls, reliability primitives, and core provider surfaces are implemented; remaining work is tracked in ROADMAP.md, TODO.md, and the Linear project.

Why rolter

  • Fast — a Rust data plane (Axum/Hyper/Tower on Tokio) with lock-free config reads and minimal-copy streaming.
  • Cache-aware load balancing — route prefix-heavy traffic to the vLLM replica most likely to have the KV cache warm.
  • Drop-in — speak the OpenAI and Anthropic APIs your clients already use.
  • Operable — virtual keys, budgets, rate limits, cost tracking, RBAC, and reload-free config changes from the UI.

Quick start — launch, configure, call

Go from zero to a working AI gateway in under a minute. The built-in fake-llm model answers locally, so the first request needs no provider key or config.

1. Launch

# single image: gateway + dashboard, no compose or config file
docker pull ghcr.io/rolter-ai/rolter:latest
docker run --rm -p 4000:4000 -p 4001:4001 ghcr.io/rolter-ai/rolter:latest

# native binary (installed from a release, cargo, uv, or pip)
rolter easy-up

Open the dashboard at http://localhost:4001. For Postgres, Redis, and ClickHouse, use the full-stack option instead:

docker compose -f docker/docker-compose.yml up -d

2. Configure

The dashboard is ready at http://localhost:4001. Add real providers and routes there when running in database mode, or use the bundled rolter.toml as your file-backed bootstrap config.

3. Call

curl -s http://localhost:4000/v1/chat/completions \
  -H "Authorization: Bearer sk-rolter-dev" \
  -H "Content-Type: application/json" \
  -d '{"model":"fake-llm","messages":[{"role":"user","content":"hello"}]}'

Install methods, the rolter CLI reference, and production configuration are in the documentation.

Architecture

flowchart LR
  Client([OpenAI / Anthropic clients]) -->|/v1/*| GW["rolter-gateway<br/>(data plane)"]
  Admin([Dashboard]) --> CTL["rolter-control<br/>(control plane + UI host)"]
  GW -->|balanced + streamed| UP["Upstreams<br/>OpenAI · Anthropic · vLLM pool"]
  CTL -->|writes config| PG[("PostgreSQL")]
  CTL -->|publishes change events| RDS[("Redis")]
  RDS -->|hot-swap snapshot| GW
  GW -->|async batched logs| CH[("ClickHouse")]

Inspirations & Acknowledgments

rolter stands on the shoulders of great open-source projects and research. See our inspiration issues for detailed analysis of each project.

Gateway & Load Balancing

  • LiteLLM — proxy feature breadth, provider coverage (100+), config/DB model split, virtual keys, budget controls, spend tracking
  • Bifrost — high-performance Go gateway, weighted key selection (~10ns), multi-provider failover, plugin/middleware system, hierarchical budgets, semantic caching; published perf target (~11µs latency at 5k RPS)
  • TensorZero — Rust LLMOps gateway, sub-1ms p99 latency target at 10k+ QPS, observability patterns, OTLP traces + Prometheus, rate limiting with granular scopes
  • llm-d — cache-aware routing, prefix/KV-cache affinity, inference-phase scheduling, predicted-latency scheduling (40% TTFT/ITL reduction); highest-signal reference for rolter-balancer crate
  • LLMGateway — cost tracking, analytics dashboard UX, performance analytics, provider key management, self-host story (Docker + Postgres + Redis)
  • Archestra — dynamic model routing, MCP gateway, enterprise auth (OIDC, SAML, Okta, Entra), SSO + RBAC, tool-call safety guardrails

Infrastructure & Frameworks

  • vLLM — KV-cache-aware replica pooling and prefill/decode scheduling
  • Axum — high-performance Rust web framework
  • Tokio — async runtime foundation
  • shadcn/ui — component library for the dashboard UI

API Standards

Documentation

Repository layout

  • crates/rolter-core — config model, domain types, errors, telemetry
  • crates/rolter-balancer — load-balancing strategies (incl. approximate cache-aware)
  • crates/rolter-proxy — upstream forwarding, header injection, streaming
  • crates/rolter-store — repository traits + in-memory store (Postgres/Redis/ClickHouse next)
  • crates/rolter-auth — virtual keys, roles, access checks
  • crates/rolter-gateway — data-plane binary
  • crates/rolter-control — control-plane binary + static UI host
  • crates/rolter — unified rolter launcher (gateway / control / easy-up)
  • ui/ — Vite + React + shadcn/ui dashboard
  • docs/, user-docs/ — architecture/ADRs and the user documentation site
  • migrations/, clickhouse/ — database schemas

Development

cargo build --workspace
cargo nextest run --workspace   # tests via nextest (as CI does); + `cargo test --doc --workspace`
cargo fmt --all
cargo clippy --workspace --all-targets -- -D warnings

Commits and PR titles follow Conventional Commits. See AGENTS.md and docs/development/contributing.md.

License

Apache-2.0 — see LICENSE.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

rolter-0.0.10-py3-none-win_amd64.whl (8.0 MB view details)

Uploaded Python 3Windows x86-64

rolter-0.0.10-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (7.7 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ x86-64

rolter-0.0.10-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (7.4 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ ARM64

rolter-0.0.10-py3-none-macosx_11_0_arm64.whl (7.2 MB view details)

Uploaded Python 3macOS 11.0+ ARM64

File details

Details for the file rolter-0.0.10-py3-none-win_amd64.whl.

File metadata

  • Download URL: rolter-0.0.10-py3-none-win_amd64.whl
  • Upload date:
  • Size: 8.0 MB
  • Tags: Python 3, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: maturin/1.14.1

File hashes

Hashes for rolter-0.0.10-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 39c018aec9864e6ddbe3bcba00f70183c26437c4140e3eeb118c50d3838bc68d
MD5 ad6e83de91fdd901fb3fbffb60f9d010
BLAKE2b-256 9682124aeea16dc36d634b96b04bf75ea046cda9453ccae1ad5f7dcceef3b0ca

See more details on using hashes here.

File details

Details for the file rolter-0.0.10-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for rolter-0.0.10-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 b8bad154cb854d2c60210f26176ca760dbd88fa038ee4c036a0f8f97896bc175
MD5 0e25ba9173c0aacbcef9f35df6e8054a
BLAKE2b-256 11033d6fc8136212a57cb46922d54806958abbf810086fdd73c4e32d34f06538

See more details on using hashes here.

File details

Details for the file rolter-0.0.10-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for rolter-0.0.10-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 5ff75a09f9d4e90ae6698d3407936e9cc3fd436a53016f3f88db92fbea05806f
MD5 4b1651898875095987866e4b9fdb283b
BLAKE2b-256 dcd6b585235a73c5f30b87c01629f79e8d9ded8e238bc4056ff3f96c575937b2

See more details on using hashes here.

File details

Details for the file rolter-0.0.10-py3-none-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for rolter-0.0.10-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 12fce28fa4ede9e2394c0735d14383dab4e6365084603261c109c0207ea1a64f
MD5 ff2c174e9b9cd5b3c3300dd359d96cc9
BLAKE2b-256 a9e9e4b2bf40717619ce38b065e4ed35ffd4333775fb30893b4458b52bf28200

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page