11个稳定版本
2.6.0 | 2024年6月9日 |
---|---|
2.5.0 | 2023年1月12日 |
2.4.0 | 2021年12月25日 |
2.3.2 | 2021年5月28日 |
1.0.0 | 2019年12月7日 |
#20 in 压缩
8,454 每月下载量
用于 22 个crate(21个直接)
73KB
1.5K SLoC
niffler
为压缩文件提供简单透明的支持。
此库提供两个主要功能
- 从输入文件中检测压缩格式,并返回一个准备就绪的Read trait对象。
- 创建一个初始化为压缩模式的Writer,准备写入。
目标是降低打开和使用文件(尤其是在生物信息学工作流程中)的门槛。
选择压缩格式
默认情况下,所有支持的压缩格式都已启用。如果您正在使用不支持这些格式的系统,您可以选择禁用默认功能并选择所需的格式。例如,当前在Webassembly环境中仅支持gz
(因为niffler
依赖于具有系统依赖项的crate来支持bz2
和lzma
压缩),因此您可以在您的Cargo.toml
中使用此功能来仅选择gz
支持
niffler = { version = "2.2.0", default-features = false, features = ["gz"] }
您仍然可以使用niffler::sniff()
来查找压缩格式,即使禁用了任何功能。但如果你尝试使用禁用功能的niffler::get_reader
,它将引发运行时错误。
最低支持的Rust版本
目前最低支持的Rust版本是1.65.0。
类似项目
其他语言中存在许多类似的项目
- C: rbread
- Python: xphyle、xopen
- Perl: AnyUncompress
- go: Archiver
开发
niffler开发是开放的,并欢迎拉取请求!
在创建您的拉取请求之前,请尝试编写一个测试(如果可能)和基准测试。我们建议运行以下命令以帮助您完成这些任务
cargo fmt
cargo test
cargo clippy
要运行测试,请使用
cargo test --all-features
要测试基准测试,请运行
cargo test --benches --all-features
要运行所有基准测试,请使用
cargo bench --all-features
作为快捷方式,您还可以运行make
,它将执行所有这些命令。
许可证
许可协议为以下之一
- Apache License, Version 2.0 (LICENSE-APACHE 或 https://apache.ac.cn/licenses/LICENSE-2.0)
- MIT License (LICENSE-MIT 或 https://open-source.org.cn/licenses/MIT)
贡献
除非您明确表示,否则您有意提交以供包括在作品中的任何贡献,如Apache-2.0许可证中定义,应按上述方式双重许可,不附加任何额外条款或条件。
依赖关系
~3–4.5MB
~83K SLoC