GithubHelp home page GithubHelp logo

abhishek-pawar / zippy Goto Github PK

View Code? Open in Web Editor NEW
4.0 4.0 0.0 4.73 MB

Zippy : File compression/decompression software in Haskell

License: Other

Haskell 91.91% Shell 8.09%
haskell compression compression-algorithm compression-implementations lzw-compression huffman-compression-algorithm

zippy's Introduction

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

zippy's People

Contributors

abhishek-pawar avatar ninadakolekar avatar ssirowa avatar youremai avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

zippy's Issues

Help option

We need to ignore (optionalize) the second and third arguments when using the --help flag. How do we do that?

Help text written in Help_option branch.

Module defined in multiple files Error

@ninadakolekar On compiling the main.hs file in lzw directory, I get the following error message:

<no location info>: error:
module ‘main:Main’ is defined in multiple files: lzw_main.hs
lzw_shared.hs
lzw_compress.hs
lzw_decompress.hs

Folder Compression in LZW

Folder has to be recursively compressed, maintaining a directory structure.
Currently, it gives error on input directory in LZW program.

@ssirowa

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.