Zippy is a small file compression utility built purely in Haskell. It provides for two different data compression techniques, namely,
- Huffman Encoding
- Lempel–Ziv–Welch (LZW) Compression Algorithm
This project was built as a partial fullfilment towards CS2433-Principles of Programming Languages II (Spring'18) taught by Dr. Saurabh Joshi at IIT Hyderabad.
Open a terminal window.
$ ./zippy <option> <input_file> <output_file>
Zippy requires three command-line arguments : , <input_file> and <output_file>.
-
<option>
can take the following values:-c-huf
for compression using Huffman encoding.-c-lzw
for compression using LZW compression algorithm.-d-huf
for decompression using Huffman encoding.-d-lzw
for decompression using LZW compression algorithm.
-
<input_file>
is the relative path of the file to be compressed. -
<output_file>
is the relative path of the compressed/decompressed file.
Zippy requires GHC 8.0.2+ to build source. Clone the repository.
$ cd haskell-13
$ chmod +x build.sh
$ ./build.sh
- Pawar Abhishek Dwarkanath (cs16btech11027@iith.ac.in)
- Ninad Akolekar (cs16btech11024@iith.ac.in)
- Saahil Sirowa (cs16btech11030@iith.ac.in)