A ZIP extractor and compressor made in Rust using the Huffman coding algorithm. A GUI-based application for file compression and extraction using the Huffman coding algorithm, built with Rust and Egui.
This project provides a graphical user interface for compressing and extracting text files using the Huffman coding algorithm. It supports both word-based and character-based compression modes.
- File Compression: Compress text files using Huffman coding.
- File Extraction: Extract compressed files back to their original form.
- Two Modes: Supports both word-based and character-based compression.
- User-Friendly GUI: Easy-to-use graphical interface built with Egui.
- Progress and Timing: Displays progress and elapsed time for operations.
- Rust: Install from rust-lang.org
bit-vec = { version = "0.6.3", features = ["serde"] }
rayon = "1.10.0"
serde = { version = "1.0.202", features = ["derive"] }
rmp-serde = "1.3.0"
clap = { version = "4.5.4", features = ["derive"] }
eframe = "0.27.2"
rfd = "0.10.0"
git clone https://github.com/itsmohitnarayan/ziphuff.git
cd ziphuff
cargo build --release
cargo run --release
- Input File: Browse and select the input file.
- Output File: Specify the output file path.
- Action: Choose between
Compress
andExtract
. - Mode: Choose between
Words
andChars
. - Run: Click to start the compression or extraction process.
-
Compress a file:
- Select an input file.
- Specify the output file path.
- Choose
Compress
as the action. - Select either
Words
orChars
mode. - Click
Run
.
-
Extract a file:
- Select a compressed input file.
- Specify the output file path.
- Choose
Extract
as the action. - Select the mode that was used for compression (
Words
orChars
). - Click
Run
.
This project is licensed under the GNU Affero General Public License v3.0.
- Fork the repository.
- Create your feature branch (
git checkout -b feature/your-feature
). - Commit your changes (
git commit -am 'Add some feature'
). - Push to the branch (
git push origin feature/your-feature
). - Create a new Pull Request.
- Kumar Mohit - work - itsmohitnarayan