3 stable releases
1.0.6 | Mar 3, 2021 |
---|---|
1.0.5 | Feb 28, 2021 |
1.0.4 |
|
1.0.3 | Jan 21, 2021 |
1.0.2 |
|
#518 in Compression
110KB
1.5K
SLoC
huff
Example compression/decompression CLI software based on the huff_coding crate.
Usage
huff [FLAGS] [OPTIONS] <SRC_FILE> [DST_FILE]
Args
<SRC_FILE>
<DST_FILE> [default: ./SRC_FILE.hff]
Options
-b, --block-size <SIZE>
Set how many bytes can be loaded from the file at one time
Possible units:
K/Ki -> Kilobytes/Kibibytes
M/Mi -> Megabytes/Mebibytes
G/Gi -> Gigabytes/Gibibytes
[default: 2G]
Flags
-d, --decompress
Decompresses the hff SRC_FILE into DST_FILE.hff
-n, --noask
Omits asking if should replace existing DST_FILE
-r, --replace
Deletes SRC_FILE upon completion
-t, --time
Prints how long it took to finish
-h, --help
Prints help information
-V, --version
Prints version information
File format
The hff file format is encoded as follows:
- A byte containing the number of bits used for padding:
- first 4 bits store the
HuffTree
's padding bits - the remaining bits store the compressed data's padding bits
- first 4 bits store the
- 4 byte number representing the length (in bytes) of the stored
HuffTree
- A
HuffTree
, used to compress the file, represented in binary (seeHuffTree::try_from_bin
) - The actual compressed data
Dependencies
~3MB
~52K SLoC