Documentation ¶
Overview ¶
Package gzip provides a simple middleware layer that performs gzip compression on the response.
Index ¶
Constants ¶
const ExtWildCard = "*"
ExtWildCard is the wildcard for extensions.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Config ¶ added in v0.7.2
type Config struct { RequestFilters []RequestFilter ResponseFilters []ResponseFilter Level int // Compression level }
Config holds the configuration for Gzip middleware
type ExtFilter ¶ added in v0.7.2
type ExtFilter struct { // Exts is the file name extensions to accept Exts Set }
ExtFilter is RequestFilter for file name extensions.
func DefaultExtFilter ¶ added in v0.7.3
func DefaultExtFilter() ExtFilter
DefaultExtFilter creates an ExtFilter with default extensions.
type Gzip ¶
type Gzip struct { Next middleware.Handler Configs []Config }
Gzip is a middleware type which gzips HTTP responses. It is imperative that any handler which writes to a gzipped response specifies the Content-Type, otherwise some clients will assume application/x-gzip and try to download a file.
type LengthFilter ¶ added in v0.8.1
type LengthFilter int64
LengthFilter is ResponseFilter for minimum content length.
func (LengthFilter) ShouldCompress ¶ added in v0.8.1
func (l LengthFilter) ShouldCompress(w http.ResponseWriter) bool
ShouldCompress returns if content length is greater than or equals to minimum length.
type PathFilter ¶ added in v0.7.2
type PathFilter struct { // IgnoredPaths is the paths to ignore IgnoredPaths Set }
PathFilter is RequestFilter for request path.
func (PathFilter) ShouldCompress ¶ added in v0.7.2
func (p PathFilter) ShouldCompress(r *http.Request) bool
ShouldCompress checks if the request path matches any of the registered paths to ignore. It returns false if an ignored path is found and true otherwise.
type RequestFilter ¶ added in v0.8.1
type RequestFilter interface { // ShouldCompress tells if gzip compression // should be done on the request. ShouldCompress(*http.Request) bool }
RequestFilter determines if a request should be gzipped.
type ResponseFilter ¶ added in v0.8.1
type ResponseFilter interface {
ShouldCompress(http.ResponseWriter) bool
}
ResponseFilter determines if the response should be gzipped.
type ResponseFilterWriter ¶ added in v0.8.1
type ResponseFilterWriter struct {
// contains filtered or unexported fields
}
ResponseFilterWriter validates ResponseFilters. It writes gzip compressed data if ResponseFilters are satisfied or uncompressed data otherwise.
func NewResponseFilterWriter ¶ added in v0.8.1
func NewResponseFilterWriter(filters []ResponseFilter, gz *gzipResponseWriter) *ResponseFilterWriter
NewResponseFilterWriter creates and initializes a new ResponseFilterWriter.
func (ResponseFilterWriter) Hijack ¶ added in v0.8.2
func (w ResponseFilterWriter) Hijack() (net.Conn, *bufio.ReadWriter, error)
Hijack implements http.Hijacker. It simply wraps the underlying ResponseWriter's Hijack method if there is one, or returns an error.
func (*ResponseFilterWriter) Write ¶ added in v0.8.1
func (r *ResponseFilterWriter) Write(b []byte) (int, error)
Write wraps underlying Write method and compresses if filters are satisfied
func (*ResponseFilterWriter) WriteHeader ¶ added in v0.8.1
func (r *ResponseFilterWriter) WriteHeader(code int)
WriteHeader wraps underlying WriteHeader method and compresses if filters are satisfied.
type Set ¶ added in v0.7.2
type Set map[string]struct{}
Set stores distinct strings.
func (Set) ContainsFunc ¶ added in v0.7.2
ContainsFunc is similar to Contains. It iterates all the elements in the set and passes each to f. It returns true on the first call to f that returns true and false otherwise.