1#![deny(unsafe_code)]
22#![warn(missing_docs)]
23
24pub mod api;
25pub mod archive;
26pub(crate) mod closed_enum;
27pub mod config;
28pub(crate) mod copy;
29pub mod creation;
30pub mod error;
31pub mod formats;
32pub mod inspection;
33#[cfg(test)]
34use exarch_testkit::raw_zip;
35pub mod report;
36pub mod security;
37#[cfg(test)]
38pub(crate) mod test_utils;
39pub mod types;
40
41pub use api::create_archive;
43pub use api::create_archive_with_progress;
44pub use api::extract_archive;
45pub use api::extract_archive_with_options;
46pub use api::extract_archive_with_options_and_progress;
47pub use api::extract_archive_with_progress;
48pub use api::list_archive;
49pub use api::list_archive_with_options;
50pub use api::verify_archive;
51pub use api::verify_archive_with_options;
52pub use archive::Archive;
53pub use archive::ArchiveBuilder;
54pub use config::DecompressionBudget;
55pub use config::ExtractionOptions;
56pub use config::IntegrityCheck;
57pub use config::ListOptions;
58pub use config::ParallelDecode;
59pub use config::SecurityConfig;
60pub use config::StoredTargets;
61pub use config::Unvalidated;
62pub use config::Validated;
63pub use config::VerificationOptions;
64pub use config::ZipConsistencyPolicy;
65pub use error::ArchiveError;
66pub use error::CentralRecordOrdinal;
67pub use error::CompressionRatio;
68pub use error::EndRecordKind;
69pub use error::FfiErrorMessage;
70pub use error::HiddenRegion;
71pub use error::IoContext;
72pub use error::PartialWrites;
73pub use error::PolicySetting;
74pub use error::QuotaResource;
75pub use error::Result;
76pub use error::ZipBombDetails;
77pub use error::ZipBombScope;
78pub use error::ZipEntryIndex;
79pub use error::ZipHeaderField;
80pub use error::ZipInconsistency;
81pub use error::ZipUncomparable;
82pub use error::redaction::format_entry_path_for_error;
85pub use error::redaction::sanitize_io_error_for_error;
88pub use error::redaction::sanitize_path_for_error;
91pub use report::ExtractionReport;
92pub use report::NoopProgress;
93pub use report::ProgressCallback;
94
95pub use creation::ArchiveCreator;
97pub use creation::CreationConfig;
98pub use creation::CreationReport;
99pub use formats::traits::FormatCreator;
100
101pub use inspection::ArchiveEntry;
103pub use inspection::ArchiveManifest;
104pub use inspection::CheckStatus;
105pub use inspection::EntryCompression;
106pub use inspection::IntegrityGaps;
107pub use inspection::IntegrityStatus;
108pub use inspection::IssueCategory;
109pub use inspection::IssueSeverity;
110pub use inspection::LinkTarget;
111pub use inspection::ManifestEntryKind;
112pub use inspection::ManifestEntryType;
113pub use inspection::OversizedEntry;
114pub use inspection::SolidBlock;
115pub use inspection::UnverifiedEntry;
116pub use inspection::UnverifiedReason;
117pub use inspection::VerificationIssue;
118pub use inspection::VerificationReport;
119pub use inspection::VerificationStatus;
120pub use security::fs_view::LinkKind;
121
122pub use security::ValidationReport;
126pub use security::boundary::MAX_CONFIG_ENTRY_LENGTH;
130pub use security::boundary::MAX_PATH_LENGTH;
133pub use security::boundary::validate_config_entry;
136pub use security::boundary::validate_raw_path_str;
139
140pub use types::DestDir;
142pub use types::EntryType;
143pub use types::SafePath;
144pub use types::SafeSymlink;