CompressionTool is a file compression and decompression utility that supports two lossless algorithms: Run-Length Encoding (RLE) and Huffman Coding. The tool is built using C++ with a Qt-based GUI.
- Run-Length Encoding (RLE): Simple compression algorithm ideal for files with long sequences of repeated data.
- Huffman Coding: More complex, frequency-based compression algorithm for efficient storage.
- GUI: Built with Qt for an intuitive user experience with a responsive progress bar indicating operation status and operation progress.
- Multithreading: Multithreaded application separating UI and business logic on different threads to ensure responsive and efficient processing.
- GoogleTest Integration: Unit tests to ensure the functionality of key functionalities.
- C++17 or later
- Qt6 (Widgets)
- vcpkg (for package management)
- gtest (for testing)
-
Install dependencies via vcpkg:
vcpkg install qtbase[core,widgets,gui] gtest
-
Clone the repository:
git clone https://github.com/Phil1999/CompressionTool.git
cd CompressionTool
-
Configure the project with CMake:
cmake -B build DCMAKE_TOOLCHAIN_FILE=""
-
Build the project:
cmake --build build
After building, run the CompressionTool
executable located in the build
directory:
./build/CompressionTool
The tests are built as a separate executable (CompressionToolTests
). To run the tests:
./build/CompressionToolTests