Expand description
Memory-safe archive extraction library with security validation.
exarch-core provides a safe API for extracting archive files (tar, zip)
with built-in protection against common security vulnerabilities like
path traversal, zip bombs, symlink attacks, and hardlink attacks.
§Examples
use exarch_core::SecurityConfig;
use exarch_core::extract_archive;
let config = SecurityConfig::default();
let report = extract_archive("archive.tar.gz", "/output/dir", &config)?;
println!("Extracted {} files", report.files_extracted);Re-exports§
pub use api::create_archive;pub use api::create_archive_with_progress;pub use api::extract_archive;pub use api::extract_archive_with_options;pub use api::extract_archive_with_options_and_progress;pub use api::extract_archive_with_progress;pub use api::list_archive;pub use api::verify_archive;pub use archive::Archive;pub use archive::ArchiveBuilder;pub use config::ExtractionOptions;pub use config::SecurityConfig;pub use config::Unvalidated;pub use config::Validated;pub use error::ArchiveError;pub use error::FfiErrorMessage;pub use error::IoContext;pub use error::QuotaResource;pub use error::Result;pub use error::redaction::format_entry_path_for_error;pub use error::redaction::sanitize_io_error_for_error;pub use error::redaction::sanitize_path_for_error;pub use report::ExtractionReport;pub use report::NoopProgress;pub use report::ProgressCallback;pub use creation::ArchiveCreator;pub use creation::CreationConfig;pub use creation::CreationReport;pub use formats::traits::FormatCreator;pub use inspection::ArchiveEntry;pub use inspection::ArchiveManifest;pub use inspection::CheckStatus;pub use inspection::IssueCategory;pub use inspection::IssueSeverity;pub use inspection::ManifestEntryType;pub use inspection::VerificationIssue;pub use inspection::VerificationReport;pub use inspection::VerificationStatus;pub use security::ValidationReport;pub use types::DestDir;pub use types::EntryType;pub use types::SafePath;pub use types::SafeSymlink;
Modules§
- api
- High-level public API for archive extraction, creation, and inspection.
- archive
- Archive types and builders.
- config
- Security configuration for archive extraction.
- creation
- Archive creation module.
- error
- Error types for archive operations.
- formats
- Archive format implementations.
- inspection
- Archive inspection without extraction.
- report
- Extraction operation reporting.
- security
- Security validation modules.
- types
- Type-safe wrappers for archive extraction operations.
Constants§
- MAX_
CONFIG_ ENTRY_ LENGTH - Maximum length, in bytes, of a single
SecurityConfigentry — an allowed extension or a banned path component. Shared byexarch-pythonandexarch-node. Maximum length, in bytes, of a singleSecurityConfigentry — an allowed extension or a banned path component. - MAX_
PATH_ LENGTH - Maximum length, in bytes, of a raw path string accepted at the FFI
boundary. Shared by
exarch-pythonandexarch-node. Maximum length, in bytes, of a raw path string accepted at the FFI boundary.
Functions§
- validate_
config_ entry - Validates a single caller-supplied
SecurityConfigentry string. Shared byexarch-pythonandexarch-node. Validates a single caller-suppliedSecurityConfigentry string. - validate_
raw_ path_ str - Validates a raw, caller-supplied path string before it enters the
archive pipeline. Shared by
exarch-pythonandexarch-node. Validates a raw, caller-supplied path string before it enters the archive pipeline.