You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Phuntsok Drak-pa bbfb669781 Merge branch 'master' of labs.phundrak.fr:phundrak/lzw-assignment 10 months ago
.circleci removed Doxygen from release build 2 years ago
src added nodiscard attributes 10 months ago
.gitignore better gitignore 1 year ago
.gitlab-ci.yml added gitlabCI config file 1 year ago
.travis.yml woops, forgot these lines 1 year ago
CMakeLists.txt removed Doxygen from release build 2 years ago
LICENSE Create LICENSE 2 years ago
Makefile Stripping binary from unneeded data 10 months ago
README.md Update README.md 1 year ago

README.md

CircleCI Travis Badge Codacy Badge CodeFactor SonarCloud Badge Spacemacs Badge

LZW Compressing tool

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.

How to use it

Currently, five different options are available to the user:

  • -h or --help will show how to use projet_lzw
  • -c or --compress tells projet_lzw to compress the input file
  • -u or --uncompress tells projet_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 is output.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.