Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

ayonious/File-Compression

Repository files navigation

File Compression

CI codecov GitHub stars

A File Compression software that helps zip/Unzip files using these 2 algorithms:

  1. Huffmans Code
  2. Lempel-Ziv-Wells algorithm

About Huffmans Code

The Huffmans algo creates a 1-1 mapping for each byte of the input file and replaces each byte with the mapped bit sequence. For this you need to store a dictionary that describes each 1-1 mapping of input byte and binary sequence.(which needs extraspace)

About Lempel-Ziv-Wells

Unlike Huffmans code LZW dont need an extra dictionary to be saved. Also LZW does not create a mapping to byte to bin sequence. It creates mapping of multiple byte to binary sequence.

Installation

Prerequisites

  • Java 21 or higher
  • Maven (for building)
Installing Maven (click to expand)

On macOS:

brew install maven

Verify installation:

mvn -version

Building and Running

Directly Run the jar file

I have included the already build jar file. You can run it simply if you dont want to build

java -jar file-compression-2.0-SNAPSHOT-jar-with-dependencies.jar

Build and Run the project Using Maven

mvn clean package
mvn test
mvn exec:java

Using JAR directly

After building with Maven, you can run the JAR:

java -jar target/file-compression-2.0-SNAPSHOT-jar-with-dependencies.jar

Outlook

Testing environment:

I tested this project in: MacOS Tahoe (version 26.0.1)

About

πŸ“¦ Zip and Unzip files using Huffman's code and LZW Algorithm

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

Languages

AltStyle γ«γ‚ˆγ£γ¦ε€‰ζ›γ•γ‚ŒγŸγƒšγƒΌγ‚Έ (->γ‚ͺγƒͺγ‚ΈγƒŠγƒ«) /