sevenz_rust2/lib.rs
1//! This project is a 7z compressor/decompressor written in pure Rust.
2//!
3//! This is a fork of the original, unmaintained sevenz-rust crate to continue the development and maintenance.
4//!
5//! ## Supported Codecs & filters
6//!
7//! | Codec | Decompression | Compression |
8//! |----------------|---------------|-------------|
9//! | COPY | ✓ | ✓ |
10//! | LZMA | ✓ | ✓ |
11//! | LZMA2 | ✓ | ✓ |
12//! | BROTLI (*) | ✓ | ✓ |
13//! | BZIP2 (*) | ✓ | ✓ |
14//! | DEFLATE (*) | ✓ | ✓ |
15//! | LZ4 (*) | ✓ | ✓ |
16//! | ZSTD (*) | ✓ | ✓ |
17//!
18//! (*) Require optional cargo feature.
19//!
20//! | Filter | Decompression | Compression |
21//! |---------------|---------------|-------------|
22//! | BCJ X86 | ✓ | |
23//! | BCJ PPC | ✓ | |
24//! | BCJ IA64 | ✓ | |
25//! | BCJ ARM | ✓ | |
26//! | BCJ ARM_THUMB | ✓ | |
27//! | BCJ SPARC | ✓ | |
28//! | DELTA | ✓ | |
29//! | BCJ2 | ✓ | |
30extern crate filetime_creation as ft;
31#[cfg(target_arch = "wasm32")]
32extern crate wasm_bindgen;
33#[cfg(feature = "aes256")]
34mod aes256sha256;
35mod bcj;
36mod bcj2;
37#[cfg(feature = "brotli")]
38mod brotli;
39#[cfg(not(target_arch = "wasm32"))]
40mod de_funcs;
41mod delta;
42#[cfg(feature = "compress")]
43mod en_funcs;
44#[cfg(feature = "compress")]
45mod encoders;
46mod error;
47mod method_options;
48mod password;
49mod reader;
50#[cfg(target_arch = "wasm32")]
51mod wasm;
52#[cfg(feature = "compress")]
53mod writer;
54
55#[cfg(feature = "aes256")]
56pub use aes256sha256::*;
57pub use archive::*;
58#[cfg(not(target_arch = "wasm32"))]
59pub use de_funcs::*;
60#[cfg(feature = "compress")]
61pub use en_funcs::*;
62pub use error::Error;
63pub use lzma_rust2 as lzma;
64pub use method_options::*;
65pub use nt_time;
66pub use password::Password;
67pub use reader::{BlockDecoder, SevenZReader};
68#[cfg(feature = "compress")]
69pub use writer::*;
70pub(crate) mod archive;
71
72pub(crate) mod decoders;
73pub(crate) mod folder;