#would #was #estimate #try

no-std bin+lib zopfli

Rust 实现 Zopfli 压缩算法

19 个版本

0.8.1 2024 年 5 月 18 日
0.8.0 2023 年 9 月 27 日
0.7.4 2023 年 5 月 27 日
0.7.2 2023 年 1 月 23 日
0.1.0 2016 年 3 月 9 日

#23压缩

Download history 21160/week @ 2024-05-03 22572/week @ 2024-05-10 29063/week @ 2024-05-17 74817/week @ 2024-05-24 112197/week @ 2024-05-31 117966/week @ 2024-06-07 108802/week @ 2024-06-14 110496/week @ 2024-06-21 131543/week @ 2024-06-28 138164/week @ 2024-07-05 150204/week @ 2024-07-12 150146/week @ 2024-07-19 161619/week @ 2024-07-26 154861/week @ 2024-08-02 184501/week @ 2024-08-09 167490/week @ 2024-08-16

699,041 每月下载量
用于 41 个包 (11 直接)

Apache-2.0

165KB
3.5K SLoC

Zopfli in Rust logo

Zopfli 在 Rust 中

crates.io latest version docs.rs status

这是 Zopfli 压缩工具在 Rust 中的重写。

Carol Nichols 开始这个 Rust 实现作为一个实验,逐步重写 C 库,保持项目在每一步都可以编译。有关该实验的更多信息,请参阅她关于此的演讲幻灯片实验时的仓库

此包支持的最小 Rust 版本 (MSRV) 为 1.73。出于语义版本控制的考虑,提高此版本不被视为破坏性更改。我们只会在我们估计提高版本不会造成广泛的不便或破坏时才这样做。

如何构建

要构建代码,请运行

$ cargo build --release

可执行文件将在 target/release/zopfli 中。

这应该在稳定或测试版 Rust 上工作。

您还可以运行 make zopfli,这将运行 cargo build,然后将在项目根目录中将 target/release/zopfli 链接到 zopfli;这是 C 库所做,在重写过程中保持命令和生成的工件相同是有用的。

运行测试

有一些单元测试,主要集中在 katajainen.rs 中的边界包合并算法实现,以及一个针对压缩可逆性的属性测试。这些测试可以使用以下命令运行

$ cargo test

黄金大师测试,以检查压缩文件是否与 C 实现生成的完全相同,可以使用以下命令运行

$ ./test/run.sh

然后检查 git 是否报告在 test/results 文件中的任何更改。

或者您可以运行 make test,这将运行 cargo test,然后是 ./test/run.sh;如果存在任何不匹配,则会失败。

依赖项

~175–315KB