11个版本
0.3.0 | 2021年11月11日 |
---|---|
0.2.5 | 2020年3月1日 |
0.2.4 | 2019年10月1日 |
0.2.3 | 2019年7月22日 |
0.1.1 | 2017年10月28日 |
#622 in 压缩
5,609 每月下载量
615KB
10K SLoC
miniz_oxide
使用纯Rust编写的,不使用任何不安全代码的miniz的DEFLATE/zlib编码器/解码器的替代品。
本项目分为C API外壳和一个Rust crate。Rust crate位于miniz_oxide子目录中。
miniz_oxide 0.5.x版本至少需要rust 1.40.0,0.3.x版本至少需要rust 0.36.0。
为了使用更友好的基于读者和写入器的流式API,可以使用flate2,它可以使用miniz_oxide作为仅限Rust的后端。
miniz_oxide_C_API
C API旨在复制从miniz导出的API,同时也是zlib的一部分。C头文件是用cbindgen生成的。当前的实现尚未在自动化测试之外进行大量测试,文档不够完善,应被视为实验性的。
数据结构不与miniz.h(原始miniz中指定的)具有完全相同的布局,因此应通过包含的函数进行分配。
API文档
待办事项
测试
$ cargo test
$ ./test.sh
基准测试
$ cargo bench --features=benching
或与miniz进行比较
$ ./travis-after-success.sh
在C/C++项目中包含
链接到由build.sh
生成的libminiz_oxide_c_api.a
。可以使用生成的头文件miniz.h
(使用原始的miniz头文件可能或可能不工作),它目前还使用miniz_extra_defs.h
进行一些静态定义。
Cargo-fuzz测试
安装fuzzer
$ cargo install cargo-fuzz
运行模糊测试器
$ ./run_fuzz.sh
许可证
本库(不包括用于测试的miniz C代码)采用MIT许可证。该库基于miniz C库,其中使用的部分采用MIT许可证和无许可证双重授权。不受无许可证保护的部分是一些Zip64代码,这些代码仅受MIT许可证保护。这以及miniz中的其他Zip功能不是miniz_oxidde和miniz_oxide_c_api rust库的一部分。
依赖项
~77–320KB