#huffman-coding #huffman #decompression #encode-decode

app huff_rs

使用Huffman编码编码和解码文件

3个版本

0.1.3 2021年3月2日
0.1.2 2021年3月1日
0.1.1 2021年3月1日
0.1.0 2021年3月1日

#607 in 压缩

MIT 协议

16KB
313

huff_rs

Crates.io GitHub last commit License

这个程序是在我为了完成大学项目而实现Huffman编码之后作为一项有趣的项目创建的。它使用bitvec包来创建比特序列。这个程序的性能实际上相当差,我还没有对这个进行进一步的分析。压缩文件的格式是我自己想出来的,据我所知,它不符合任何标准(如果有的话)。

帮助

huff_rs 1.0
Thomas Lindae <[email protected]>
Compresses files with huffman encoding

USAGE:
    huff_rs <SUBCOMMAND>

FLAGS:
    -h, --help       Prints help information
    -V, --version    Prints version information

SUBCOMMANDS:
    decode    Decodes the specified file
    encode    Encodes the specified file
    help      Prints this message or the help of the given subcommand(s)

安装

最好使用cargo来安装huff_rs

cargo install huff_rs

构建

要构建huff_rs

git clone https://github.com/Treeniks/huff_rs
cd huff_rs
cargo build --release
./target/release/huff_rs --version

用法

编码

要编码文件

huff_rs encode file.txt

默认输出文件名将与输入文件名相同,但扩展名将替换为.huff
您还可以使用-o指定输出文件名

huff_rs encode file.txt -o compressed.huff

解码

要解码文件

huff_rs decode file.huff

默认输出文件名将与输入文件名相同,但扩展名将替换为.txt
您还可以使用-o指定输出文件名

huff_rs decode file.huff -o original.txt

待办事项

该项目还需要解决两个主要问题

  1. 在解码时添加对正确文件格式的检查
    目前程序没有检查正确的文件格式。因此,如果您提供了错误的文件格式,它可能会给出随机错误或崩溃。
  2. 更好的测试
    我还没有实现适当的测试,只有一个针对单个字符串的小测试。

依赖项

~2.2–3MB
~58K SLoC