package flate
Import Path
github.com/klauspost/compress/flate (on go.dev)
Dependency Relation
imports 11 packages, and imported by 3 packages
Involved Source Files
deflate.go
dict_decoder.go
fast_encoder.go
huffman_bit_writer.go
huffman_code.go
huffman_sortByFreq.go
huffman_sortByLiteral.go
Package flate implements the DEFLATE compressed data format, described in
RFC 1951. The gzip and zlib packages implement access to DEFLATE-based file
formats.
inflate_gen.go
level1.go
level2.go
level3.go
level4.go
level5.go
level6.go
matchlen_amd64.go
regmask_amd64.go
stateless.go
token.go
matchlen_amd64.s
Package-Level Type Names (total 7)
A CorruptInputError reports the presence of corrupt input at a given offset.
An InternalError reports an error in the flate code itself.
( InternalError) Error() string
InternalError : error
Reader is the actual read interface needed by NewReader.
If the passed in io.Reader does not also have ReadByte,
the NewReader will introduce its own buffering.
( Reader) Read(p []byte) (n int, err error)
( Reader) ReadByte() (byte, error)
*bufio.Reader
bufio.ReadWriter
*bytes.Buffer
*bytes.Reader
compress/flate.Reader (interface)
*strings.Reader
Reader : compress/flate.Reader
Reader : io.ByteReader
Reader : io.Reader
A ReadError reports an error encountered while reading input.
Deprecated: No longer returned.
Resetter resets a ReadCloser returned by NewReader or NewReaderDict to
to switch to a new underlying Reader. This permits reusing a ReadCloser
instead of allocating a new one.
Reset discards any buffered data and resets the Resetter as if it was
newly initialized with the given reader.
github.com/klauspost/compress/zlib.Resetter (interface)
compress/flate.Resetter (interface)
compress/zlib.Resetter (interface)
Resetter : github.com/klauspost/compress/zlib.Resetter
Resetter : compress/flate.Resetter
Resetter : compress/zlib.Resetter
A WriteError reports an error encountered while writing output.
Deprecated: No longer returned.
A Writer takes data written to it and writes the compressed
form of that data to an underlying writer (see NewWriter).
Close flushes and closes the writer.
Flush flushes any pending data to the underlying writer.
It is useful mainly in compressed network protocols, to ensure that
a remote reader has enough data to reconstruct a packet.
Flush does not return until the data has been written.
Calling Flush when there is no pending data still causes the Writer
to emit a sync marker of at least 4 bytes.
If the underlying writer returns an error, Flush returns that error.
In the terminology of the zlib library, Flush is equivalent to Z_SYNC_FLUSH.
Reset discards the writer's state and makes it equivalent to
the result of NewWriter or NewWriterDict called with dst
and w's level and dictionary.
ResetDict discards the writer's state and makes it equivalent to
the result of NewWriter or NewWriterDict called with dst
and w's level, but sets a specific dictionary.
Write writes data to w, which will eventually write the
compressed form of data to its underlying writer.
*Writer : github.com/valyala/fasthttp/stackless.Writer
*Writer : internal/bisect.Writer
*Writer : io.Closer
*Writer : io.WriteCloser
*Writer : io.Writer
func NewWriter(w io.Writer, level int) (*Writer, error)
func NewWriterDict(w io.Writer, level int, dict []byte) (*Writer, error)
func NewWriterWindow(w io.Writer, windowSize int) (*Writer, error)
Package-Level Functions (total 7)
NewReader returns a new ReadCloser that can be used
to read the uncompressed version of r.
If r does not also implement io.ByteReader,
the decompressor may read more data than necessary from r.
It is the caller's responsibility to call Close on the ReadCloser
when finished reading.
The ReadCloser returned by NewReader also implements Resetter.
NewReaderDict is like NewReader but initializes the reader
with a preset dictionary. The returned Reader behaves as if
the uncompressed data stream started with the given dictionary,
which has already been read. NewReaderDict is typically used
to read data compressed by NewWriterDict.
The ReadCloser returned by NewReader also implements Resetter.
NewStatelessWriter will do compression but without maintaining any state
between Write calls.
There will be no memory kept between Write calls,
but compression and speed will be suboptimal.
Because of this, the size of actual Write calls will affect output size.
NewWriter returns a new Writer compressing data at the given level.
Following zlib, levels range from 1 (BestSpeed) to 9 (BestCompression);
higher levels typically run slower but compress more.
Level 0 (NoCompression) does not attempt any compression; it only adds the
necessary DEFLATE framing.
Level -1 (DefaultCompression) uses the default compression level.
Level -2 (ConstantCompression) will use Huffman compression only, giving
a very fast compression for all types of input, but sacrificing considerable
compression efficiency.
If level is in the range [-2, 9] then the error returned will be nil.
Otherwise the error returned will be non-nil.
NewWriterDict is like NewWriter but initializes the new
Writer with a preset dictionary. The returned Writer behaves
as if the dictionary had been written to it without producing
any compressed output. The compressed data written to w
can only be decompressed by a Reader initialized with the
same dictionary.
NewWriterWindow returns a new Writer compressing data with a custom window size.
windowSize must be from MinCustomWindowSize to MaxCustomWindowSize.
StatelessDeflate allows compressing directly to a Writer without retaining state.
When returning everything will be flushed.
Up to 8KB of an optional dictionary can be given which is presumed to precede the block.
Longer dictionaries will be truncated and will still produce valid output.
Sending nil dictionary is perfectly fine.
Package-Level Constants (total 8)
const BestCompression = 9 const BestSpeed = 1 const ConstantCompression = -2 // compatibility alias. const DefaultCompression = -1
HuffmanOnly disables Lempel-Ziv match searching and only performs Huffman
entropy encoding. This mode is useful in compressing data that has
already been compressed with an LZ style algorithm (e.g. Snappy or LZ4)
that lacks an entropy encoder. Compression gains are achieved when
certain bytes in the input stream occur more frequently than others.
Note that HuffmanOnly produces a compressed output that is
RFC 1951 compliant. That is, any valid DEFLATE decompressor will
continue to be able to decompress this output.
MaxCustomWindowSize is the maximum custom window that can be sent to NewWriterWindow.
MinCustomWindowSize is the minimum window size that can be sent to NewWriterWindow.
const NoCompression = 0
![]() |
The pages are generated with Golds v0.6.7. (GOOS=linux GOARCH=amd64) Golds is a Go 101 project developed by Tapir Liu. PR and bug reports are welcome and can be submitted to the issue list. Please follow @Go100and1 (reachable from the left QR code) to get the latest news of Golds. |