Skip to content

A ZIP extractor and compressor made in Rust using the Huffman coding algorithm.

License

Notifications You must be signed in to change notification settings

itsmohitnarayan/ziphuff

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Zip Huff

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.

Overview

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.

Features

  • 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.

Screenshots

zip huff zip huff2

Prerequisites

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"

Clone the Repository

git clone https://github.com/itsmohitnarayan/ziphuff.git
cd ziphuff

Build the Project

cargo build --release

Run the Application

cargo run --release

GUI Controls

  1. Input File: Browse and select the input file.
  2. Output File: Specify the output file path.
  3. Action: Choose between Compress and Extract.
  4. Mode: Choose between Words and Chars.
  5. Run: Click to start the compression or extraction process.

Example

  • Compress a file:

    1. Select an input file.
    2. Specify the output file path.
    3. Choose Compress as the action.
    4. Select either Words or Chars mode.
    5. Click Run.
  • Extract a file:

    1. Select a compressed input file.
    2. Specify the output file path.
    3. Choose Extract as the action.
    4. Select the mode that was used for compression (Words or Chars).
    5. Click Run.

License

This project is licensed under the GNU Affero General Public License v3.0.

Contributing

  1. Fork the repository.
  2. Create your feature branch (git checkout -b feature/your-feature).
  3. Commit your changes (git commit -am 'Add some feature').
  4. Push to the branch (git push origin feature/your-feature).
  5. Create a new Pull Request.

Authors

Mentor


About

A ZIP extractor and compressor made in Rust using the Huffman coding algorithm.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Sponsor this project

Packages

No packages published

Languages