Loading documentation...
Loading documentation...
Loading documentation...
Compresses HTTP responses using gzip or deflate compression.
s.Use(middleware.Compress())s.Use(middleware.CompressWithConfig(middleware.CompressConfig{
Level: gzip.BestCompression, // 1-9, or gzip.DefaultCompression
MinSize: 1024, // Only compress if >= 1KB
Types: []string{
"text/",
"application/json",
"application/javascript",
},
SkipFunc: func(r *http.Request) bool {
// Don't compress small responses
return false
},
}))Accept-Encoding headergzip.DefaultCompression (-1) - Default compression levelgzip.BestSpeed (1) - Fastest compressiongzip.BestCompression (9) - Best compression ratioOnly compress responses above a certain size:
s.Use(middleware.CompressWithConfig(middleware.CompressConfig{
MinSize: 1024, // Only compress if >= 1KB
}))Small responses may not benefit from compression due to overhead.
Specify which content types to compress:
s.Use(middleware.CompressWithConfig(middleware.CompressConfig{
Types: []string{
"text/html",
"text/css",
"text/javascript",
"application/json",
"application/javascript",
"application/xml",
"image/svg+xml",
},
}))Use prefix matching with trailing slash:
s.Use(middleware.CompressWithConfig(middleware.CompressConfig{
Types: []string{
"text/", // All text/* types
"application/", // All application/* types
},
}))Skip compression for specific requests:
s.Use(middleware.CompressWithConfig(middleware.CompressConfig{
SkipFunc: func(r *http.Request) bool {
// Don't compress already compressed content
return r.URL.Path == "/compressed-file.gz"
},
}))The middleware respects the Accept-Encoding header:
gzip, uses gzip compressiondeflate, uses deflate compressionThe middleware uses object pooling for compression writers to minimize allocations:
s := helix.New()
// Basic compression
s.Use(middleware.Compress())
// High compression for text content
s.Use(middleware.CompressWithConfig(middleware.CompressConfig{
Level: gzip.BestCompression,
MinSize: 512,
Types: []string{
"text/",
"application/json",
},
}))Compresses HTTP responses using gzip or deflate compression.
s.Use(middleware.Compress())s.Use(middleware.CompressWithConfig(middleware.CompressConfig{
Level: gzip.BestCompression, // 1-9, or gzip.DefaultCompression
MinSize: 1024, // Only compress if >= 1KB
Types: []string{
"text/",
"application/json",
"application/javascript",
},
SkipFunc: func(r *http.Request) bool {
// Don't compress small responses
return false
},
}))Accept-Encoding headergzip.DefaultCompression (-1) - Default compression levelgzip.BestSpeed (1) - Fastest compressiongzip.BestCompression (9) - Best compression ratioOnly compress responses above a certain size:
s.Use(middleware.CompressWithConfig(middleware.CompressConfig{
MinSize: 1024, // Only compress if >= 1KB
}))Small responses may not benefit from compression due to overhead.
Specify which content types to compress:
s.Use(middleware.CompressWithConfig(middleware.CompressConfig{
Types: []string{
"text/html",
"text/css",
"text/javascript",
"application/json",
"application/javascript",
"application/xml",
"image/svg+xml",
},
}))Use prefix matching with trailing slash:
s.Use(middleware.CompressWithConfig(middleware.CompressConfig{
Types: []string{
"text/", // All text/* types
"application/", // All application/* types
},
}))Skip compression for specific requests:
s.Use(middleware.CompressWithConfig(middleware.CompressConfig{
SkipFunc: func(r *http.Request) bool {
// Don't compress already compressed content
return r.URL.Path == "/compressed-file.gz"
},
}))The middleware respects the Accept-Encoding header:
gzip, uses gzip compressiondeflate, uses deflate compressionThe middleware uses object pooling for compression writers to minimize allocations:
s := helix.New()
// Basic compression
s.Use(middleware.Compress())
// High compression for text content
s.Use(middleware.CompressWithConfig(middleware.CompressConfig{
Level: gzip.BestCompression,
MinSize: 512,
Types: []string{
"text/",
"application/json",
},
}))s.Use(middleware.Compress())s.Use(middleware.CompressWithConfig(middleware.CompressConfig{
Level: gzip.BestCompression, // 1-9, or gzip.DefaultCompression
MinSize: 1024, // Only compress if >= 1KB
Types: []string{
"text/",
"application/json",
"application/javascript",
},
SkipFunc: func(r *http.Request) bool {
// Don't compress small responses
return false
},
}))s.Use(middleware.CompressWithConfig(middleware.CompressConfig{
MinSize: 1024, // Only compress if >= 1KB
}))s.Use(middleware.CompressWithConfig(middleware.CompressConfig{
Types: []string{
"text/html",
"text/css",
"text/javascript",
"application/json",
"application/javascript",
"application/xml",
"image/svg+xml",
},
}))s.Use(middleware.CompressWithConfig(middleware.CompressConfig{
Types: []string{
"text/", // All text/* types
"application/", // All application/* types
},
}))s.Use(middleware.CompressWithConfig(middleware.CompressConfig{
SkipFunc: func(r *http.Request) bool {
// Don't compress already compressed content
return r.URL.Path == "/compressed-file.gz"
},
}))s := helix.New()
// Basic compression
s.Use(middleware.Compress())
// High compression for text content
s.Use(middleware.CompressWithConfig(middleware.CompressConfig{
Level: gzip.BestCompression,
MinSize: 512,
Types: []string{
"text/",
"application/json",
},
}))s.Use(middleware.Compress())s.Use(middleware.CompressWithConfig(middleware.CompressConfig{
Level: gzip.BestCompression, // 1-9, or gzip.DefaultCompression
MinSize: 1024, // Only compress if >= 1KB
Types: []string{
"text/",
"application/json",
"application/javascript",
},
SkipFunc: func(r *http.Request) bool {
// Don't compress small responses
return false
},
}))s.Use(middleware.CompressWithConfig(middleware.CompressConfig{
MinSize: 1024, // Only compress if >= 1KB
}))s.Use(middleware.CompressWithConfig(middleware.CompressConfig{
Types: []string{
"text/html",
"text/css",
"text/javascript",
"application/json",
"application/javascript",
"application/xml",
"image/svg+xml",
},
}))s.Use(middleware.CompressWithConfig(middleware.CompressConfig{
Types: []string{
"text/", // All text/* types
"application/", // All application/* types
},
}))s.Use(middleware.CompressWithConfig(middleware.CompressConfig{
SkipFunc: func(r *http.Request) bool {
// Don't compress already compressed content
return r.URL.Path == "/compressed-file.gz"
},
}))s := helix.New()
// Basic compression
s.Use(middleware.Compress())
// High compression for text content
s.Use(middleware.CompressWithConfig(middleware.CompressConfig{
Level: gzip.BestCompression,
MinSize: 512,
Types: []string{
"text/",
"application/json",
},
}))