| 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 |
| ```bash |
| 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: |
| |
| ```go |
| 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][docs], as usual. |
| |
| |
| ## License |
| |
| [Apache 2.0][license]. |
| |
| |
| |
| |
| [docs]: https://godoc.org/github.com/NYTimes/gziphandler |
| [license]: https://github.com/NYTimes/gziphandler/blob/master/LICENSE |