2020-06-08 03:52:09 +02:00
|
|
|
# Compress
|
2020-07-02 11:56:07 +02:00
|
|
|
Compression middleware for Fiber with support for `deflate`, `gzip` and `brotli`.
|
2020-06-08 03:52:09 +02:00
|
|
|
|
|
|
|
### Example
|
2020-07-02 11:56:07 +02:00
|
|
|
Import the middleware package that is part of the Fiber web framework
|
2020-06-08 03:52:09 +02:00
|
|
|
```go
|
|
|
|
import (
|
|
|
|
"github.com/gofiber/fiber"
|
|
|
|
"github.com/gofiber/fiber/middleware"
|
|
|
|
)
|
2020-07-02 11:56:07 +02:00
|
|
|
```
|
2020-06-08 03:52:09 +02:00
|
|
|
|
2020-07-02 11:56:07 +02:00
|
|
|
After you initiate your Fiber app, you can use the following possibilities:
|
|
|
|
```go
|
|
|
|
// Default compression config
|
|
|
|
app.Use(middleware.Compress())
|
|
|
|
|
|
|
|
// Provide a custom compression level
|
|
|
|
app.Use(middleware.Compress(middleware.CompressLevelBestSpeed))
|
|
|
|
|
|
|
|
// Provide a full CompressConfig
|
|
|
|
app.Use(middleware.Compress(middleware.CompressConfig{
|
|
|
|
Next: func(c *fiber.Ctx) bool {
|
|
|
|
return c.Path() == "/ignore"
|
|
|
|
},
|
|
|
|
Level: CompressLevelDefault,
|
|
|
|
})
|
2020-06-08 03:52:09 +02:00
|
|
|
```
|
|
|
|
|
|
|
|
### Signatures
|
|
|
|
```go
|
2020-07-02 11:56:07 +02:00
|
|
|
func Compress(options ...interface{}) fiber.Handler {}
|
2020-06-08 03:52:09 +02:00
|
|
|
```
|
|
|
|
|
|
|
|
### Config
|
|
|
|
```go
|
|
|
|
type CompressConfig struct {
|
|
|
|
// Next defines a function to skip this middleware.
|
2020-07-02 11:56:07 +02:00
|
|
|
// Default: nil
|
|
|
|
Next func(*fiber.Ctx) bool
|
|
|
|
|
2020-06-08 03:52:09 +02:00
|
|
|
// Compression level for brotli, gzip and deflate
|
2020-07-02 11:56:07 +02:00
|
|
|
// Default: CompressLevelDefault
|
2020-06-08 03:52:09 +02:00
|
|
|
Level int
|
|
|
|
}
|
|
|
|
```
|
|
|
|
### Compression Levels
|
|
|
|
```go
|
|
|
|
const (
|
|
|
|
CompressLevelDisabled = -1
|
|
|
|
CompressLevelDefault = 0
|
|
|
|
CompressLevelBestSpeed = 1
|
|
|
|
CompressLevelBestCompression = 2
|
|
|
|
)
|
2020-07-02 11:56:07 +02:00
|
|
|
```
|