1
0
mirror of https://github.com/gofiber/fiber.git synced 2025-02-24 05:43:57 +00:00
fiber/middleware/compress.md

55 lines
1.2 KiB
Markdown
Raw Normal View History

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
```