26个版本
0.6.1 | 2024年7月17日 |
---|---|
0.5.4 | 2023年12月14日 |
0.5.3 | 2023年9月29日 |
0.4.3 | 2023年6月16日 |
0.1.5 | 2022年11月2日 |
#33 在 压缩
11,527 每月下载次数
在 18 个crate(15个直接) 中使用
695KB
9K SLoC
包含 (DOS可执行文件,370KB) tests/resources/decompress_x86.exe
该项目是一个用纯Rust编写的7z压缩/解压器。
它非常受apache commons-compress项目的启发。
LZMA/LZMA2解码器和所有过滤器代码都是从tukaani xz for java迁移过来的
解压
支持的编解码器
- BZIP2 (需要功能 'bzip2')
- COPY
- LZMA
- LZMA2
- ZSTD (需要功能 'zstd')
支持的过滤器
- BCJ X86
- BCJ PPC
- BCJ IA64
- BCJ ARM
- BCJ ARM_THUMB
- BCJ SPARC
- DELTA
- BJC2
使用
[dependencies]
sevenz-rust={version="0.2"}
将源文件 "data/sample.7z" 解压到目标路径 "data/sample"
sevenz_rust::decompress_file("data/sample.7z", "data/sample").expect("complete");
解压加密的7z文件
添加 'aes256' 功能
[dependencies]
sevenz-rust={version="0.2", features=["aes256"]}
sevenz_rust::decompress_file_with_password("path/to/encrypted.7z", "path/to/output", "password".into()).expect("complete");
多线程解压
压缩
目前仅支持LZMA2方法。
[dependencies]
sevenz-rust={version="0.5.0", features=["compress"]}
使用辅助函数创建具有源路径的7z文件。
sevenz_rust::compress_to_path("examples/data/sample", "examples/data/sample.7z").expect("compress ok");
带AES加密
要求版本>=0.3.0
[dependencies]
sevenz-rust={version="0.5", features=["compress","aes256"]}
使用辅助函数创建具有源路径和密码的7z文件。
sevenz_rust::compress_to_path_encrypted("examples/data/sample", "examples/data/sample.7z", "password".into()).expect("compress ok");
高级
[dependencies]
sevenz-rust={version="0.5.0", features=["compress","aes256"]}
固态压缩
use sevenz_rust::*;
let mut sz = SevenZWriter::create("dest.7z").expect("create writer ok");
sz.push_source_path("path/to/compress", |_| true).expect("pack ok");
sz.finish().expect("compress ok");
压缩方法
带有加密和lzma2选项
use sevenz_rust::*;
let mut sz = SevenZWriter::create("dest.7z").expect("create writer ok");
sz.set_content_methods(vec![
sevenz_rust::AesEncoderOptions::new("sevenz-rust".into()).into(),
lzma::LZMA2Options::with_preset(9).into(),
]);
sz.push_source_path("path/to/compress", |_| true).expect("pack ok");
sz.finish().expect("compress ok");
变更日志
依赖项
~1.7–9.5MB
~89K SLoC