brotli

package module
v0.0.0-...-804b483 Latest Latest
Warning

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

Go to latest
Published: Dec 18, 2024 License: MIT Imports: 6 Imported by: 0

README

This is a copy of github.com/google/brotli revision 509d4419bd (Dec 22 2022) adjusted to build as a single Go package (without pre-installed C libraries). All the files from brotli/c/{enc,dec,common}/.[ch] and go/.go were copied to one directory and renamed to avoid collisions, with #includes updated.

cmd/brotli is a simple compression program for testing.

Documentation

Overview

Package cbrotli compresses and decompresses data with C-Brotli library.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Decode

func Decode(encodedData []byte) ([]byte, error)

Decode decodes Brotli encoded data.

func Encode

func Encode(content []byte, options WriterOptions) ([]byte, error)

Encode returns content encoded with Brotli.

Types

type Reader

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

Reader implements io.ReadCloser by reading Brotli-encoded data from an underlying Reader.

func NewReader

func NewReader(src io.Reader) *Reader

NewReader initializes new Reader instance. Close MUST be called to free resources.

func (*Reader) Close

func (r *Reader) Close() error

Close implements io.Closer. Close MUST be invoked to free native resources.

func (*Reader) Read

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

type Writer

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

Writer implements io.WriteCloser by writing Brotli-encoded data to an underlying Writer.

func NewWriter

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

NewWriter initializes new Writer instance. Close MUST be called to free resources.

func (*Writer) Close

func (w *Writer) Close() error

Close flushes remaining data to the decorated writer and frees C resources.

func (*Writer) Flush

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) Write

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

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.

Directories

Path Synopsis
cmd

Jump to

Keyboard shortcuts

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