Skip to content
This repository has been archived by the owner on Jul 9, 2018. It is now read-only.
/ ZIPPY Public archive

Zippy : File compression/decompression software in Haskell

License

Notifications You must be signed in to change notification settings

Abhishek-Pawar/ZIPPY

Repository files navigation

Zippy

Build Status

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.

Getting Started

Running the application

Open a terminal window.

$ ./zippy <option> <input_file> <output_file>

Command-line Arguments

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.

Building from source

Zippy requires GHC 8.0.2+ to build source. Clone the repository.

$ cd haskell-13
$ chmod +x build.sh
$ ./build.sh

Authors