compress package provides implementations of various compression algorithms. It contains subpackages for specific compression formats.
Subpackages
compress/gzip
Reading and writing gzip format compressed files (RFC 1952).compress/zlib
Reading and writing zlib format compressed data (RFC 1950).compress/flate
Implements the DEFLATE compressed data format (RFC 1951). Used by gzip and zlib.compress/bzip2
Reading bzip2 format compressed data. Note: bzip2 only supports decompression.compress/lzw
Lempel-Ziv-Welch compressed data format. Used in GIF and TIFF files.Compression Levels
Most compression formats support different compression levels:Practical Examples
HTTP Response Compression
Compress Files in Archive
Stream Compression
Format Comparison
| Format | Compression | Decompression | Use Case |
|---|---|---|---|
| gzip | Yes | Yes | General-purpose, HTTP, archives |
| zlib | Yes | Yes | PNG images, lower overhead than gzip |
| flate | Yes | Yes | Low-level DEFLATE, basis for gzip/zlib |
| bzip2 | No | Yes | High compression ratio |
| lzw | Yes | Yes | GIF and TIFF images |
Performance Tips
- Choose appropriate compression level - Balance between speed and compression ratio
- Reuse writers - Use
Reset()method to reuse compression writers - Stream when possible - Avoid loading entire file into memory
- Always close writers - Ensures all data is flushed and trailers are written
- Buffer I/O - Combine with
bufiofor better performance on small writes
Common Use Cases
- Compressing HTTP responses to reduce bandwidth
- Creating compressed archives (.tar.gz, .zip)
- Storing log files with compression
- Reducing database backup sizes
- Compressing data before network transmission