mrkeyoor.com_
Tue 01 Sept 17:44 UTC
Self-Hostedevaluationupdated 27 Aug 2026

higress review

Higress is a self-hosted API gateway built on Istio and Envoy, with routing, security, observability, and a web console. Its AI features put several model providers behind one gateway and can expose APIs as hosted Model Context Protocol servers.

+38 / 4dstars / 7d
Verdict

Our Higress install ran for 78 seconds and failed before build or tests because the expected external/go-control-plane/go.mod file was missing. Higress makes sense for a Kubernetes platform team that wants ingress, AI-provider policy, and MCP hosting under one control plane and will follow the repository's submodule-aware build path. For a small proxy or a team without Envoy and Kubernetes operating experience, its 311.9 MB source tree is more platform than solution.

We ran it

Lab card: what happened when we ran higressScreenshot of higress (higress.ai)
Install✗ · 78s
Build
Repo24353 files~3,366,577 lines of source · 311.9 MB · 29 CI workflows · tests dir

Answers from our run

Does higress build from source?

The dependency install failed, and the project has no separate build step. We cloned commit ce209a2 into a clean Debian container with 3 CPUs and no project-specific setup.

Who should not use higress?

Developers expecting a normal go mod install from a plain clone: our install failed because go.mod points at external/go-control-plane, while the repository prepares that path through submodules and a prebuild script.

What are the alternatives to higress?

