A homebrew L7/L4 gateway & reverse proxy in Go. Learn-by-building, docs-first.
Performance benchmarks are documented in bench/README.md.
- HTTP/1.1 reverse proxy
- Host/Path-prefix routing
- Static upstreams + Smooth WRR
- Basic timeouts (read/write/upstream)
- Structured access log (JSON)
- Metrics: RPS, 4xx/5xx, upstream latency, active conns, route hits
- Access log fields & sampling
- Benchmark control knobs (non-user-facing)
- deterministic upstream connection policy (keepalive / idle timeout)
- benchmark-friendly mode (disable hot reload, background tasks)
- Basic rate limiting (local, token bucket)
- Circuit breaking (per-upstream / per-route)
- Request retries with backoff (idempotent only)
- Request hedging (optional, bounded)
- Header normalization and validation
- Configurable request / response header mutation
- Proper 1xx / 3xx handling
- Graceful handling of client disconnects