Native data plane
Routing, upstream proxying, configuration and lifecycle stay in Go: fast to inspect, simple to deploy, easy to test.
GO COREGo-native infrastructure / Core-Wasm v0
Dun is a self-contained Go data plane for routing, proxying and policy. Application-specific behavior runs in capability-scoped WebAssembly extensions instead of expanding the trusted core.
The thesis
Gateways become difficult to reason about when every new policy becomes native code. Dun draws a hard line around the data plane and makes the extension boundary explicit.
That boundary is built for real operational questions: what can a plugin access, how much memory can it use, what happens when it fails, and how do we reload it without taking traffic down?
See the architectureArchitecture / v0
Routing, upstream proxying, configuration and lifecycle stay in Go: fast to inspect, simple to deploy, easy to test.
GO COREExtensions receive only the host imports granted by policy. Missing capabilities fail at instantiation instead of becoming implicit authority.
ISOLATED RUNTIMETraps, timeouts, cancellations and host-call failures are classified, recorded and contained. The core keeps serving.
OPERABLE BY DEFAULTA real local gateway
Run the complete example: a Go backend, Dun on the edge, a security-header extension, route policy and Prometheus metrics.
Open the gateway exampleOpen by design
Dun is early, public and deliberately opinionated. Star the repository to follow the experiment, or bring a real gateway problem to the table.
Build the boundary