4 个版本
0.1.3 | 2024 年 5 月 5 日 |
---|---|
0.1.2 | 2024 年 5 月 5 日 |
0.1.1 | 2024 年 2 月 1 日 |
0.1.0 | 2024 年 1 月 31 日 |
#1201 in 编码
被 2 个crate(通过 comiconv)使用
12KB
241 行
Cra
支持多种格式的内存中提取/存档的简单库
功能
- 轻松读取存档并在其条目上迭代
- 支持 7z、zip 和 tar
- 完全在内存中
- 创建任何支持的格式存档
用法
cargo add cra
示例
读取并迭代存档
use cra::{ArcReader, ArcEntry};
let mut archive = ArcReader::new(&archive_bytes).unwrap();
for entry in archive {
match entry {
ArcEntry::File(name, data) => { /* do something */ }
ArcEntry::Directory(name) => { /* do something else */ }
}
}
创建包含目录和文件的 zip 存档
use cra::{ArcWriter, ArcEntry, ArcFormat};
let mut writer = ArcWriter::new(Format::Zip);
writer.push(ArcEntry::Directory(String::from("some_dir")));
writer.push(ArcEntry::File(String::from("some_file"), data));
let finished_archive = writer.archive().unwrap(); // Vec<u8>
lib.rs
:
存档格式的简单抽象。
您可以在 zip、7z 和 tar 格式中读取和写入存档。
依赖关系
~9–19MB
~265K SLoC