Skip to main content

Crate exarch_core

Crate exarch_core 

Source
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;

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 SecurityConfig entry — an allowed extension or a banned path component. Shared by exarch-python and exarch-node. Maximum length, in bytes, of a single SecurityConfig entry — 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-python and exarch-node. Maximum length, in bytes, of a raw path string accepted at the FFI boundary.

Functions§

validate_config_entry
Validates a single caller-supplied SecurityConfig entry string. Shared by exarch-python and exarch-node. Validates a single caller-supplied SecurityConfig entry string.
validate_raw_path_str
Validates a raw, caller-supplied path string before it enters the archive pipeline. Shared by exarch-python and exarch-node. Validates a raw, caller-supplied path string before it enters the archive pipeline.