huff

Build Status

License Crate

Example compression/decompression CLI software based on the huff_coding crate.

Usage

txt huff [FLAGS] [OPTIONS] <SRC_FILE> [DST_FILE]

Args

txt <SRC_FILE> <DST_FILE> [default: ./SRC_FILE.hff]

Options

txt -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

```txt -d, --decompress
Decompresses the hff SRCFILE into DSTFILE.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:

  1. A byte containing the number of bits used for padding:
  2. 4 byte number representing the length (in bytes) of the stored HuffTree
  3. A HuffTree, used to compress the file, represented in binary (see HuffTree::try_from_bin)
  4. The actual compressed data