A file compressor written in C++.
This application provides lossless compression and decompression for arbitrary binary files through the command-line interface.
- Lossless compression
- Binary-safe processing
- Custom
.rlefile format - Command-line interface
- Cross-platform (Linux, macOS, Windows with MinGW)
- Modular design for future algorithm expansion
- File format validation
- Future format versioning
- Corruption detection
The compressor operates on raw byte streams and can process:
.txt.bmp.raw.bin.csv.log- Any arbitrary binary file
The implementation uses byte-level RLE encoding.
Repeated byte sequences are stored in the format:
[count][byte]
cpp-compress -c input_file output_file.rlecpp-compress -d input_file.rle output_filecpp-file-compressor/
│
├── src/
│ ├──compressor/
│ ├──rle-compression/
│ ├── rle.cpp
│ └── rle.h
│ ├──huffman-compression/
│ ├── huffman-encoding.cpp
│ └── huffman-encoding.h
│ ├──file/
│ ├── file_reader.cpp
│ └── file_reader.h
│ ├── main.cpp
│
├── build/
├── README.md
└── LICENSEFuture additional compression techniques, will be:
- Huffman Coding
- LZ77 / LZ78
- LZW