Skip to content

A Java-based file compression tool that implements Huffman Encoding, LZW Compression, and Run-Length Encoding (RLE) with a Graphical User Interface (GUI) for easy file compression and decompression.

Notifications You must be signed in to change notification settings

Raajkr07/FileCompressionTool

Repository files navigation

File Compression Tool 🔥

A Java-based file compression tool that implements three algorithms:
Huffman Encoding (Lossless Compression)
LZW (Lempel–Ziv–Welch) Compression
Run-Length Encoding (RLE)
SPA User Interface (UI)
Multi-threading for large files


📌 Features

UI – React based SPA for compressing the text and file 🐝
Huffman Compression – Best for text-heavy files 🐝
LZW Compression – Efficient dictionary-based encoding 🐂
RLE Compression – Simple and fast for repetitive data 🔀
Graphical User Interface (GUI) – Easy-to-use file selection & operations 🎨
Multi-threading Support – Ensures smooth performance ⚡


📂 Project Structure for Backend

📛 FileCompressionTool  
 ┣ 📂 src  
 ┃ ┣ 📂 com.example.compression.algorithm  
 ┃ ┃ ┣ 📄 HuffmanCompression.java  
 ┃ ┃ ┣ 📄 LZWCompression.java  
 ┃ ┃ ┣ 📄 RLECompression.java  
 ┃ ┃ ┣ 📄 HuffmanNode.java  
 ┃ ┣ 📂 com.example.compression.ui  
 ┃ ┃ ┣ 📄 CompressionGUI.java  
 ┃ ┣ 📄 Main.java  
 ┣ 📄 README.md  
 ┣ 📄 .gitignore  
 ┣ 📄 LICENSE  

---

## **🛠 Technologies Used**
🔹 **Java** (JDK 23)  
🔹 **Swing** (GUI Framework)  
🔹 **Collections Framework** (HashMap, PriorityQueue, etc.)  
🔹 **File I/O** (Reading & Writing Files)

---

## 📸 Screenshots

| View | Screenshot |
|------|------------|
| **Main Page** | ![main](frontend/assets/main.png) |

## **🎯 Future Improvements**
✅ Add support for **image & binary file com.example.compression.algorithm** 🌟  
✅ Implement **zip format support** 📦  
✅ Improve UI with **JavaFX or modern frameworks** ✨

---

🔗 **Contribute & Star** ⭐ this project on GitHub if you find it useful! 😃

About

A Java-based file compression tool that implements Huffman Encoding, LZW Compression, and Run-Length Encoding (RLE) with a Graphical User Interface (GUI) for easy file compression and decompression.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published