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 feature.
19//!
20//! All optional codes are a best effort implementation, since there is no definite specification about their implementation
21//! in 7z. We use the IDs provided by the specification provided
22//! by [Py7zr](https://!py7zr.readthedocs.io/en/latest/archive_format.html).
23//!
24//! | Filter        | Decompression | Compression |
25//! |---------------|---------------|-------------|
26//! | BCJ X86       | ✓             |             |
27//! | BCJ PPC       | ✓             |             |
28//! | BCJ IA64      | ✓             |             |
29//! | BCJ ARM       | ✓             |             |
30//! | BCJ ARM_THUMB | ✓             |             |
31//! | BCJ SPARC     | ✓             |             |
32//! | DELTA         | ✓             |             |
33//! | BCJ2          | ✓             |             |
34extern crate filetime_creation as ft;
35#[cfg(target_arch = "wasm32")]
36extern crate wasm_bindgen;
37#[cfg(feature = "aes256")]
38mod aes256sha256;
39mod bcj;
40mod bcj2;
41#[cfg(not(target_arch = "wasm32"))]
42mod de_funcs;
43mod delta;
44#[cfg(feature = "compress")]
45mod en_funcs;
46#[cfg(feature = "compress")]
47mod encoders;
48mod error;
49mod method_options;
50mod password;
51mod reader;
52#[cfg(target_arch = "wasm32")]
53mod wasm;
54#[cfg(feature = "compress")]
55mod writer;
56
57#[cfg(feature = "aes256")]
58pub use aes256sha256::*;
59pub use archive::*;
60#[cfg(not(target_arch = "wasm32"))]
61pub use de_funcs::*;
62#[cfg(feature = "compress")]
63pub use en_funcs::*;
64pub use error::Error;
65pub use lzma_rust2 as lzma;
66pub use method_options::*;
67pub use nt_time;
68pub use password::Password;
69pub use reader::{BlockDecoder, SevenZReader};
70#[cfg(feature = "compress")]
71pub use writer::*;
72pub(crate) mod archive;
73pub(crate) mod decoders;
74pub(crate) mod folder;