Optional adapters and extensions for zerohttp. Each module is standalone - import only what you need.
go get github.com/alexferl/zerohttp-contrib/<category>/<name>| Adapter | Description | Example |
|---|---|---|
adapters/huma |
OpenAPI 3.1 via Huma | examples/adapters/huma |
adapters/zerolog |
Structured logging via zerolog | examples/adapters/zerolog |
| Extension | Description | Example |
|---|---|---|
extensions/autocert |
Automatic TLS via Let's Encrypt | examples/extensions/autocert |
extensions/http3 |
HTTP/3 support via quic-go/quic-go | examples/extensions/http3 |
extensions/webtransport |
WebTransport support via quic-go/webtransport-go | examples/extensions/webtransport |
extensions/websocket |
WebSocket support via gorilla/websocket | examples/extensions/websocket |
| Middleware | Description | Example |
|---|---|---|
middleware/cache |
Redis store for response caching | examples/middleware/cache |
middleware/compress |
Brotli/Zstd compression | examples/middleware/compress |
middleware/idempotency |
Redis store for idempotency | examples/middleware/idempotency |
middleware/jwtauth |
JWT support via lestrrat-go/jwx | examples/middleware/jwtauth |
middleware/ratelimit |
Redis store for distributed limits | examples/middleware/ratelimit |
middleware/tracer |
OpenTelemetry tracer adapter | examples/middleware/tracer |
| Storage | Description |
|---|---|
storage |
Redis adapter implementing zerohttp/storage.Storage |
adapters/ # Interface adapters (logging, OpenAPI, etc.)
extensions/ # Protocol extensions (HTTP/3, WebTransport, etc.)
middleware/ # Pluggable middleware adapters
storage/ # Storage adapters (Redis, etc.)
Each subdirectory is an independent Go module with its own go.mod.
The modules in this repository demonstrate how to integrate specific third-party libraries with zerohttp.
If you need to use a different library (e.g., zap instead of zerolog, or a different Redis client), create your own module. Copy the adapter code from this repo, modify it for your library, and maintain it in your own project or as a separate module.
The zerohttp core is intentionally minimal with zero dependencies. This contrib repo provides examples - you are encouraged to build and maintain your own adapters for your specific needs.
MIT License - see LICENSE for details.