exarch_core/lib.rs
1//! Memory-safe archive extraction library with security validation.
2//!
3//! `exarch-core` provides a safe API for extracting archive files (tar, zip)
4//! with built-in protection against common security vulnerabilities like
5//! path traversal, zip bombs, symlink attacks, and hardlink attacks.
6//!
7//! # Examples
8//!
9//! ```no_run
10//! use exarch_core::SecurityConfig;
11//! use exarch_core::extract_archive;
12//!
13//! # fn main() -> Result<(), Box<dyn std::error::Error>> {
14//! let config = SecurityConfig::default();
15//! let report = extract_archive("archive.tar.gz", "/output/dir", &config)?;
16//! println!("Extracted {} files", report.files_extracted);
17//! # Ok(())
18//! # }
19//! ```
20
21#![deny(unsafe_code)]
22#![warn(missing_docs)]
23
24pub mod api;
25pub mod archive;
26pub mod config;
27pub mod error;
28pub mod extraction;
29pub mod formats;
30pub mod report;
31pub mod security;
32
33// Re-export main API types
34pub use api::extract_archive;
35pub use archive::Archive;
36pub use archive::ArchiveBuilder;
37pub use config::SecurityConfig;
38pub use error::ExtractionError;
39pub use error::Result;
40pub use report::ExtractionReport;