llm-d Router: The intelligent entry point for inference requests
333
stars
2,946
commits
Go
primary language
Sep 11, 2026
updated
[!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
InferenceObjectiveandInferenceModelRewriteAPIs have been merged into this repository from Gateway API Inference Extension (GIE). The GIE repository now exclusively hosts theInferencePoolAPI—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.
This repository hosts the following core components:
ext-proc protocol.The llm-d Router supports two primary deployment modes as specified in the Kubernetes Gateway API Inference Extensions:
A deployment with a self-managed Envoy proxy that does not require Gateway API infrastructure. The standalone Helm chart supports two Envoy proxy topologies:
router.proxy.mode=service to scale the proxy independently from EPP.See the Helm chart documentation for configuration examples.
The recommended mode for production environments, leveraging the official Gateway API. In this mode, the EPP acts as a backend for an InferencePool, which is referenced by an HTTPRoute on a shared Gateway. This enables advanced traffic management, multi-cluster load balancing, and shared infrastructure for both inference and traditional workloads.
For more details on the router architecture, routing logic, and different plugins (filters and scorers), see the Architecture Documentation. For resource provisioning and container sizing recommendations under heavy or long-context workloads, see the EPP Container Sizing Guide.
[!NOTE] The project provides tools for automatic Envoy installation. However, if you install or configure it yourself, please note that the only supported request_body_mode and response_body_mode is
FULL_DUPLEX_STREAMED
To ensure clarity across the project, we use the following standard terminology:
Start with the llm-d organization contributing guide for project-wide guidelines, code of conduct, and community resources, then see CONTRIBUTING.md for what is specific to this repository, including how to claim an issue.
Our community meeting is bi-weekly at Wednesday 10AM PDT (Google Meet, Meeting Notes).
We currently utilize the #sig-router channel in llm-d Slack workspace for communications.
For large changes please create an issue first describing the change so the maintainers can do an assessment, and work on the details with you. See DEVELOPMENT.md for details on how to work with the codebase.
Contributions are welcome!
(top 30 of 254)
202 commits
185 commits
177 commits
149 commits
Go
96.8%
Shell
1.3%
llm-d Router: The intelligent entry point for inference requests
333
stars
2,946
commits
Go
primary language
Sep 11, 2026
updated
[!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
InferenceObjectiveandInferenceModelRewriteAPIs have been merged into this repository from Gateway API Inference Extension (GIE). The GIE repository now exclusively hosts theInferencePoolAPI—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.
This repository hosts the following core components:
ext-proc protocol.The llm-d Router supports two primary deployment modes as specified in the Kubernetes Gateway API Inference Extensions:
A deployment with a self-managed Envoy proxy that does not require Gateway API infrastructure. The standalone Helm chart supports two Envoy proxy topologies:
router.proxy.mode=service to scale the proxy independently from EPP.See the Helm chart documentation for configuration examples.
The recommended mode for production environments, leveraging the official Gateway API. In this mode, the EPP acts as a backend for an InferencePool, which is referenced by an HTTPRoute on a shared Gateway. This enables advanced traffic management, multi-cluster load balancing, and shared infrastructure for both inference and traditional workloads.
For more details on the router architecture, routing logic, and different plugins (filters and scorers), see the Architecture Documentation. For resource provisioning and container sizing recommendations under heavy or long-context workloads, see the EPP Container Sizing Guide.
[!NOTE] The project provides tools for automatic Envoy installation. However, if you install or configure it yourself, please note that the only supported request_body_mode and response_body_mode is
FULL_DUPLEX_STREAMED
To ensure clarity across the project, we use the following standard terminology:
Start with the llm-d organization contributing guide for project-wide guidelines, code of conduct, and community resources, then see CONTRIBUTING.md for what is specific to this repository, including how to claim an issue.
Our community meeting is bi-weekly at Wednesday 10AM PDT (Google Meet, Meeting Notes).
We currently utilize the #sig-router channel in llm-d Slack workspace for communications.
For large changes please create an issue first describing the change so the maintainers can do an assessment, and work on the details with you. See DEVELOPMENT.md for details on how to work with the codebase.
Contributions are welcome!
(top 30 of 254)
202 commits
185 commits
177 commits
149 commits
Go
96.8%
Shell
1.3%