fiber/docs/api/middleware/compress.md

2.0 KiB

id
compress

Compress

Compression middleware for Fiber that will compress the response using gzip, deflate and brotli compression depending on the Accept-Encoding header.

Signatures

func New(config ...Config) fiber.Handler

Examples

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:

// Initialize default config
app.Use(compress.New())

// Or extend your config for customization
app.Use(compress.New(compress.Config{
    Level: compress.LevelBestSpeed, // 1
}))

// Skip middleware for specific routes
app.Use(compress.New(compress.Config{
  Next:  func(c *fiber.Ctx) bool {
    return c.Path() == "/dont_compress"
  },
  Level: compress.LevelBestSpeed, // 1
}))

Config

Config

Property Type Description Default
Next func(*fiber.Ctx) bool Next defines a function to skip this middleware when returned true. nil
Level Level Level determines the compression algorithm. LevelDefault (0)

Possible values for the "Level" field are:

  • LevelDisabled (-1): Compression is disabled.
  • LevelDefault (0): Default compression level.
  • LevelBestSpeed (1): Best compression speed.
  • LevelBestCompression (2): Best compression.

Default Config

var ConfigDefault = Config{
    Next:  nil,
    Level: LevelDefault,
}

Constants

// Compression levels
const (
    LevelDisabled        = -1
    LevelDefault         = 0
    LevelBestSpeed       = 1
    LevelBestCompression = 2
)