brotli: github.com/andybalholm/brotli Index | Files

package brotli

import "github.com/andybalholm/brotli"

Index

Package Files

backward_references.go backward_references_hq.go bit_cost.go bit_reader.go block_splitter.go block_splitter_command.go block_splitter_distance.go block_splitter_literal.go brotli_bit_stream.go cluster.go cluster_command.go cluster_distance.go cluster_literal.go command.go compress_fragment.go compress_fragment_two_pass.go constants.go context.go decode.go dictionary.go dictionary_hash.go encode.go encoder_dict.go entropy_encode.go entropy_encode_static.go fast_log.go find_match_length.go h10.go h5.go h6.go hash.go hash_composite.go hash_forgetful_chain.go hash_longest_match_quickly.go hash_rolling.go histogram.go http.go huffman.go literal_cost.go memory.go metablock.go metablock_command.go metablock_distance.go metablock_literal.go params.go platform.go prefix.go prefix_dec.go quality.go reader.go ringbuffer.go state.go static_dict.go static_dict_lut.go symbol_list.go transform.go utf8_util.go util.go write_bits.go writer.go

Constants

const (
    BestSpeed          = 0
    BestCompression    = 11
    DefaultCompression = 6
)

func HTTPCompressor Uses

func HTTPCompressor(w http.ResponseWriter, r *http.Request) io.WriteCloser

HTTPCompressor chooses a compression method (brotli, gzip, or none) based on the Accept-Encoding header, sets the Content-Encoding header, and returns a WriteCloser that implements that compression. The Close method must be called before the current HTTP handler returns.

Due to https://github.com/golang/go/issues/31753, the response will not be compressed unless you set a Content-Type header before you call HTTPCompressor.

type Reader Uses

type Reader struct {
    // contains filtered or unexported fields
}

func NewReader Uses

func NewReader(src io.Reader) *Reader

NewReader creates a new Reader reading the given reader.

func (*Reader) Read Uses

func (r *Reader) Read(p []byte) (n int, err error)

func (*Reader) Reset Uses

func (r *Reader) Reset(src io.Reader) error

Reset discards the Reader's state and makes it equivalent to the result of its original state from NewReader, but writing to src instead. This permits reusing a Reader rather than allocating a new one. Error is always nil

type Writer Uses

type Writer struct {
    // contains filtered or unexported fields
}

func NewWriter Uses

func NewWriter(dst io.Writer) *Writer

Writes to the returned writer are compressed and written to dst. It is the caller's responsibility to call Close on the Writer when done. Writes may be buffered and not flushed until Close.

func NewWriterLevel Uses

func NewWriterLevel(dst io.Writer, level int) *Writer

NewWriterLevel is like NewWriter but specifies the compression level instead of assuming DefaultCompression. The compression level can be DefaultCompression or any integer value between BestSpeed and BestCompression inclusive.

func NewWriterOptions Uses

func NewWriterOptions(dst io.Writer, options WriterOptions) *Writer

NewWriterOptions is like NewWriter but specifies WriterOptions

func (*Writer) Close Uses

func (w *Writer) Close() error

Close flushes remaining data to the decorated writer.

func (*Writer) Flush Uses

func (w *Writer) Flush() error

Flush outputs encoded data for all input provided to Write. The resulting output can be decoded to match all input before Flush, but the stream is not yet complete until after Close. Flush has a negative impact on compression.

func (*Writer) Reset Uses

func (w *Writer) Reset(dst io.Writer)

Reset discards the Writer's state and makes it equivalent to the result of its original state from NewWriter or NewWriterLevel, but writing to dst instead. This permits reusing a Writer rather than allocating a new one.

func (*Writer) Write Uses

func (w *Writer) Write(p []byte) (n int, err error)

Write implements io.Writer. Flush or Close must be called to ensure that the encoded bytes are actually flushed to the underlying Writer.

type WriterOptions Uses

type WriterOptions struct {
    // Quality controls the compression-speed vs compression-density trade-offs.
    // The higher the quality, the slower the compression. Range is 0 to 11.
    Quality int
    // LGWin is the base 2 logarithm of the sliding window size.
    // Range is 10 to 24. 0 indicates automatic configuration based on Quality.
    LGWin int
}

WriterOptions configures Writer.

Package brotli imports 11 packages (graph) and is imported by 51 packages. Updated 2020-08-05. Refresh now. Tools for package owners.