Initial implementation of lightmux-contrib, a sibling module to
lightmux that hosts opinionated middlewares with one sub-package per
middleware:
- realip: resolves the originating client IP from CF-Connecting-IP,
True-Client-IP, X-Real-IP, or X-Forwarded-For. Optional peer-CIDR
allowlist via netip.Prefix.
- requestlog: emits a structured http.request record (method, path,
status, duration, client) per request via splinter.
- recoverer: catches panics, wraps with errx under op "recoverer",
logs with stack, and writes a 500 response.
Each package exposes a single New(...) constructor returning
func(http.Handler) http.Handler. The contrib module intentionally
does not import lightmux — middlewares interoperate via the standard
stdlib middleware shape.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>