gotty/vendor/github.com/NYTimes/gziphandler
2020-02-28 08:42:08 +02:00
..
.gitignore Enable gzip compression 2017-08-22 17:31:27 +09:00
.travis.yml switched to go-mod, updated codegangsta/cli -> urfave/cli 2020-02-28 08:42:08 +02:00
CODE_OF_CONDUCT.md Enable gzip compression 2017-08-22 17:31:27 +09:00
CONTRIBUTING.md Enable gzip compression 2017-08-22 17:31:27 +09:00
go.mod switched to go-mod, updated codegangsta/cli -> urfave/cli 2020-02-28 08:42:08 +02:00
go.sum switched to go-mod, updated codegangsta/cli -> urfave/cli 2020-02-28 08:42:08 +02:00
gzip_go18.go Enable gzip compression 2017-08-22 17:31:27 +09:00
gzip.go switched to go-mod, updated codegangsta/cli -> urfave/cli 2020-02-28 08:42:08 +02:00
LICENSE switched to go-mod, updated codegangsta/cli -> urfave/cli 2020-02-28 08:42:08 +02:00
README.md switched to go-mod, updated codegangsta/cli -> urfave/cli 2020-02-28 08:42:08 +02:00

Gzip Handler

This is a tiny Go package which wraps HTTP handlers to transparently gzip the response body, for clients which support it. Although it's usually simpler to leave that to a reverse proxy (like nginx or Varnish), this package is useful when that's undesirable.

Install

go get -u github.com/NYTimes/gziphandler

Usage

Call GzipHandler with any handler (an object which implements the http.Handler interface), and it'll return a new handler which gzips the response. For example:

package main

import (
	"io"
	"net/http"
	"github.com/NYTimes/gziphandler"
)

func main() {
	withoutGz := http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
		w.Header().Set("Content-Type", "text/plain")
		io.WriteString(w, "Hello, World")
	})

	withGz := gziphandler.GzipHandler(withoutGz)

	http.Handle("/", withGz)
	http.ListenAndServe("0.0.0.0:8000", nil)
}

Documentation

The docs can be found at godoc.org, as usual.

License

Apache 2.0.