High-Performance Core
Pingora’s async engine delivers Cloudflare-grade latency and throughput.
Built in Rust • Powered by Pingora • Extensible with Plugins
curl -fsSL https://nylon.sh/install | bashOne binary • Linux aarch64 / x86_64 • No external dependencies
Create config.yaml for listeners, Pingora tuning, and ACME storage.
http:
- 0.0.0.0:8080
config_dir: ./config
pingora:
daemon: false
threads: 4Describe backends, plugins, and routing rules inside config/.
services:
- name: backend
service_type: http
endpoints:
- ip: 127.0.0.1
port: 3000
routes:
- route:
type: host
value: localhost
paths:
- path:
- /
- /{*path}
service:
name: backendBring everything online and hot reload as you iterate.
nylon run -c config.yamlInject auth, rate limiting, caching, and observability logic without touching upstream services.
Serve thousands of domains with automated TLS, granular routing, and templated configs.
Harness WebSocket callbacks, broadcast rooms, and streaming response filters.
Rewrite payloads, split traffic, and de-risk backend migrations with per-route middleware.
plugin.AddPhaseHandler("authz", func(phase *sdk.PhaseHandler) {
phase.RequestFilter(func(ctx *sdk.PhaseRequestFilter) {
if ctx.Request().Header("X-API-Key") != ctx.GetPayload()["api_key"] {
res := ctx.Response()
res.RemoveHeader("Content-Length")
res.SetHeader("Transfer-Encoding", "chunked")
res.SetStatus(401)
res.BodyText("Unauthorized")
ctx.End()
return
}
ctx.Next()
})
phase.Logging(func(ctx *sdk.PhaseLogging) {
req, res := ctx.Request(), ctx.Response()
log.Printf("%s %s -> %d (%dms)", req.Method(), req.Path(), res.Status(), res.Duration())
ctx.Next()
})
})Go SDK is available today. Additional language SDKs (Rust, Zig, …) are in active development.
# Update configs without dropping connections
nylon service reloadtls:
- type: acme
provider: letsencrypt
domains:
- api.example.com
- app.example.com
acme:
email: [email protected]middleware:
- plugin: RequestHeaderModifier
payload:
set:
- name: x-request-id
value: "${uuid(v7)}"
- name: x-forwarded-for
value: "${request(client_ip)}"The programmable proxy your edge, SaaS, and real-time workloads deserve.