Envoy Gateway, Apache APISIX, Kong Gateway. Our Higress install ran for 78 seconds and failed before build or tests because the expected `external/go-control-plane/go.

Setup2/578-second install failed on a missing local replacement module
Docs4/5Good deployment map; source prerequisites are easy to miss
Community5/59,216 stars with same-day pushes and issue discussion
Maturity4/5v2.2.4 is active, with recent gateway edge cases reported

Who it’s for

Platform teams consolidating Kubernetes ingress, API management, model-provider routing, and MCP access.
Organizations already comfortable operating Envoy, Istio-derived control planes, Helm releases, and gateway policies.
Teams that need Wasm extensions in Go, Rust, or JavaScript without rebuilding the whole gateway.
Operators who want a local all-in-one trial before designing a production Kubernetes deployment.

Who it’s NOT for

Developers expecting a normal go mod install from a plain clone: our install failed because go.mod points at external/go-control-plane, while the repository prepares that path through submodules and a prebuild script.
Small services that only need TLS termination and basic reverse proxying: the measured checkout contains 24,353 files and about 3,366,577 source lines across an Istio and Envoy based platform.
Teams relying on the console as a complete multi-namespace source of truth: open issue 4609 reports working Ingress routes outside higress-system that the console did not display.
Operators combining custom asynchronous Wasm response handling with ext_proc without focused tests: issue 4606 reports a v2.2.4 sequence that returns an empty body for a single-frame stream.
Buyers who want one repository to contain every shipped surface: the README lists the console, standalone distribution, plugin server, and Wasm SDK as related repositories.

Setup reality

Our sandbox install failed with exit code 1 after 78 seconds. Go began downloading the 1.26.0 toolchain, then stopped because the local replacement external/go-control-plane/go.mod did not exist. Since install failed, no build or test result was produced.

The README's quick path runs a published all-in-one image and exposes ports 8001, 8080, and 8443. Production use adds upstream services, routes, certificates, policies, and model-provider credentials where applicable. Kubernetes deployments use Helm and may need a regional or private registry mirror.

A source build is a different path from the Docker quick start. The Makefile initializes submodules, and its prebuild script copies Envoy and Istio dependencies into external/ before running go mod tidy. The 311.9 MB checkout, multiple component repositories, and provider-specific policies make upgrades an operator task, not a single-binary swap.

Higress v2.2.4 combines an API gateway with AI and MCP policy

Higress v2.2.4 is an Envoy data plane with an Istio-derived control plane, an administrative console, and a library of Wasm plugins. It can operate as a Kubernetes ingress controller or Gateway API implementation, route ordinary microservices, and apply authentication or traffic rules. The AI gateway adds provider routing, token-aware limits, caching, and observability. MCP support can publish tools behind the same authentication, rate limiting, and audit layer. That combination is useful when these jobs already belong to one platform team.

The scale of the source matches that ambition: our commit ce209a2 checkout held 24,353 files, roughly 3,366,577 lines of source, and 311.9 MB before dependency installation. Higress also points to separate repositories for its console, standalone package, plugin server, and Go Wasm SDK. This is a family of components, even though the all-in-one image makes the first screen look like one product. An evaluation should map which repositories, images, registries, and release versions will enter the production supply chain.

The 29 CI workflows cover a platform, not a small proxy

Our scan found 29 CI workflow files and a tests directory. The README offers three jobs that could each justify a dedicated project: ingress, a microservice gateway connected to registries such as Nacos or Consul, and an AI gateway for model APIs and MCP servers. Consolidation can reduce duplicated policy, but it also couples release and failure domains. A routing change, plugin update, or control-plane problem deserves the same review as any other edge infrastructure change because all downstream APIs may share it.

The repository contained about 3.37 million source lines in our 311.9 MB checkout, yet no root Dockerfile was detected. That is not a contradiction with the documented Docker quick start: the README tells users to pull a published all-in-one image from a Higress registry. For production Kubernetes use, it points to Helm and supports overriding the image hub. Operators who require private registries should mirror every chosen component and Wasm plugin image, then pin versions instead of treating the quick start's latest tag as a deployment plan.

What happened when we ran it

Our sandbox install ran for 78 seconds and failed with exit code 1. Go first attempted to download toolchain 1.26.0, then resolved a dependency replacement for github.com/envoyproxy/go-control-plane to the local path ./external/go-control-plane. Installation stopped because external/go-control-plane/go.mod was absent. The log does not say that the upstream Go module is broken, and it does not show a network or compiler failure. It shows that the checkout was not prepared with the local module expected by its own go.mod.

Because the install failed, our 3-CPU, 8 GB unprivileged container did not reach a build or test step. The repository explains the missing preparation outside the top-level quick start: the Makefile's prebuild target initializes Git submodules, and tools/hack/prebuild.sh copies Istio and Envoy trees into external/ before go mod tidy. That is a valid source workflow, but it differs sharply from running the published image. A contributor should follow the Makefile path and budget for nested upstream code rather than beginning with a generic Go dependency command.

Open v2.2.4 reports show why plugin combinations need tests

Open issue 4606 describes a specific v2.2.4 filter sequence where a custom Wasm plugin pauses a single-frame streaming response while a downstream external-processing filter resumes. The reporter receives an empty response body after the stream ends before the plugin's asynchronous callback returns. This is not evidence that normal streaming fails. It is evidence that filter ordering, pause and resume behavior, single-frame delivery, and external processors need an integration test built from the exact chain a team intends to deploy.

Our 78-second install failure meant we did not run the console, proxy traffic, MCP sessions, or a Kubernetes control plane. Issue 4609 adds a separate operating concern: its reporter says Ingress resources from several namespaces routed correctly, while the console displayed only resources from higress-system. A team using Git as its source of truth may accept that limitation. A team expecting the console to inventory every live route should reproduce it before letting operators depend on the screen during an incident.

The August 27 push and v2.2.4 release show active maintenance

GitHub recorded a push on August 27, 2026, and release v2.2.4 was published on August 13. That release covers the core gateway and console, including Gateway API work, MCP protocol examples, plugin release evidence, routing changes, and security checks. The repository had 9,216 stars and 1,082 open issues and pull requests when fetched. The combined count is not a bug count. Recent issue updates, design discussions, and release work show a busy project whose buyers need disciplined version selection.

The 24,353-file checkout and 29 CI workflows explain both Higress's appeal and its cost. Envoy Gateway is the cleaner comparison when Kubernetes Gateway API support is the main requirement. Apache APISIX and Kong suit teams whose existing plugin and operating models already match those gateways. Higress is the better trial when model providers and MCP tools genuinely need the same policy plane as ordinary APIs. Start with the all-in-one image for learning, then evaluate the submodule build, Helm topology, registry policy, console coverage, and custom filter chain separately.

Alternatives

ProjectWhat it isPick it when
Envoy Gateway gh↗A Kubernetes Gateway API implementation built around Envoy Proxy.pick this instead when standard Gateway API routing is the priority and Higress's AI and MCP management are extra scope.
Apache APISIXA plugin-driven API gateway with dynamic routing and traffic policies.pick this instead when you prefer APISIX's Lua plugin model and do not need Higress's Istio-derived control plane.
Kong Gateway gh↗A widely used API gateway centered on plugins, services, and routes.pick this instead when Kong's operating model and plugin catalog already fit your organization.

What people are saying

  1. [github-trending] higress-group/higress

Sources

  1. Higress repository and README
  2. Higress v2.2.4 release
  3. Higress submodule configuration
  4. Higress source prebuild script
  5. Single-frame streaming filter report
  6. Multi-namespace console report

More self-hosted reviews

v2 · OpenShell · wigolo · Mindwtr · club-3090 · reclip · the whole board →