https://github.com/scav-enger/archivemaster
**ArchiveMaster** is a cross-platform desktop application and CLI tool that combines multiple archive files (ZIP, RAR, TAR, TGZ, TBZ2, etc.) into a single unified archive
https://github.com/scav-enger/archivemaster
application archive cli combiner cross-platform ease-of-use files-folders gui linux mac simple support toolkit windows
Last synced: about 1 month ago
JSON representation
**ArchiveMaster** is a cross-platform desktop application and CLI tool that combines multiple archive files (ZIP, RAR, TAR, TGZ, TBZ2, etc.) into a single unified archive
- Host: GitHub
- URL: https://github.com/scav-enger/archivemaster
- Owner: Scav-engeR
- Created: 2025-09-16T14:47:19.000Z (9 months ago)
- Default Branch: main
- Last Pushed: 2025-09-16T14:58:07.000Z (9 months ago)
- Last Synced: 2025-09-16T16:51:59.449Z (9 months ago)
- Topics: application, archive, cli, combiner, cross-platform, ease-of-use, files-folders, gui, linux, mac, simple, support, toolkit, windows
- Language: Python
- Homepage:
- Size: 19.5 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# ArchiveMaster 🗃️
### Unified Multi-Archive Merger for ZIP, RAR, and TAR Files
### [ArchiveMaster Screenshot] 
---
## 🔧 Overview
**ArchiveMaster** is a cross-platform desktop application and CLI tool that combines multiple archive files (ZIP, RAR, TAR, TGZ, TBZ2, etc.) into a single unified archive — preserving directory structure, metadata, and file integrity.
Whether you’re managing software releases, backup sets, or fragmented downloads, ArchiveMaster eliminates the need to manually extract and re-compress archives. It supports **multi-volume RAR** files automatically and offers both **graphical and command-line interfaces**.
> ✅ **No more manual extraction → re-zipping workflows!**
---
## ✨ Features
| Feature | Description |
|--------|-------------|
| **Multi-format Support** | ZIP, RAR, TAR, TAR.GZ, TAR.BZ2, TGZ, TBZ2 |
| **Auto-Detect Multi-Volume RAR** | Only need to select `.part1.rar` — all other volumes found automatically |
| **Compression Control** | Choose output format (ZIP/TAR) + compression level (1–9) and type (Deflate/Gzip/Bzip2) |
| **GUI & CLI Modes** | Intuitive GUI for users + powerful CLI for automation |
| **Progress Tracking** | Real-time progress bar, file count, and elapsed time |
| **Log System** | Full operation log with timestamps — exportable to file |
| **Cancel & Resume Safe** | Graceful cancellation during processing |
| **Unicode Filename Support** | Handles non-ASCII filenames across platforms |
| **Cross-Platform** | Works on Windows, macOS, Linux |
---
## 🚀 Installation
### Prerequisites
- Python 3.8+
- `unrar` (for RAR support on Linux/macOS)
#### On Ubuntu/Debian:
bash
sudo apt update && sudo apt install unrar python3-pip
### On macOS:
brew install unrar
On Windows:
Download and install WinRAR — it includes unrar.exe which is auto-detected.
Install Dependencies
pip install rarfile
💡 rarfile uses unrar under the hood — ensure it's in your system PATH.
### 🖥️ Usage
Option 1: Graphical Interface (Recommended for most users)
python3 archivemaster.py
Then:
- Click “Add Files” and select your archives.
- Select output format: ZIP, TAR, TAR.GZ, or TAR.BZ2
- Adjust compression level (1–9)
- Click “Merge Archives”
- Choose output location → Done!
⚠️ For multi-volume RAR archives, only select the first file (filename.part1.rar). All others are auto-detected.
Option 2: Command Line Interface (CLI)
python3 archivemaster.py input1.zip input2.rar input3.tar -o combined.zip --verbose
CLI Options:
usage: archivemaster.py [-h] [-o OUTPUT] [-f FORMAT] [-c COMPRESSION] [-l LEVEL] [--verbose] inputs [inputs ...]
ArchiveMaster - Combine multiple archive files
positional arguments:
inputs Input archive files (.zip, .rar, .tar, etc.)
options:
-h, --help show this help message and exit
-o OUTPUT, --output OUTPUT
Output archive file path (required)
-f FORMAT, --format FORMAT
Output format (zip, tar, tar.gz, tar.bz2) default: zip
-c COMPRESSION, --compression COMPRESSION
Compression type (deflate, gzip, bzip2) default: deflate
-l LEVEL, --level LEVEL
Compression level (1-9) default: 6
--verbose Enable verbose logging
Example:
# Merge multiple archives into a high-compression TAR.GZ
python3 archivemaster.py data.zip logs.rar backup.tar -o final_backup.tar.gz -f tar.gz -c gzip -l 9 --verbose
# Merge RAR volume set (only specify part1!)
python3 archivemaster.py project.part1.rar -o project_complete.zip
🛠 Technical Notes
Built with Python 3.8+ and tkinter (no external GUI frameworks).
Uses native libraries: zipfile, tarfile, rarfile.
No external binaries required beyond unrar (for RAR extraction).
Thread-safe with progress reporting.
Memory-efficient: extracts to temporary directory only; no full archive loading into RAM.
🧪 Development & Testing
Run Tests (Manual)
# Create test archives
mkdir test_archive && cd test_archive
touch file1.txt file2.txt
zip test1.zip file1.txt
zip test2.zip file2.txt
rar a test3.rar file1.txt file2.txt
# Merge them
cd ..
python3 archivemaster.py test_archive/test1.zip test_archive/test2.zip test_archive/test3.rar -o merged.zip
Build Executable (Windows/macOS/Linux)
Install PyInstaller:
pip install pyinstaller
Build standalone binary:
pyinstaller --onefile --windowed --name ArchiveMaster archivemaster.py
Output will be in dist/ArchiveMaster
🤝 Contributing
Contributions are welcome! Please open an issue or submit a pull request for:
New format support (e.g., 7z, ISO)
Dark mode UI
Batch processing from folders
Drag-and-drop file input
Dockerized version
Star this repo if you find it useful! ⭐