A fast parallel gzip, written in Rust.
gzippy compresses and decompresses files using the gzip format. It uses all your CPU cores to work faster, while producing output that any gzip tool can read.
gzippy file.txt # Compress → file.txt.gz
gzippy -d file.txt.gz # Decompress → file.txt
cat data | gzippy > out # Works with pipes toocargo install gzippyOr build from source:
git clone --recursive https://github.com/jackdanger/gzippy
cd gzippy
cargo build --releaseOn a 4-core machine compressing 10MB of text:
| Level | Time | Output size |
|---|---|---|
Fast (-1) |
24ms | 4.5 MB |
Default (-6) |
76ms | 4.0 MB |
Best (-9) |
201ms | 3.9 MB |
Decompression runs at 300-500 MB/s depending on the file.
Works like gzip: -1 to -9, -c (stdout), -d (decompress), -k (keep original), -f (force), -v (verbose).
Extra options:
-p4— use 4 threads (default: all cores)--level 11or--ultra— smaller output, slower--level 12or--max— smallest output
- 64-bit Linux or macOS
- Rust 1.70+
gzippy exists because of the brilliant work done by others:
- pigz by Mark Adler — showed how to parallelize gzip
- libdeflate by Eric Biggers — fast, modern deflate
- zlib-ng — keeps zlib fast on modern CPUs
- rapidgzip — parallel decompression techniques
- ISA-L by Intel — SIMD-optimized assembly
We study their code, learn from their optimizations, and try to combine the best ideas into one tool.
zlib license — same as zlib and pigz.
Made by Jack Danger as a centaur on a mix of current models and tools.