3个版本 (重大变更)
0.3.0 | 2024年8月13日 |
---|---|
0.2.0 | 2024年8月13日 |
0.1.0 | 2024年7月17日 |
#166 在 压缩
每月 248 次下载
105KB
3K SLoC
simple-archive
simple-archive
是处理压缩归档和文件流的简单可能的crate。
底层使用libarchive库来处理数据。存在从libarchive库到直接ffi转换,也可以使用,但库的目的是在libarchive之上提供更简单的Rust API。
依赖项
libarchive
必须安装。在编写本文时,与库一起测试的唯一版本是3.7.4。旧版本可能也可以正常工作,但尚未经过测试。
由于 libarchive
是其他库的伞形库,因此根据要处理的数据格式,系统还应该安装其他库。
功能
- 支持与libarchive兼容的文件格式读取
- 在libarchive支持的输出格式文件上使用过滤器
- 使用Read+Seek特质直接压缩源数据对象
- 从归档数据中提取对象。
压缩文件
use std::fs::File;
let output = File::create("tests/fixtures_out/compressed.tar.gz").unwrap();
let mut a = ArchiveWriter::new(output).unwrap();
a.set_output_targz().unwrap();
a.open().unwrap();
a.add_file("/path/to/your/file", "path/inside/output/archive").unwrap();
解压缩文件
use std::fs::File;
let input = File::open("tests/fixtures_out/compressed.tar.gz").unwrap();
let mut a = ArchiveReader::new(output).unwrap();
...
许可协议
许可协议如下
- MIT许可协议 (LICENSE-MIT 或 https://opensource.org/licenses/MIT)
依赖项
~0.3–0.8MB
~19K SLoC