1
0
mirror of https://github.com/gofiber/fiber.git synced 2025-02-24 16:04:43 +00:00
fiber/middleware/compress.md
2020-06-08 03:52:09 +02:00

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,
}