| Crates.io | zlib-header-cli |
| lib.rs | zlib-header-cli |
| version | 0.1.2 |
| created_at | 2025-03-07 21:18:14.018422+00 |
| updated_at | 2025-03-09 10:37:19.462108+00 |
| description | CLI to print details of the 2 Byte zlib header, as defined in RFC 1950. |
| homepage | |
| repository | https://git.drfrugal.xyz/lib/zlib-header/ |
| max_upload_size | |
| id | 1583656 |
| size | 13,797 |
CLI to print details about the 2 Byte zlib header, as defined in
RFC 1950.
This was initially written to reverse-engineer more details about Blizzard's proprietary MPQ archive format, which uses
zlib streams to store data.
Usage: zlib-header-cli [OPTIONS] [HEX4CHAR]
Arguments:
[HEX4CHAR] A four-character hex string representing the ZlibHeader (Big Endian)
Options:
-e, --explain Explain the ZlibHeader struct and abbreviations
-h, --help Print help
drfrugal@karazhan:~$ zlib-header-cli 789C
CM 8 (DEFLATE)
CINFO 7 (Window: 32768 Bytes)
FCHECK 28 (valid)
FDICT false (Preset Dictionary not used)
FLEVEL 2 (default)
drfrugal@karazhan:~$ zlib-header-cli --explain
2 Byte zlib header according to https://datatracker.ietf.org/doc/html/rfc1950
1st Byte - CMF (Compression Method and Flags)
0000_1111 CM Compression Method 8, _ (DEFLATE, UNDEFINED)
1111_0000 CINFO Compression Info window size is 2.pow(CINFO + 8)
2nd Byte - FLG (Flags)
0001_1111 FCHECK Checksum Adjustment valid if (CMF * 256 + FLG) % 31 == 0
0010_0000 FDICT Preset Dictionary a preset dictionary was used
1100_0000 FLEVEL Compression Level 0, 1, 2, 3 (fastest, fast, default, best)