#zlib #gzip #deflate

no-std libflate

A Rust implementation of DEFLATE algorithm and related formats (ZLIB, GZIP)

34 releases (17 stable)

Uses new Rust 2024

new 2.3.0 Apr 15, 2026
2.2.1 Nov 12, 2025
2.1.0 Apr 30, 2024
2.0.0 Jul 8, 2023
0.1.3 Nov 30, 2016

#430 in Compression

Download history 140131/week @ 2025-12-27 255109/week @ 2026-01-03 279138/week @ 2026-01-10 262777/week @ 2026-01-17 262814/week @ 2026-01-24 305646/week @ 2026-01-31 341172/week @ 2026-02-07 346374/week @ 2026-02-14 385085/week @ 2026-02-21 489352/week @ 2026-02-28 568497/week @ 2026-03-07 457473/week @ 2026-03-14 451050/week @ 2026-03-21 445056/week @ 2026-03-28 525984/week @ 2026-04-04 491897/week @ 2026-04-11

1,981,641 downloads per month
Used in fewer than 186 crates

MIT license

255KB
5K SLoC

libflate

libflate Documentation Actions Status License: MIT

A Rust implementation of DEFLATE algorithm and related formats (ZLIB, GZIP).

Documentation

See RustDoc Documentation.

The documentation includes some examples.

Installation

Add following lines to your Cargo.toml:

[dependencies]
libflate = "2"

An Example

Below is a command to decode GZIP stream that is read from the standard input:

extern crate libflate;

use std::io;
use libflate::gzip::Decoder;

fn main() {
    let mut input = io::stdin();
    let mut decoder = Decoder::new(&mut input).unwrap();
    io::copy(&mut decoder, &mut io::stdout()).unwrap();
}

An Informal Benchmark

A brief comparison with flate2 and inflate:

$ cd libflate/flate_bench/
$ curl -O https://dumps.wikimedia.org/enwiki/latest/enwiki-latest-all-titles-in-ns0.gz
$ gzip -d enwiki-latest-all-titles-in-ns0.gz
> ls -lh enwiki-latest-all-titles-in-ns0
-rw-rw-r-- 1 foo foo 265M May 18 05:19 enwiki-latest-all-titles-in-ns0

$ cargo run --release -- enwiki-latest-all-titles-in-ns0
# ENCODE (input_size=277303937)
- libflate: elapsed=8.137013s, size=83259010
-   flate2: elapsed=9.814607s, size=74692153

# DECODE (input_size=74217004)
- libflate: elapsed=1.354556s, size=277303937
-   flate2: elapsed=0.960907s, size=277303937
-  inflate: elapsed=1.926142s, size=277303937

References

Dependencies

~1.5MB
~21K SLoC