Compression middleware for Fiber that will compress the response using gzip
, deflate
and brotli
compression depending on the Accept-Encoding header.
func New(config ...Config) fiber.Handler
Import the middleware package that is part of the Fiber web framework
import ("github.com/gofiber/fiber/v2""github.com/gofiber/fiber/v2/middleware/compress")
After you initiate your Fiber app, you can use the following possibilities:
// Default middleware configapp.Use(compress.New())// Provide a custom compression levelapp.Use(compress.New(compress.Config{Level: compress.LevelBestSpeed, // 1}))// Skip middleware for specific routesapp.Use(compress.New(compress.Config{Next: func(c *fiber.Ctx) bool {return c.Path() == "/dont_compress"},Level: compress.LevelBestSpeed, // 1}))
// Config defines the config for middleware.type Config struct {// Next defines a function to skip this middleware when returned true.//// Optional. Default: nilNext func(c *fiber.Ctx) bool// CompressLevel determines the compression algoritm//// Optional. Default: LevelDefault// LevelDisabled: -1// LevelDefault: 0// LevelBestSpeed: 1// LevelBestCompression: 2Level int}
var ConfigDefault = Config{Next: nil,Level: LevelDefault,}
// Compression levelsconst (LevelDisabled = -1LevelDefault = 0LevelBestSpeed = 1LevelBestCompression = 2)