CoreZip is a C++ command-line file compression tool that implements a
lossless compression pipeline using Huffman encoding.
It supports both single-file compression and folder-based archive
compression, focusing on low-level compression mechanics, binary I/O,
and bit-level data handling.
- Version: v0.9
- Status: Core compression engine with folder/archive support
- Algorithm: Huffman Encoding
- Scope: Single-file and folder compression (archived)
CoreZip is designed as a modular compression engine built incrementally to explore how real-world compression tools work internally.
This version represents the foundational stage of the project, establishing a reliable Huffman-based pipeline along with basic archive handling for folders. The focus is on correctness and clarity rather than maximum compression efficiency.
- Lossless file compression using Huffman encoding
- Folder compression via custom archive creation
- Binary file input/output handling
- Bit-level stream management for efficient encoding
- Command-line interface for compression and decompression
- Integrity-preserving decompression for files and archives
- Read input file in binary mode
- Analyze byte frequency distribution
- Build Huffman tree
- Encode data using variable-length codes
- Write compressed output with metadata
- Traverse folder structure recursively
- Pack files into a custom archive format
- Compress archived data using Huffman encoding
- Restore original folder structure during decompression
CoreZip/
│
├── src/
│ ├── main.cpp
│ ├── huffman.h
│ ├── huffman.cpp
│ ├── bitstream.h
│ └── bitstream.cpp
│
├── data/
│ └── sample.txt
│
├── build/
│ └── (ignored)
│
└── README.md
This project is built and tested on Windows using GCC (MinGW).
g++ src\main.cpp src\huffman.cpp src\bitstream.cpp -o build\compress.exebuild\compress.exe compress file <input_file> <output_file>build\compress.exe compress file data\sample.txt build\sample.huffbuild\compress.exe decompress <archive_file> <output_file>build\compress.exe decompress build\sample.huff build\outbuild\compress.exe compress folder <input_folder> <output_archive>build\compress.exe compress folder data\testFolder build\folder.huffbuild\compress.exe decompress <archive_file> <output_folder>build\compress.exe decompress build\folder.huff build\outputFolderThis project is released under the MIT License.