A secure file and directory compression utility written in Rust that creates AES-256 encrypted ZIP archives.
Zipper is a command-line tool designed to simplify the creation of password-protected ZIP archives. Whether you need to protect a single sensitive file or an entire directory structure, Zipper makes it easy to create secure, encrypted archives that can only be accessed with the correct password.
- Strong Encryption: Uses AES-256 encryption for maximum security
- Password Protection: Requires a confirmed password for all archives
- File & Directory Support: Works with both individual files and entire directory structures
- Cross-Platform: Compatible with Windows, macOS, and Linux
- Custom Naming: Add optional prefix to generated ZIP files
- Efficient Streaming: Uses buffered streaming for memory-efficient compression of large files
- Command-Line Interface: Simple, interactive command-line experience
Download the latest pre-built binary for your platform from the Releases page.
Available platforms:
- Windows (x64)
- macOS (Intel and Apple Silicon)
- Linux (x64)
-
Clone the repository:
git clone https://github.com/rohandhamapurkar/zipper.git cd zipper -
Build the project:
cargo build --release
-
The compiled binary will be available at
target/release/zipper
cargo install zipperTo create an encrypted ZIP file from a file or directory:
zipper /path/to/file_or_directoryYou'll be prompted to:
- Enter an optional prefix for the output filename
- Create and confirm a password for encryption
Zipping a single file:
zipper important_document.pdf
# Creates important_document.zip with password protectionZipping a directory:
zipper /path/to/project_folder
# Creates project_folder.zip containing all files and subdirectoriesUsing a prefix:
zipper important_document.pdf
# When prompted for prefix, enter "backup_2025"
# Creates backup_2025_important_document.zip- Encryption: Uses the AES-256 encryption standard, which is widely recognized as secure
- Password Storage: Passwords are never stored, only used at runtime and then discarded
- Memory Safety: Built with Rust's memory safety guarantees to prevent security vulnerabilities
- Path Validation: Verifies the provided path exists and determines if it's a file or directory
- Password Creation: Securely collects and confirms the encryption password
- Archive Creation: Initializes a new ZIP archive with the appropriate name
- File Processing:
- For single files: Adds the file directly to the archive
- For directories: Recursively walks the directory structure, preserving paths
- Encryption: Applies AES-256 encryption to all content using the provided password
- Finalization: Properly finalizes the ZIP structure and saves the output
- Rust 2021 edition or newer
- Cargo package manager
zip: Handles ZIP archive creation and encryptionwalkdir: Efficiently traverses directory structuresrpassword: Securely reads passwords without echoing to the terminal
# Build the project
cargo build
# Run tests
cargo test
# Build optimized release version
cargo build --releaseThis project uses GitHub Actions for continuous integration and deployment:
- Automatically builds binaries for multiple platforms (Windows, macOS, Linux)
- Creates releases when new version tags are pushed
- Supports both x64 and ARM64 architectures (Apple Silicon)
To create a new release:
- Tag the commit with a version (e.g.,
git tag v1.0.0) - Push the tag to GitHub (
git push origin v1.0.0) - The workflow will automatically build binaries and create a release
MIT License
Copyright (c) 2025 Rohan Dhamapurkar
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
ZIP files created with this tool are compatible with standard archive managers that support AES encryption, including:
- 7-Zip
- WinRAR
- The Unarchiver (macOS)
- Many others with AES-256 support
Password-protected ZIP files are only as secure as the password you choose. Always use strong, unique passwords for sensitive data.