prodbyola / paramo

Paramo provides a simple and efficient way to compress and decompress files using the Huffman coding algorithm. Paramo aims to reduce the size of files while preserving data integrity.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Paramo

Paramo provides a simple and efficient way to compress and decompress files using the Huffman coding algorithm. Paramo aims to reduce the size of files while preserving data integrity.

Features

  • Huffman encoding for file compression.
  • Huffman decoding for decompression.
  • Command-line interface for easy compression and decompression.

Usage

To use paramo, you can supply the following arguments.

  • --input | -i: (required) The input file you wish to compress/decompress. If you're decompressing, this must be a file you compressed using Paramo.

  • --decode | -d: (optional) Specifies whether paramo should operate in decoding mode. This is a boolean value with false as default.

  • --output | -o: (optional) This is an optional output folder where you want Paramo to store your compressed/decompressed file. If not supplied, Paramo will use the same folder as the input.

  • --filename | -f: (optional) An optional output filename to be used for the compressed/decompressed filename. If not supplied, filename will be the same as input.

Example

paramo -i sample.txt

The command above will produce a sample.paramo encoded file. To decode the encoded file, run Paramo in decoding mode and set the encoded file as input:

paramo -i sample.paramo -d

Note on Output Extension

When compressing, output file extension will be .paramo. When decompressing, output file extension will same as original file.

Note on Compressible File Types

Huffman encoding (currently implemented in Paramo) is a lossless compression method and may not be very effective for compressing already compressed file formats like MP3, JPEG or ZIP files. It also not most suitable for compressing Random or Highly Entropic Data, Binary Executable Files, Highly Compressed Images and Videos, Encrypted Data or Already Compressed Archives.

Contributing

This is a Rust project. Contributions and improvments are highly welcomed!

About

Paramo provides a simple and efficient way to compress and decompress files using the Huffman coding algorithm. Paramo aims to reduce the size of files while preserving data integrity.

License:MIT License


Languages

Language:Rust 99.6%Language:Shell 0.4%