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
✅ 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 ⚡
📛 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** |  |
## **🎯 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! 😃