Skip to content

A dart library containing various algorithms for encoding and decoding text and numbers with compression.

License

Notifications You must be signed in to change notification settings

frozen-beak/turbo_zip

Repository files navigation

TurboZip 🚀🤐

pub package CI Last Commits Pull Requests GitHub Issues or Pull Requests License

A dart library containing various algorithms for encoding and decoding text and numbers with compression.

Quick Links

Installation

You can directly install TurboZip by adding turbo_zip: ^1.0.1 to your pubspec.yaml dependencies section

You can also add TurboZip to your project by executing,

  • For Flutter Project - flutter pub add turbo_zip
  • For Dart Project - dart pub add turbo_zip

Algorithms

LZW (Lempel-Ziv-Welch)

LZW compresses data by replacing repeated substrings with shorter codes, creating a dictionary dynamically during encoding. It's a lossless method used in GIF Images and Unix File compression.

LZW performs significantly faster then GZip in dart code. Have a look at benchmark results.

Here is how you can use LZW in your code,

import 'package:turbo_zip/turbo_zip.dart';

final String originalText = "TO BE OR NOT TO BE OR TO BE OR NOT";

final List<int> encodedText = LZW.encode(originalText);
print("Encoded Text : $encodedText");

final String decodedText = LZW.decode(encodedText);
print("Decoded Text: $decodedText");

print(originalText == decodedText); // true

👉 Note: Unicode characters like emojis are currently not supported by LZW. Keep in mind to handle exceptions thrown by both encode and decode functions of LZW in your code.

Benchmarks

To benchmark turbo_zip algorithms against industry leading algorithms, dart scripts are created in ./benchmarks/. Check them out here.

Contributing

PR's and Issues are open! If you'd like to improve TurboZip, please open an issue or an PR with your suggested changes in this repo. Happy Coding 🤝!

About

A dart library containing various algorithms for encoding and decoding text and numbers with compression.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages