A gzip decoder for learning purpose.
Decompress a GZIP file:
cargo run -- <file.gz>use gzip_decoder::decode_gzip_bytes;
let compressed = std::fs::read("file.gz")?;
let decompressed = decode_gzip_bytes(&compressed)?;If you already have a reader, use the reader-based API:
use gzip_decoder::decode_gzip;
let file = std::fs::File::open("file.gz")?;
let reader = std::io::BufReader::new(file);
let decompressed = decode_gzip(reader)?;Execute the unit test suite:
cargo testRun fuzz tests to verify robustness against arbitrary and malformed inputs:
# GZIP: arbitrary inputs
cargo fuzz run arbitrary_input
# GZIP: roundtrip encoding/decoding
cargo fuzz run valid_gzip_roundtrip