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
4//! and maintenance.
5//!
6//! ## Supported Codecs & filters
7//!
8//! | Codec          | Decompression | Compression |
9//! |----------------|---------------|-------------|
10//! | COPY           | ✓             | ✓           |
11//! | LZMA           | ✓             | ✓           |
12//! | LZMA2          | ✓             | ✓           |
13//! | BROTLI (*)     | ✓             | ✓           |
14//! | BZIP2 (*)      | ✓             | ✓           |
15//! | DEFLATE (*)    | ✓             | ✓           |
16//! | PPMD (*)       | ✓             | ✓           |
17//! | LZ4 (*)        | ✓             | ✓           |
18//! | ZSTD (*)       | ✓             | ✓           |
19//!
20//! (*) Require optional cargo feature.
21//!
22//! | Filter        | Decompression | Compression |
23//! |---------------|---------------|-------------|
24//! | BCJ X86       | ✓             |             |
25//! | BCJ PPC       | ✓             |             |
26//! | BCJ IA64      | ✓             |             |
27//! | BCJ ARM       | ✓             |             |
28//! | BCJ ARM_THUMB | ✓             |             |
29//! | BCJ SPARC     | ✓             |             |
30//! | DELTA         | ✓             | ✓           |
31//! | BCJ2          | ✓             |             |
32#![cfg_attr(docsrs, feature(doc_cfg))]
33
34#[cfg(target_arch = "wasm32")]
35extern crate wasm_bindgen;
36#[cfg(feature = "aes256")]
37mod aes256sha256;
38mod bcj;
39mod bcj2;
40#[cfg(feature = "brotli")]
41mod brotli;
42#[cfg(all(feature = "util", not(target_arch = "wasm32")))]
43mod de_funcs;
44mod delta;
45#[cfg(all(feature = "compress", feature = "util"))]
46mod en_funcs;
47#[cfg(feature = "compress")]
48mod encoders;
49mod error;
50mod method_options;
51mod password;
52mod reader;
53#[cfg(target_arch = "wasm32")]
54mod wasm;
55#[cfg(feature = "compress")]
56mod writer;
57
58#[cfg(feature = "aes256")]
59pub use aes256sha256::*;
60pub use archive::*;
61#[cfg(all(feature = "util", not(target_arch = "wasm32")))]
62pub use de_funcs::*;
63#[cfg(all(feature = "compress", feature = "util"))]
64pub use en_funcs::*;
65pub use error::Error;
66pub use lzma_rust2 as lzma;
67pub use method_options::*;
68pub use nt_time;
69pub use password::Password;
70pub use reader::{BlockDecoder, SevenZReader};
71#[cfg(feature = "compress")]
72pub use writer::*;
73pub(crate) mod archive;
74pub(crate) mod decoders;
75pub(crate) mod folder;