A streaming compression/decompression library for Rust. The underlying implementation by default uses miniz
but can optionally be configured to use the system zlib, if available.
Supported formats:
# Cargo.toml [dependencies] flate2 = "0.2"
Using zlib instead of miniz:
[dependencies] flate2 = { version = "0.2", features = ["zlib"], default-features = false }
extern crate flate2; use std::io::prelude::*; use flate2::Compression; use flate2::write::ZlibEncoder; fn main() { let mut e = ZlibEncoder::new(Vec::new(), Compression::Default); e.write(b"foo"); e.write(b"bar"); let compressed_bytes = e.finish(); }
extern crate flate2; use std::io::prelude::*; use flate2::read::GzDecoder; fn main() { let mut d = GzDecoder::new("...".as_bytes()).unwrap(); let mut s = String::new(); d.read_to_string(&mut s).unwrap(); println!("{}", s); }
flate2-rs
is primarily distributed under the terms of both the MIT license and the Apache License (Version 2.0), with portions covered by various BSD-like licenses.
See LICENSE-APACHE, and LICENSE-MIT for details.