This is a university assignment for which I aim to create an LZW algorithm implementation to create a small tool similar to gzip
and gunzip
that can compress and uncompress files in a lossless fashion.
This project is written is C++17, compiled with clang under a UNIX environment. Other compilers and environments will not be tested.
Currently, five different options are available to the user:
-h
or--help
will show how to useprojet_lzw
-c
or--compress
tellsprojet_lzw
to compress the input file-u
or--uncompress
tellsprojet_lzw
to uncompress the input file-i <file>
or--input <file path>
specifies the input file to be compressed or uncompressed (MANDATORY)-o <file>
or--output <file path>
specifies the name of the output file. If not used, the default output name for compression isoutput.lzw
, and the default name for uncompressing is<filename>_uncompressed
.
By default, projet_lzw
will uncompress the (mandatory) input file.
It is planned to add in the future a sixth option, -p
or --passes
that will allow to compress multiple times the input file.