compress: github.com/dsnet/compress Index | Files | Directories

package compress

import "github.com/dsnet/compress"

Package compress is a collection of compression libraries.

Index

Package Files

api.go

type BufferedReader Uses

type BufferedReader interface {
    io.Reader

    // Buffered returns the number of bytes currently buffered.
    //
    // This value becomes invalid following the next Read/Discard operation.
    Buffered() int

    // Peek returns the next n bytes without advancing the reader.
    //
    // If Peek returns fewer than n bytes, it also returns an error explaining
    // why the peek is short. Peek must support peeking of at least 8 bytes.
    // If 0 <= n <= Buffered(), Peek is guaranteed to succeed without reading
    // from the underlying io.Reader.
    //
    // This result becomes invalid following the next Read/Discard operation.
    Peek(n int) ([]byte, error)

    // Discard skips the next n bytes, returning the number of bytes discarded.
    //
    // If Discard skips fewer than n bytes, it also returns an error.
    // If 0 <= n <= Buffered(), Discard is guaranteed to succeed without reading
    // from the underlying io.Reader.
    Discard(n int) (int, error)
}

BufferedReader is an interface accepted by all decompression Readers. It guarantees that the decompressor never reads more data than is necessary from the underlying io.Reader. Since BufferedReader allows a decompressor to peek at bytes further along in the stream without advancing the read pointer, decompression can experience a significant performance gain when provided a reader that satisfies this interface. Thus, a decompressor will prefer this interface over ByteReader for performance reasons.

The bufio.Reader satisfies this interface.

type ByteReader Uses

type ByteReader interface {
    io.Reader
    io.ByteReader
}

ByteReader is an interface accepted by all decompression Readers. It guarantees that the decompressor never reads more data than is necessary from the underlying io.Reader.

type Error Uses

type Error interface {
    error
    CompressError()

    // IsDeprecated reports the use of a deprecated and unsupported feature.
    IsDeprecated() bool

    // IsCorrupted reports whether the input stream was corrupted.
    IsCorrupted() bool
}

The Error interface identifies all compression related errors.

Directories

PathSynopsis
brotliPackage brotli implements the Brotli compressed data format, described in RFC 7932.
bzip2Package bzip2 implements the BZip2 compressed data format.
bzip2/internal/saisPackage sais implements a linear time suffix array algorithm.
flatePackage flate implements the DEFLATE compressed data format, described in RFC 1951.
internalPackage internal is a collection of common compression algorithms.
internal/cgo/brotliPackage brotli implements the Brotli compressed data format using C wrappers.
internal/cgo/bzip2Package bzip2 implements the BZip2 compressed data format using C wrappers.
internal/cgo/flatePackage flate implements the DEFLATE compressed data format, described in RFC 1951, using C wrappers.
internal/cgo/lzmaPackage lzma implements the LZMA2 compressed data format using C wrappers.
internal/cgo/zstdPackage zstd implements the Zstandard compressed data format using C wrappers.
internal/errorsPackage errors implements functions to manipulate compression errors.
internal/prefixPackage prefix implements bit readers and writers that use prefix encoding.
internal/testutilPackage testutil is a collection of testing helper methods.
internal/tool/benchBenchmark tool to compare performance between multiple compression implementations.
internal/tool/bitgenBitGen to generate a binary from a BitGen formatting input.
xflatePackage xflate implements the XFLATE compressed data format.
xflate/internal/metaPackage meta implements the XFLATE meta encoding scheme.

Package compress imports 3 packages (graph) and is imported by 2 packages. Updated 2017-12-12. Refresh now. Tools for package owners.