Formats
| Containers | Standard | ||||
|---|---|---|---|---|---|
| deflatedeflate | raw, zlib, gzip | ratio 9% | checksum Adler-32, CRC-32 | writes yes | RFC 1951 |
| bzip2bzip2 | bzip2 | ratio 9% | checksum CRC-32/BZIP2 | writes yes | bzip2 1.0.8 (Julian Seward) |
| LZMAlzma | alone, xz | ratio 8% | checksum CRC-64 by default; CRC-32, SHA-256 or none | writes yes | LZMA SDK lzma-specification.txt (Igor Pavlov) |
| Zstandardzstd | zstd | reads only | checksum XXH64, low 32 bits | writes no | RFC 8878 |
| Brotlibrotli | brotli | reads only | checksum none | writes no | RFC 7932 |
| LZ4lz4 | frame, legacy | ratio 14% | checksum XXH32 | writes yes | LZ4 Block Format (Yann Collet) |
| Unix compress (LZW)lzw | compress | ratio 27% | checksum none | writes yes | ncompress 5.0 (compress 4.2) |
Every row is create(name).info(), computed in your browser from the registry the CLI and the agent tools read. The ratio is the same few lines of text through each format at its default container and level, compressed right here. zstd and brotli have no ratio, since this package reads them and doesn't write them.
Picking one
Reading something? Its format picked itself. identify names it, and each format's page says what its containers keep in the header.
Writing for a person with a terminal? gzip opens everywhere. xz is smaller and slower, and every Linux box has it too. bzip2 sits between them on text and loses to xz on almost everything else.
Writing for a program? zlib is the one every language reads without a dependency. LZ4 when speed matters more than size.
Matching what somebody else wrote? Their format wins. zstd and brotli read here, they just don't write, since the tools that make them are a package install away.