mirror of
https://github.com/gofiber/fiber.git
synced 2025-02-24 16:04:43 +00:00
1.3 KiB
1.3 KiB
Compress
Compression middleware for Fiber, it supports deflate
, gzip
and brotli
by default.
Example
package main
import (
"github.com/gofiber/fiber"
"github.com/gofiber/fiber/middleware"
)
func main() {
app := fiber.New()
// Default
app.Use(middleware.Compress())
// Custom compression level
app.Use(middleware.Compress(middleware.CompressLevelBestSpeed))
// Custom Config
app.Use(middleware.CompressWithConfig(middleware.LoggerConfig{
Next: func(ctx *fiber.Ctx) bool {
return strings.HasPrefix(ctx.Path(), "/static")
},
Level: middleware.CompressLevelBestCompression,
}))
app.Listen(3000)
}
Signatures
func Compress(level ...int) fiber.Handler {}
func CompressWithConfig(config CompressConfig) fiber.Handler {}
Config
type CompressConfig struct {
// Next defines a function to skip this middleware.
Next func(ctx *fiber.Ctx) bool
// Compression level for brotli, gzip and deflate
Level int
}
Compression Levels
const (
CompressLevelDisabled = -1
CompressLevelDefault = 0
CompressLevelBestSpeed = 1
CompressLevelBestCompression = 2
)
Default Config
var CompressConfigDefault = CompressConfig{
Next: nil,
Level: CompressLevelDefault,
}