brotlihandler

package module
v0.0.2-0...-c5f3c99 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 23, 2020 License: BSD-2-Clause Imports: 5 Imported by: 0

README

Brotli Handler

This is a tiny Go package which wraps HTTP handlers to transparently compress the response body using Brotli or Gzip, 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.

This is the clone of Gorilla compress middleware with Brotli support. The most of the code was copied from the original files.

Install

go get -u github.com/miketth/brotlihandler

Usage

Call CompressHandler with any handler (an object which implements the http.Handler interface), and it'll return a new handler which compresses the response with Brotli or gzip as a fallback. For example:

package main

import (
	"io"
	"net/http"
	"github.com/miketth/brotlihandler"
)

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

	withBr := brotlihandler.CompressHandler(withoutBr)

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

Documentation

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

License

BSD 2-Clause.

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func CompressHandler

func CompressHandler(h http.Handler) http.Handler

CompressHandler gzip/brotli compresses HTTP responses for clients that support it via the 'Accept-Encoding' header.

Compressing TLS traffic may leak the page contents to an attacker if the page contains user input: http://security.stackexchange.com/a/102015/12208

func CompressHandlerLevel

func CompressHandlerLevel(h http.Handler, level int) http.Handler

CompressHandlerLevel gzip/brotli compresses HTTP responses with specified compression level for clients that support it via the 'Accept-Encoding' header.

The compression level should be valid for encodings you use

Types

This section is empty.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL