Thriving Thriving Rust RS
↑ 80 ?
exarch bug-ops/exarch

Secure archive library: TAR/ZIP/7z extraction & creation with CVE protection. Type-safe Rust core, Python/Node.js bindings, zero unsafe code.

HEALTH ? 98 / Healthy
7zarchiveclicompressionextractionlibrarymemory-safenapi-rsnodejspath-traversal ?

// readme

exarch

Memory-safe archive extraction and creation library with Python and Node.js bindings.

[!IMPORTANT] exarch is designed as a secure replacement for vulnerable archive libraries like Python’s tarfile and Node.js’s tar-fs, which have known CVEs with CVSS scores up to 9.4.

Features

  • Extract, create, list, and verify archives β€” Full support for TAR and ZIP (all operations), plus 7z extraction, listing, and verification
  • Format auto-detection β€” Falls back to magic-byte inspection when the file extension is absent, unrecognised, or contradicts the file content
  • Security-first design β€” Default-deny security model with protection against path traversal, symlink attacks, zip bombs, and more
  • Type-driven safety β€” Rust’s type system ensures validated paths can only be constructed through security checks
  • Extension allowlists β€” Optional allowed_extensions filter restricts extraction to a specific set of file extensions across TAR, ZIP, and 7z handlers
  • Fluent configuration β€” 15 with_* builder methods on SecurityConfig and 3 on ExtractionOptions for ergonomic setup
  • In-memory processing β€” ArchiveReader, extract_to_sink…