Skip to content
Snippets Groups Projects
README.md 1.13 KiB
Newer Older
  • Learn to ignore specific revisions
  • 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