Skip to content

Decompress

Decompress middleware decompresses the HTTP request body when the Content-Encoding header is set to gzip.

All core middleware lives in the middleware package:

import "github.com/labstack/echo/v5/middleware"
e.Use(middleware.Decompress())
e := echo.New()
e.Use(middleware.DecompressWithConfig(middleware.DecompressConfig{
Skipper: middleware.DefaultSkipper,
}))

DecompressConfig · github.com/labstack/echo/v5@5196b9b

Fields from package source
FieldTypeDescriptionSource
Skipper Skipper Skipper defines a function to skip middleware. L19
GzipDecompressPool Decompressor GzipDecompressPool defines an interface to provide the sync.Pool used to create/store Gzip readers L22
MaxDecompressedSize int64 MaxDecompressedSize limits the maximum size of decompressed request body in bytes. If the decompressed body exceeds this limit, the middleware returns HTTP 413 error. This prevents zip bomb attacks where small compressed payloads decompress to huge sizes. Default: 100 * MB (104,857,600 bytes) Set to -1 to disable limits (not recommended in production). L29
Functions from package source
TypeSource
func Decompress() echo.MiddlewareFunc L53
func DecompressWithConfig(config DecompressConfig) echo.MiddlewareFunc L61
// Effective defaults applied when fields are left unset.
DecompressConfig{
Skipper: DefaultSkipper,
GzipDecompressPool: &DefaultGzipDecompressPool{},
MaxDecompressedSize: 100 * MB,
}