https://github.com/mikhaelmounay/huffman-file-zipper
A Qt-C++-based desktop file archiver with a high compression ratio based on Huffman Coding. Made as a semester project for Applied Data Structures (CSCE 2211) course @ AUC.
https://github.com/mikhaelmounay/huffman-file-zipper
compression heap huffman-coding prefix-code
Last synced: 4 months ago
JSON representation
A Qt-C++-based desktop file archiver with a high compression ratio based on Huffman Coding. Made as a semester project for Applied Data Structures (CSCE 2211) course @ AUC.
- Host: GitHub
- URL: https://github.com/mikhaelmounay/huffman-file-zipper
- Owner: MikhaelMounay
- Created: 2024-11-13T11:31:19.000Z (7 months ago)
- Default Branch: main
- Last Pushed: 2024-12-07T18:37:57.000Z (7 months ago)
- Last Synced: 2025-01-16T01:17:48.097Z (5 months ago)
- Topics: compression, heap, huffman-coding, prefix-code
- Language: C++
- Homepage:
- Size: 2.34 MB
- Stars: 1
- Watchers: 2
- Forks: 1
- Open Issues: 0
Awesome Lists containing this project
README
# Huffman File Zipper
> A desktop application to compress text files based on the lossless compression algorithm [Huffman Coding](https://en.wikipedia.org/wiki/Huffman_coding).
## User Manual
### Compressing a Text file
1. Press the *Browse* button and choose a `.txt` file.
2. If you want to save the compressed file as a binary file, check the *Save compressed data to binary file* checkbox.
3. If you want to save the file to a human-readable format instead, make sure to uncheck this checkbox.
4. Press *Compress* and choose a destination to save the compressed file to.
5. Happy compression! :)### Decompressing an HFZ or HFZB file
1. Press the *Browse* button and choose a `.hfz` or a `.hfzb` file.
2. Press *Decompress* and choose a destination to save the extracted file to.
3. Happy extraction, too! :)## Change Logs
- [v1 changelog](docs/change-logs/CHANGELOG-1.md)
## For Developers
### [Design Specifications](docs/design-specs/design-specs-1.1.md)
### Building from Source Code
Used build system:
- `CMake 3.29` [](https://cmake.org/)
- `Desktop Qt 6.6.2 MinGW 64-bit` [](https://www.qt.io/)> Make sure to specify the compiler path in CMake options:
`"-DCMAKE_PREFIX_PATH=C:/path/to/Qt/x.x.x/mingw_64"`Dependencies:
- `GoogleTest 1.15.2` [](https://github.com/google/googletest)## Collaborators
- [Mikhael Mounay Khalil](https://github.com/MikhaelMounay)
- [Marcelino Sedhum](https://github.com/marcelinoSamer)
- [Kirollos Mounir](https://github.com/KirollosFady)
- [Omar Khalil](https://github.com/omarramy22)
- [Omar Youssef](https://github.com/omaaryouussef)