#header #zlib #byte #rfc #defined #1950

zlib-header

Library to work with the 2 Byte zlib header, as defined in RFC 1950

2 releases

new 0.1.2 Mar 9, 2025
0.1.1 Mar 7, 2025
0.1.0 Mar 7, 2025

#577 in Compression

Download history 158/week @ 2025-03-02

158 downloads per month
Used in zlib-header-cli

MIT license

13KB
181 lines

zlib-header

Library to work with the 2 Byte zlib header, as defined in RFC 1950.

Examples

use zlib_header::ZlibHeader;
let cm = 8;
let cinfo = 7;
let fdict = false;
let flevel = 2;
let header = ZlibHeader::new(cm, cinfo, fdict, flevel);
match header {
  Ok(header) => {
    println!("header is valid (strict): {}", header.is_valid_strict()); // header is valid (strict): true 
  },
  Err(err) => eprintln!("Unable to initialize zlib header: {:?}", err)
}
use zlib_header::ZlibHeader;
let header = ZlibHeader::default();
println!("Display: {}", header); // Display: 789C
println!("Debug: {:?}", header); // Debug: ZlibHeader { DEFLATE | 32768 Bytes | default | Dictionary: false | valid }
let bytes = [0x78, 0x9C];
println!("header matches expected bytes: {}", header == bytes); // header matches expected bytes: true

lib.rs:

Library to work with the 2 Byte zlib header, as defined in RFC 1950.

Examples

use zlib_header::ZlibHeader;
let cm = 8;
let cinfo = 7;
let fdict = false;
let flevel = 2;
let header = ZlibHeader::new(cm, cinfo, fdict, flevel);
match header {
  Ok(header) => {
    println!("header is valid (strict): {}", header.is_valid_strict()); // header is valid (strict): true 
  },
  Err(err) => eprintln!("Unable to initialize zlib header: {:?}", err)
}
use zlib_header::ZlibHeader;
let header = ZlibHeader::default();
println!("Display: {}", header); // Display: 789C
println!("Debug: {:?}", header); // Debug: ZlibHeader { DEFLATE | 32768 Bytes | default | Dictionary: false | valid }
let bytes = [0x78, 0x9C];
println!("header matches expected bytes: {}", header == bytes); // header matches expected bytes: true

Dependencies

~22KB