llm-d / llm-d-router
git clone https://github.com/llm-d/llm-d-router.git
v1.0.0 · 4d ago
🔥 on GitHub Trending today
llm-d Router: The intelligent entry point for inference requests
—
stars, 24h
+26
stars, 7 days · #1,445
—
stars, 30 days
424
★ total · +7% this week
473
forks · 214 open issues
Star history starts 2026-10-20; the chart appears after the second daily snapshot.
LanguageGo
LicenseApache-2.0
Created2025-05-05 (1y ago)
Last pushtoday
Watchers31
OwnerOrganization
Seen on GitHub Trending
- 2026-10-20 — #7 weekly in go · +26 ★
GitHub topics
Links
- GitHub: github.com/llm-d/llm-d-router
- Homepage: https://llm-d.ai/docs/architecture/core/router
- Releases · Issues · Hacker News mentions
README excerpt
# llm-d Router > [!IMPORTANT] > **Terminology Change**: The *Inference Scheduler* has been renamed to **llm-d Router**; see Terminology. > [!IMPORTANT] > **API & Code Consolidation**: Core Endpoint Picker (EPP) code and the `InferenceObjective` and `InferenceModelRewrite` APIs have been merged into this repository from [Gateway API Inference Extension (GIE)]. The GIE repository now exclusively hosts the `InferencePool` API—an extension of the [Kubernetes Gateway API]—and defines the Endpoint Picker Protocol. The **llm-d Router** is the intelligent entry point for inference traffic, delivering LLM load and prefix-cache aware routing, request prioritization, and advanced flow control across diverse request formats to fulfill complex serving objectives. It supports a flexible deployment model: it can run in **Standalone Mode**, where a self-managed Envoy proxy runs either alongside the EPP or as a separate service, or integrate with L7 load balancers—including self-managed instances (e.g., Istio, AgentGateway) and cloud-managed services (e.g., Google Cloud's Application Load Balancer)—via the Kubernetes Gateway API. The router achieves its intelligence through an **Endpoint Picker (EPP)** that integrates with production-grade proxies (such as [Envoy]) via the [ext-proc] protocol, injecting real-time signals into the data plane to optimize request placement. ## Core Components and APIs This repository hosts the following core components: - **Endpoint Picker (EPP)**: The intelligent routing engine that serves as the "brain" of the router. It evaluates incoming requests against the current state of the [InferencePool], considering factors like KV-cache locality, current load, and priority to make optimal placement decisions. It integrates with L7 proxies via the `ext-proc` protocol. - **Request Management APIs**: These resources directly influence the EPP's request handling behavior: - **InferenceObjective**: Configures the EPP's scheduling goals for specific requests, including priority levels and performance targets. - **InferenceModelRewrite**: Directs the EPP to perform model name rewriting, enabling flexible traffic management for A/B testing and canary rollouts. - **Disaggregation Sidecar**: A coordination component deployed alongside model servers (typically as a sidecar to the decode worker). It orchestrates complex multi-stage inference lifecycles, such as **P/D (Prefill/Decode)** and **E/P/D (Encode/Prefill/Decode)**, by communicating with specialized encode and prefill workers to manage KV-cache and embedding transfers. For more details, see the [Disaggregation Documentation]. ## Modes of Operation The llm-d Router supports two primary deployment modes as specified in the [Kubernetes Gateway API Inference Extensions]: ### 1. Standalone Mode A deployment with a self-managed Envoy proxy that does not require Gateway API infrastructure. The standalone Helm chart supports two Envoy proxy topologies: - **Sidecar mode** (default): The proxy runs