#编码 #API绑定 #zopfli

zopfli-rs

提供对zopfli库的绑定,用于deflate、gzip和zlib压缩

2个版本

使用旧的Rust 2015

0.1.1 2018年3月18日
0.1.0 2018年3月17日

#709 in 压缩

MIT/Apache

410KB
9K SLoC

C++ 6K SLoC // 0.1% comments C 2.5K SLoC // 0.2% comments Rust 125 SLoC

zopfli-rs

为deflate、gzip和zlib压缩提供对zopfli的绑定。

目的

zopfli已经由@carols10centscarols10cents/zopfli)用纯Rust实现,因此创建对谷歌(google/zopfli)原始C/C++库的绑定可能看起来是重复的。为了更好地了解纯Rust库的性能并提供一个略快的替代方案,制作了zopfli-rs

基准测试

在gzip压缩方面,zopfli-rs略优于zopflizopfli-rszopfli都遵循一种奇怪的性能曲线,似乎对于某些数据大小(在这种情况下,大约10KB是最佳点)会更快。更改Options可能会显著提高这些结果,但这需要一些时间来调整到完美。

test bench_zopfli_1         ... bench:   5,026,521 ns/iter (+/- 547,023)
test bench_zopfli_10        ... bench:   5,817,841 ns/iter (+/- 585,086)
test bench_zopfli_100       ... bench:  19,293,553 ns/iter (+/- 2,106,929)
test bench_zopfli_1000      ... bench: 290,497,031 ns/iter (+/- 32,570,971)
test bench_zopfli_10000     ... bench:  38,902,158 ns/iter (+/- 6,040,615)
test bench_zopfli_100000    ... bench: 301,934,186 ns/iter (+/- 17,868,991)
test bench_zopfli_rs_1      ... bench:   2,439,766 ns/iter (+/- 644,219)
test bench_zopfli_rs_10     ... bench:   3,299,515 ns/iter (+/- 359,117)
test bench_zopfli_rs_100    ... bench:  14,146,432 ns/iter (+/- 1,505,380)
test bench_zopfli_rs_1000   ... bench: 209,671,685 ns/iter (+/- 9,135,909)
test bench_zopfli_rs_10000  ... bench:  29,229,623 ns/iter (+/- 3,060,932)
test bench_zopfli_rs_100000 ... bench: 289,308,248 ns/iter (+/- 13,868,834)

无运行时依赖

~0–2MB
~38K SLoC