llm-d

llm-d-router: Route LLM Inference with Envoy and Gateway API

llm-d-router is a Go-based router for LLM inference traffic, using an Endpoint Picker with Envoy and the Kubernetes Gateway API. It routes requests using signals such as model-server load and KV-cache locality, with options for standalone or gateway deployments.

ActiveGoApache-2.0AIKubernetesNetworking
Stars
422
Forks
472
Stars, last 30 days
+67
Last commit
today
Contributors
100+

Our take

Activeregular commits and releases

Health score

80/100

How it is scored
Activity
81
Community
94
Issues
82
Pull requests
63

+67 stars in the last 30 days

  • Merges more pull requests than 92% of the projects we track
  • More contributors than 78% of the projects we track
  • Releases more often than 77% of the projects we track

This is an actively maintained, production-oriented Go router with recent releases and broad contributor participation, suited to teams already operating Kubernetes inference infrastructure.

Good fit if

  • You need inference-aware routing based on signals such as KV-cache locality, backend load, or request priority.
  • Your serving stack uses Envoy ext-proc or Kubernetes Gateway API integration.
  • You want a project with regular commits and releases, and contribution activity spread across many contributors.

Look elsewhere if

  • You need a standalone model server rather than a routing and coordination layer.
  • Your proxy cannot use the supported ext-proc body mode, FULL_DUPLEX_STREAMED.
  • You do not operate or plan to integrate with proxy or Gateway API infrastructure.
All health signals
Last commit2026-10-19 (today)
Commits, last 90 days100+
Releases, last 12 months25 (latest v1.0.0, 2026-10-16)
Contributors100+ (top contributor: 7% of commits)
Issues closed, last 90 days29+ (typically closed in 1 day)
Pull requests merged, last 90 days89 (typically merged in 1 day)
Project age18 months

Checked on 2026-10-20 with the GitHub API.

Project history

Daily GitHub snapshots since Oct 7, 2026. History covers stars and forks; health signals are not tracked historically.

Selected snapshot

Stars

467

Forks

527

Change since Nov 12, 2026: 0 stars·+2 forks

Overview

llm-d-router is a Go-based intelligent entry point for LLM inference traffic. Its Endpoint Picker (EPP) works with proxies such as Envoy through the ext-proc protocol, using signals including server load and KV-cache locality to choose where requests go. It supports standalone deployments with a self-managed Envoy proxy and Gateway API deployments that use an InferencePool behind an HTTPRoute.

The project is aimed at teams operating model-serving infrastructure that need routing decisions to account for inference-specific conditions, rather than relying only on general-purpose load balancing. The EPP also provides request prioritization and flow control, and the repository includes a disaggregation sidecar for coordinating multi-stage inference workflows.

Key Features

  • Routes inference requests using Endpoint Picker scoring informed by InferencePool state, including KV-cache locality and current load.
  • Integrates with L7 proxies such as Envoy using the ext-proc protocol.
  • Supports standalone operation with Envoy as a sidecar or as a separately scalable service.
  • Supports Gateway API deployments using an InferencePool, HTTPRoute, and shared Gateway.
  • Provides InferenceObjective configuration for request priorities and performance targets.
  • Provides InferenceModelRewrite for model-name rewriting, including traffic management for canary rollouts and A/B testing.
  • Includes a disaggregation sidecar for coordinating prefill, decode, and encode stages and associated data transfers.

Use Cases

  • Model-serving platform teams can route requests according to backend load and KV-cache locality.
  • Kubernetes operators can connect inference backends to shared Gateway API infrastructure alongside other workloads.
  • Teams evaluating inference-aware routing can run a standalone setup with a self-managed Envoy proxy.
  • Serving teams using prefill/decode or encode/prefill/decode stages can use the sidecar to coordinate workers and transfers.
  • Teams running canary rollouts or A/B tests can rewrite model names through the request-management API.

What you need

Detected in the repository

  • Go 1.27.2 or newer (from go.mod)
  • A test suite and automated checks on GitHub Actions

License in plain words

Apache-2.0permissive

  • Commercial use: yes
  • Modify and redistribute: yes
  • You must keep: the license, the NOTICE file and a note of your changes
  • Share your changes: no
  • Includes an explicit patent grant from the contributors:

A summary, not legal advice: the LICENSE file is what applies.

Getting Started

The README describes the standalone and Gateway API deployment modes. Start there, then use the Helm chart documentation for deployment configuration. For development, the repository uses Go 1.27.2, as declared in go.mod.

Alternatives

  • a3m-router: A3M routes OpenAI-compatible requests across LLM providers by complexity and cost, rather than routing inference traffic among model-server endpoints using load and KV-cache signals.
  • otari: Otari routes API requests to LLM providers and adds keys, budgets, and usage tracking, rather than selecting Kubernetes model-server endpoints based on serving signals.
ProjectLanguageLicenseStarsStatus
llm-d-routerGoApache-2.0422Active
a3m-routerTypeScriptMIT17New
otariPythonApache-2.0660Active

Considerations

  • The router is infrastructure software, not a model runtime. Adopting it means integrating it with an inference pool and a compatible proxy or Gateway API setup.
  • For self-managed Envoy configurations, the README identifies FULL_DUPLEX_STREAMED as the only supported ext-proc request and response body mode.
  • The project is active, with regular commits and releases, and has activity from at least 100 contributors. Its issue and pull-request queues are being handled regularly, though the repository's open issue backlog is substantial.
  • The repository is licensed under Apache-2.0. Review that license and your organization's obligations before incorporating or redistributing the code.

Found this useful?

Share it with someone who would like llm-d-router.

Comparisons