π
archiver archiver
is a compressing/decompressing tool made for educational purposes (specifically, it was a hometask given at a C++ course in the HSE university).
Being written in C++ and using Huffman coding techinque for data compression, this tool uses extremely small amount of RAM, while having pretty decent compressing/decompressing speeds.
archiver
can be used as an every-day tool, however it requires some attention from the end-user. (just like the dd
command
Installation
- Clone this repository --
git clone https://github.com/chopikus/archiver.git
. - Open the cloned folder --
cd archiver
. - Create new folder for building the tool, and open it --
mkdir build && cd build
. - Run the following command:
cmake .. && make
. After that the executable file namedarchiver
should appear.
Usage
archiver -c ARCHIVE file1 [file2...]
-- compress filesfile1
,file2
, ... into an archive namedARCHIVE
;archiver -d ARCHIVE
-- decompress archive namedARCHIVE
into the current folder;archiver -h
-- show help message.
Sections below are not fully written yet.
Benchmarks
Video compression
This rickroll video was used for benchmarking (downloaded in 360p).
- Initial file size -- 63.1 MB
- Archive size -- 62.8 MB (space saving: 0.4%)
- Compressing time -- 11.6s (speed: ~5.5MB/s)
- Decompressing time -- 28.9s (speed: ~2.2MB/s)
Text compression
Testing compression of book "War and Peace" written by Leo Tolstoy.
- File format --
txt
- Initial file size -- 5.3 MB
- Compressed size -- 2.6 MB (space saving: 52.9%)
- Compressing time -- 0.49s (speed: ?)
- Decompressing time -- ? (speed: ?)
Details
Running tests
TODO
Optimizations
TODO
File format
TODO