Hareg Archiver is a robust and efficient file compression tool that utilizes LZSS and Huffman coding algorithms. Future developments include a user-friendly interface built with Flutter, additional algorithms like LZW and LZMA, file streaming support, and optimizations using CUDA and SIMD.
We try to use modern C++ following the google style guide LINK
Currently tested on text, video, executable files.
-
Currently Accomplished
- ☑ LZSS: A dictionary-based compression algorithm that replaces repeated occurrences of data with references to a single copy of that data existing earlier in the uncompressed data stream.
- ☑ Huffman Coding: An entropy encoding algorithm used for lossless data compression.
- ☑ Simple File Format: a simple file format to compress/decompress single files.
-
Planned Features
-
☐ g++ compatbility
-
☐ Binary Search Tree Optimization for lzss matcher: Optimizer the Linked List Matcher(O(N^2)) to Binary searth Tree(O(logN))
-
☐ Unit Test: Test files using gtest.
-
☐ Stream Compression: Handle compression/decompression in a block style to handle file size that are greater than the ram.
-
☐ Folders: Compressing folders and files
-
☐ UI with Flutter: A cross-platform UI toolkit to provide a seamless and interactive user experience.
-
☐ Self Extract: Add a way to make setup like executables that can self extract.
-
Additional Compression Algorithms:
- ☐ LZW: A dictionary-based compression algorithm that works by replacing strings of characters with single codes.
- ☐ LZMA: An algorithm that achieves a high compression ratio by using a dictionary compression scheme.
- ☐ Bzip: A block-sorting compression algorithm that uses the Burrows–Wheeler transform.
- ☐ Delta Compression
-
☐ File Streaming Support: Capability to handle continuous data streams for compression and decompression.
-
☐ CUDA Optimizations: Utilize NVIDIA's parallel computing platform to enhance performance.
-
☐ SIMD Optimizations: Use Single Instruction, Multiple Data techniques to process data more efficiently.
-
☐ General Optimizations
- ☐ ISO
- ☐ ZIP
- ☐ BZIP
- ☐ CAB
-
- MSVC Compiler
- CMake
- Git
- Clone the repository and run cmake to generate the build files for the respective envoriment:
git clone https://github.com/yourusername/hareg-archiver.git cd hareg-archiver cmake .