Documentation
¶
Overview ¶
Package compress provides compression utilities:
- Gzip: standard library gzip with configurable level
- Zstd: high-ratio fast compression (pure Go fallback)
- Snappy: fast compression (pure Go fallback)
- LZ4: fast compression (pure Go fallback)
- Flate/Deflate: standard library compress/flate
Quick start ¶
data := []byte("hello world hello world hello world")
compressed, _ := compress.GzipCompress(data, compress.LevelBest)
decompressed, _ := compress.GzipDecompress(compressed)
Index ¶
- Constants
- func Compress(alg Algorithm, data []byte, level int) ([]byte, error)
- func Decompress(alg Algorithm, data []byte) ([]byte, error)
- func FlateCompress(data []byte, level int) ([]byte, error)
- func FlateDecompress(data []byte) ([]byte, error)
- func GzipCompress(data []byte, level int) ([]byte, error)
- func GzipCompressDefault(data []byte) ([]byte, error)
- func GzipCompressStream(w io.Writer, r io.Reader, level int) error
- func GzipDecompress(data []byte) ([]byte, error)
- func GzipDecompressStream(w io.Writer, r io.Reader) error
- func LZ4Compress(data []byte) ([]byte, error)
- func LZ4Decompress(data []byte) ([]byte, error)
- func NewGzipReader(r io.Reader) (*gzip.Reader, error)
- func NewGzipWriter(w io.Writer, level int) (*gzip.Writer, error)
- func Ratio(original, compressed int) float64
- func SnappyCompress(data []byte) ([]byte, error)
- func SnappyDecompress(data []byte) ([]byte, error)
- func ZlibCompress(data []byte, level int) ([]byte, error)
- func ZlibDecompress(data []byte) ([]byte, error)
- func ZstdCompress(data []byte) ([]byte, error)
- func ZstdDecompress(data []byte) ([]byte, error)
- type Algorithm
Constants ¶
const ( LevelNone = gzip.NoCompression LevelBest = gzip.BestCompression LevelFastest = gzip.BestSpeed LevelDefault = gzip.DefaultCompression )
Compression levels matching compress/gzip constants.
Variables ¶
This section is empty.
Functions ¶
func Decompress ¶
Decompress decompresses data using the specified algorithm.
func FlateCompress ¶
FlateCompress compresses data using raw deflate.
func FlateDecompress ¶
FlateDecompress decompresses raw deflate data.
func GzipCompress ¶
GzipCompress compresses data using gzip with the given level.
func GzipCompressDefault ¶
GzipCompressDefault compresses with default level.
func GzipCompressStream ¶
GzipCompressStream compresses data from r and writes to w.
func GzipDecompress ¶
GzipDecompress decompresses gzip data.
func GzipDecompressStream ¶
GzipDecompressStream decompresses gzip data from r and writes to w.
func LZ4Compress ¶
LZ4Compress compresses data using LZ4-like compression. Falls back to flate BestSpeed.
func LZ4Decompress ¶
LZ4Decompress decompresses LZ4 data.
func NewGzipReader ¶
NewGzipReader wraps an io.Reader with a gzip reader.
func NewGzipWriter ¶
NewGzipWriter wraps an io.Writer with a gzip writer.
func Ratio ¶
Ratio returns the compression ratio as a percentage. e.g. 30% means compressed is 30% of original size.
func SnappyCompress ¶
SnappyCompress compresses data using snappy-like compression. Falls back to flate BestSpeed.
func SnappyDecompress ¶
SnappyDecompress decompresses snappy data.
func ZlibCompress ¶
ZlibCompress compresses data using zlib with the given level.
func ZlibDecompress ¶
ZlibDecompress decompresses zlib data.
func ZstdCompress ¶
ZstdCompress compresses data using zstd-like compression. Falls back to gzip BestCompression if zstd is not available.
func ZstdDecompress ¶
ZstdDecompress decompresses zstd data.