Skip to content

Repository files navigation

zerohttp-contrib Go Reference Go Report Card Coverage Status

Optional adapters and extensions for zerohttp. Each module is standalone - import only what you need.

Installation

go get github.com/alexferl/zerohttp-contrib/<category>/<name>

Adapters

Adapter Description Example
adapters/huma OpenAPI 3.1 via Huma examples/adapters/huma
adapters/zerolog Structured logging via zerolog examples/adapters/zerolog

Extensions

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

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

Storage Description
storage Redis adapter implementing zerohttp/storage.Storage

Structure

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.

Reference Implementations

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.

License

MIT License - see LICENSE for details.

About

Optional adapters and extensions for zerohttp

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages