#zlib #deflate #encoding #miniz

miniz_oxide

DEFLATE compression and decompression library rewritten in Rust based on miniz

13 releases

✓ Uses Rust 2018 edition

0.3.5 Oct 27, 2019
0.3.2 Aug 11, 2019
0.3.0 Jul 22, 2019
0.2.1 Jan 23, 2019
0.1.1 Oct 28, 2017

#4 in Compression

Download history 91391/week @ 2019-10-04 85414/week @ 2019-10-11 90595/week @ 2019-10-18 95679/week @ 2019-10-25 91133/week @ 2019-11-01 91466/week @ 2019-11-08 91046/week @ 2019-11-15 90353/week @ 2019-11-22 87197/week @ 2019-11-29 94776/week @ 2019-12-06 92746/week @ 2019-12-13 64298/week @ 2019-12-20 58986/week @ 2019-12-27 88900/week @ 2020-01-03 91487/week @ 2020-01-10

376,929 downloads per month
Used in 1,511 crates (9 directly)

MIT license

190KB
4K SLoC

miniz_oxide

A pure rust replacement for the miniz DEFLATE/zlib encoder/decoder. The main intention of this crate is to be used as a back-end for the flate2, but it can also be used on it's own. Using flate2 with the rust_backend feature provides an easy to use streaming API for miniz_oxide.

Requires at least rust 1.34.

Usage

Simple compression/decompression:


extern crate miniz_oxide;

use miniz_oxide::inflate::decompress_to_vec;
use miniz_oxide::deflate::compress_to_vec;

fn roundtrip(data: &[u8]) {
    let compressed = compress_to_vec(data, 6);
    let decompressed = decompress_to_vec(decompressed.as_slice()).expect("Failed to decompress!");
}


lib.rs:

A pure rust replacement for the miniz DEFLATE/zlib encoder/decoder. The plan for this crate is to be used as a back-end for the flate2 crate and eventually remove the need to depend on a C library.

Usage

Simple compression/decompression:


use miniz_oxide::inflate::decompress_to_vec;
use miniz_oxide::deflate::compress_to_vec;

fn roundtrip(data: &[u8]) {
    let compressed = compress_to_vec(data, 6);
    let decompressed = decompress_to_vec(compressed.as_slice()).expect("Failed to decompress!");
#   let _ = decompressed;
}

# roundtrip(b"Test_data test data lalalal blabla");

Dependencies