middleware

package
v1.5.4 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 23, 2026 License: Apache-2.0 Imports: 0 Imported by: 0

Documentation

Overview

Package middleware is the umbrella for celeris's production-ready middleware catalog.

It declares no exported symbols of its own. Each piece of middleware lives in its own subpackage and exposes a New constructor returning a celeris.HandlerFunc (for example cors.New, jwt.New, ratelimit.New, compress.New). Install them at one of two points:

  • Server.Use installs route middleware that runs after the router matches a request (logging, recovery, auth, CORS, rate limiting, compression, ...).
  • Server.Pre installs pre-routing middleware that runs before matching and may mutate the request method, path, scheme, host, or client IP (proxy, redirect, rewrite, methodoverride). Pre-routing middleware that writes a response MUST return without calling c.Next().

Ordering matters: each layer should see the context the layers before it established. See the documentation hub below for the recommended install order, per-middleware configuration, and cross-cutting conventions (auth stacking, the Vary header contract, and how the observe/metrics/otel measurement systems relate).

Documentation

Full guides and examples: https://goceleris.dev/docs/middleware

Directories

Path Synopsis
Package adapters bridges stdlib net/http middleware and handlers into celeris handler chains.
Package adapters bridges stdlib net/http middleware and handlers into celeris handler chains.
Package basicauth provides HTTP Basic Authentication middleware for celeris.
Package basicauth provides HTTP Basic Authentication middleware for celeris.
Package bodylimit provides request body size limiting middleware for celeris.
Package bodylimit provides request body size limiting middleware for celeris.
Package cache provides a pluggable HTTP response cache middleware.
Package cache provides a pluggable HTTP response cache middleware.
Package circuitbreaker provides circuit breaker middleware for celeris.
Package circuitbreaker provides circuit breaker middleware for celeris.
compress module
Package cors provides Cross-Origin Resource Sharing (CORS) middleware for Celeris.
Package cors provides Cross-Origin Resource Sharing (CORS) middleware for Celeris.
Package csrf provides Cross-Site Request Forgery protection middleware for celeris using the double-submit cookie pattern, with optional server-side token storage for enhanced security.
Package csrf provides Cross-Site Request Forgery protection middleware for celeris using the double-submit cookie pattern, with optional server-side token storage for enhanced security.
memcachedstore
Package memcachedstore provides a store.KV CSRF token backend built on the native celeris driver/memcached client.
Package memcachedstore provides a store.KV CSRF token backend built on the native celeris driver/memcached client.
redisstore
Package redisstore provides a store.KV CSRF token backend built on the native celeris driver/redis client.
Package redisstore provides a store.KV CSRF token backend built on the native celeris driver/redis client.
Package debug provides a debug/introspection middleware for celeris.
Package debug provides a debug/introspection middleware for celeris.
Package etag provides ETag generation and conditional-response middleware for celeris.
Package etag provides ETag generation and conditional-response middleware for celeris.
Package healthcheck provides Kubernetes-style health probe middleware for celeris.
Package healthcheck provides Kubernetes-style health probe middleware for celeris.
Package idempotency implements the HTTP Idempotency-Key request pattern for Celeris.
Package idempotency implements the HTTP Idempotency-Key request pattern for Celeris.
internal
extract
Package extract provides a shared token/value extractor for middleware that reads values from request headers, query parameters, cookies, form fields, or path parameters using a "source:name[:prefix]" lookup string format.
Package extract provides a shared token/value extractor for middleware that reads values from request headers, query parameters, cookies, form fields, or path parameters using a "source:name[:prefix]" lookup string format.
fakememcached
Package fakememcached is a tiny text-protocol fake memcached server for middleware store-adapter tests.
Package fakememcached is a tiny text-protocol fake memcached server for middleware store-adapter tests.
fakeredis
Package fakeredis is a tiny RESP2 fake server used by celeris middleware tests that adapt onto the native driver/redis client.
Package fakeredis is a tiny RESP2 fake server used by celeris middleware tests that adapt onto the native driver/redis client.
fnv1a
Package fnv1a provides a fast, allocation-free FNV-1a string hash and power-of-two rounding for sharded data structures.
Package fnv1a provides a fast, allocation-free FNV-1a string hash and power-of-two rounding for sharded data structures.
randutil
Package randutil provides a shared, buffered cryptographic random token generator that amortizes crypto/rand syscalls across middleware packages.
Package randutil provides a shared, buffered cryptographic random token generator that amortizes crypto/rand syscalls across middleware packages.
sf
Package sf provides a tiny generic singleflight-style coalescer used internally by middlewares that need to dedupe concurrent in-flight producers for the same key (middleware/cache — and, potentially, future adapters).
Package sf provides a tiny generic singleflight-style coalescer used internally by middlewares that need to dedupe concurrent in-flight producers for the same key (middleware/cache — and, potentially, future adapters).
testutil
Package testutil provides test helpers and assertions for middleware tests.
Package testutil provides test helpers and assertions for middleware tests.
jwt
Package jwt provides JSON Web Token authentication middleware for celeris.
Package jwt provides JSON Web Token authentication middleware for celeris.
internal/jwtparse
Package jwtparse implements a zero-allocation JWT parser and signer.
Package jwtparse implements a zero-allocation JWT parser and signer.
jwtcache
Package jwtcache provides a convenience store.KV constructor for JWT middleware's JWKSCache option.
Package jwtcache provides a convenience store.KV constructor for JWT middleware's JWKSCache option.
jwtmccache
Package jwtmccache provides a convenience store.KV constructor for JWT middleware's JWKSCache option backed by memcached.
Package jwtmccache provides a convenience store.KV constructor for JWT middleware's JWKSCache option backed by memcached.
Package keyauth provides API key authentication middleware for celeris.
Package keyauth provides API key authentication middleware for celeris.
Package logger provides HTTP request logging middleware for celeris.
Package logger provides HTTP request logging middleware for celeris.
Package methodoverride provides HTTP method override middleware for celeris.
Package methodoverride provides HTTP method override middleware for celeris.
metrics module
otel module
Package overload is a 5-stage CPU degradation ladder driven by observe.Collector.
Package overload is a 5-stage CPU degradation ladder driven by observe.Collector.
Package pprof provides a middleware that exposes Go runtime profiling data via the standard net/http/pprof handlers.
Package pprof provides a middleware that exposes Go runtime profiling data via the standard net/http/pprof handlers.
protobuf module
Package proxy extracts the real client IP, scheme, and host from trusted reverse proxy headers.
Package proxy extracts the real client IP, scheme, and host from trusted reverse proxy headers.
Package ratelimit provides token-bucket and sliding-window rate limiting middleware for Celeris.
Package ratelimit provides token-bucket and sliding-window rate limiting middleware for Celeris.
memcachedstore
Package memcachedstore provides a memcached-backed ratelimit.Store (token-bucket) built on the native celeris driver/memcached client.
Package memcachedstore provides a memcached-backed ratelimit.Store (token-bucket) built on the native celeris driver/memcached client.
redisstore
Package redisstore provides a Redis-backed ratelimit.Store (token-bucket) built on the native celeris driver/redis client.
Package redisstore provides a Redis-backed ratelimit.Store (token-bucket) built on the native celeris driver/redis client.
Package recovery provides panic recovery middleware for celeris.
Package recovery provides panic recovery middleware for celeris.
Package redirect provides HTTP redirect middleware for common URL normalization patterns in Celeris.
Package redirect provides HTTP redirect middleware for common URL normalization patterns in Celeris.
Package requestid provides request ID middleware for celeris.
Package requestid provides request ID middleware for celeris.
Package rewrite provides pre-routing URL rewrite middleware for celeris, matching the request path against ordered regular-expression rules.
Package rewrite provides pre-routing URL rewrite middleware for celeris, matching the request path against ordered regular-expression rules.
Package secure provides OWASP security headers middleware for celeris.
Package secure provides OWASP security headers middleware for celeris.
Package session provides server-side session management middleware for celeris.
Package session provides server-side session management middleware for celeris.
memcachedstore
Package memcachedstore provides a store.KV session backend built on the native celeris driver/memcached client.
Package memcachedstore provides a store.KV session backend built on the native celeris driver/memcached client.
postgresstore
Package postgresstore provides a store.KV session backend built on the native celeris driver/postgres client.
Package postgresstore provides a store.KV session backend built on the native celeris driver/postgres client.
redisstore
Package redisstore provides a store.KV session backend built on the native celeris driver/redis client.
Package redisstore provides a store.KV session backend built on the native celeris driver/redis client.
Package singleflight provides request-coalescing middleware for celeris.
Package singleflight provides request-coalescing middleware for celeris.
Package sse provides Server-Sent Events (SSE) middleware for celeris.
Package sse provides Server-Sent Events (SSE) middleware for celeris.
Package static serves static files from the OS filesystem or an fs.FS.
Package static serves static files from the OS filesystem or an fs.FS.
Package store defines the unified byte-level key-value interface shared by celeris middleware (session, csrf, cache, idempotency, SSE replay).
Package store defines the unified byte-level key-value interface shared by celeris middleware (session, csrf, cache, idempotency, SSE replay).
Package swagger provides OpenAPI specification viewer middleware for celeris.
Package swagger provides OpenAPI specification viewer middleware for celeris.
Package timeout provides request timeout middleware for celeris.
Package timeout provides request timeout middleware for celeris.
Package websocket provides a zero-dependency native WebSocket middleware for celeris, implementing RFC 6455.
Package websocket provides a zero-dependency native WebSocket middleware for celeris, implementing RFC 6455.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL