zlib-rs

Crates.iozlib-rs
lib.rszlib-rs
version0.6.0
created_at2024-02-23 08:44:37.843487+00
updated_at2026-01-23 10:43:11.285922+00
descriptionA memory-safe zlib implementation written in rust
homepagehttps://github.com/trifectatechfoundation/zlib-rs
repositoryhttps://github.com/trifectatechfoundation/zlib-rs
max_upload_size
id1150346
size752,380
Folkert de Vries (folkertdev)

documentation

README

A pure-rust implementation of zlib.

This is a low-level implementation crate for use in libraries like flate2 and rustls. For a more high-level interface, use flate2.

For a zlib -compatible rust api of this crate, see libz-rs-sys. For instructions on integrating zlib-rs into a C library, see libz-rs-sys-cdylib.

Example

use zlib_rs::ReturnCode;
use zlib_rs::{DeflateConfig, compress_bound, compress_slice};
use zlib_rs::{InflateConfig, decompress_slice};

let input = b"Hello World";

// --- compress ---
let mut compressed_buf = vec![0u8; compress_bound(input.len())];
let (compressed, rc) =
    compress_slice(&mut compressed_buf, input, DeflateConfig::default());
assert_eq!(rc, ReturnCode::Ok);

// --- decompress ---
let mut decompressed_buf = vec![0u8; input.len()];
let (decompressed, rc) =
    decompress_slice(&mut decompressed_buf, compressed, InflateConfig::default());
assert_eq!(rc, ReturnCode::Ok);

assert_eq!(decompressed, input);
Commit count: 0

cargo fmt