Crates.io | sevenz-rust |
lib.rs | sevenz-rust |
version | 0.6.1 |
source | src |
created_at | 2022-08-10 05:47:52.354969 |
updated_at | 2024-07-17 13:36:59.590553 |
description | A 7z decompressor/compressor written in pure rust |
homepage | https://github.com/dyz1990/sevenz-rust |
repository | https://github.com/dyz1990/sevenz-rust |
max_upload_size | |
id | 642448 |
size | 926,035 |
This project is a 7z compressor/decompressor written in pure rust.
And it's very much inspired by the apache commons-compress project.
The LZMA/LZMA2 decoder and all filters code was ported from tukaani xz for java
Supported codecs:
BZIP2 (require feature 'bzip2')
COPY
LZMA
LZMA2
ZSTD (require feature 'zstd')
Supported filters:
BCJ X86
BCJ PPC
BCJ IA64
BCJ ARM
BCJ ARM_THUMB
BCJ SPARC
DELTA
BJC2
[dependencies]
sevenz-rust={version="0.2"}
Decompress source file "data/sample.7z" to dest path "data/sample"
sevenz_rust::decompress_file("data/sample.7z", "data/sample").expect("complete");
Add 'aes256' feature
[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");
check examples/mt_decompress
Currently only support LZMA2 method.
[dependencies]
sevenz-rust={version="0.5.0", features=["compress"]}
Use the helper function to create a 7z file with source path.
sevenz_rust::compress_to_path("examples/data/sample", "examples/data/sample.7z").expect("compress ok");
require version>=0.3.0
[dependencies]
sevenz-rust={version="0.5", features=["compress","aes256"]}
Use the helper function to create a 7z file with source path and password.
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");
with encryption and lzma2 options
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");