Archae explodes archives.
Project description
Archae
Archae explodes archives.
Why
Every once and a while, I run into an issue: multiple layers of archives. The reasons vary, but examples would include:
- Searching for something in a ZIP of folders that contained a ZIP with a CD image in it
- Running a malware scan and finding an obscure archive format was missed and not even flagged.
- Meanwhile, I want to make sure I don't fill my disk, especially if an archive bomb (more commonly known as a ZIP bomb) has been jammed in somewhere. They're only funny the first time. :D
Features
- Uses 7z/unar to try to extract archives
- No substantial limit on the number of archive layers
- Identifies file types via libmagic
- Detects duplicate archives
- Can detect password-protected archives and extract any unprotected entries
- Basic archive bomb protections
- MAX_ARCHIVE_SIZE_BYTES - ensures the uncompressed size of an archive is limited
- MAX_TOTAL_SIZE_BYTES - ensures the total extracted footprint isn't above a certain size
- MIN_ARCHIVE_RATIO - ensures very-high-compression-ratio archives are stopped
- MIN_DISK_FREE_SPACE - minimum free space at the extraction location
- MAX_DEPTH - allow setting a maximum archive depth to traverse
- DELETE_ARCHIVES_AFTER_EXTRACTION - delete pure archive types after deletion
Installation
Archae is available on PyPI. Install with uv or your package manager of choice:
uv tool install archae
Documentation
Check out the Archae documentation for the User's Guide and CLI Reference.
Usage
Configuration values are supplied one of four ways, and any item lower in this list will overwrite a prior one:
- Default values are stored in the app
- A TOML file at ~/.config/archae/ will be created on first run and can override those values (ex. MIN_ARCHIVE_RATIO = 0.005)
- Env vars starts starting with "ARCHAE_" are parsed (ex. ARCHAE_MIN_ARCHIVE_RATIO=0.005)
- Values can be passed in as flags (ex. --min_archive_ratio=0.005)
Running archae --help or python -m archae --help shows a list of all of the available options and arguments:
archae --help
Usage: archae [OPTIONS] COMMAND [ARGS]...
Archae explodes archives.
╭─ Options ────────────────────────────────────────────────────────────────────────────╮
│ --version -v Show the version and exit. │
│ --help -h Show this message and exit. │
╰──────────────────────────────────────────────────────────────────────────────────────╯
╭─ Commands ───────────────────────────────────────────────────────────────────────────╮
│ extract Extract and analyze an archive. │
│ listopts List all available configuration options. │
│ status Show archae status and available tools. │
╰──────────────────────────────────────────────────────────────────────────────────────╯
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file archae-2026.6.tar.gz.
File metadata
- Download URL: archae-2026.6.tar.gz
- Upload date:
- Size: 16.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.10.0 {"installer":{"name":"uv","version":"0.10.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
671159f4f4dc8b686eef92001fa3751bdaf0d0d5166de737dd1afbceb540ab3e
|
|
| MD5 |
869f54eafb17a30680b5eeec2bf8fefc
|
|
| BLAKE2b-256 |
684ad25dd0e238390b67928b1f97f02d60c8d3dc058a1b3653ff538c0b011af2
|
File details
Details for the file archae-2026.6-py3-none-any.whl.
File metadata
- Download URL: archae-2026.6-py3-none-any.whl
- Upload date:
- Size: 23.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.10.0 {"installer":{"name":"uv","version":"0.10.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
26ccfb0ca7becd117aa6edcf446dd0682b0cb5ca9fdfab5f9276b00309a2708a
|
|
| MD5 |
2bf730227b762ab1b590199f8ddf2064
|
|
| BLAKE2b-256 |
9cd6c97a71c88cd7bc1078eee8771f809387aa4e3c3fbf754eecd038aab45c18
|