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)使用

MIT/Apache

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