LZ77-Kit

Small LZ77 compression kit with implementation in JavaScript, PHP, Java and Python. Available as a code drop-in (source code).

LZ77-Kit

Introduction

The lz77-kit is aimed at being another tool in the web-mans tool belt, due to it's implementation in JavaScript, enabling a simple and very pragmatic compression utility for various needs.

It is perhaps not the sharpest compression-knife for heavy-duty cutting, but may suite some craft(wo)mens needs.

Download

There are currently no directly downloadable artifacts for this project - instead, you can get the source code directly from the repository at the link below:

https://github.com/olle/lz77-kit

Documentation

This could be a simple way for you to throttle down on some of that bandwidth usage, at least a few bytes or so. And a byte saved is a byte earned!

Features LZ77 implementations for the following languages:

  • JavaScript
  • PHP
  • Python
  • Java
  • Ruby

If you find that there is a language missing, please check clone the project on GitHub and make a contribution, adding an implementation for your favourite language.

Usage

  1. Get the project source code
  2. Go to the project directory
  3. Test and build using Ant on the comand line
    	 
    shell$> ant      # Tests and builds all        
    shell$> ant -p   # Shows some project information
    
  4. Look in the ./output folder for built artifacts
  5. Copy/paste what you need, but keep the license and credits please

Development

All source code have unit tests and the project is pretty independent and should be easy for any developer, with a decent development environment, to check out and and start working with.

Dependencies

  • Ant (tested with 1.7.x)
  • PHP 5.x
  • Java 1.5+
  • Python (tested only with 2.6)

And a shell, with slashes "the right way" (/)

Guidelines

  • Try to keep the self-dependent structure, add libs and depends into the project but be _very_ sparse.
  • Write tests and wire them to work with the Ant buildfile.
  • Keep implementations simple and open to copy/paste (e.g. no packages or namespaces if possible).
  • Code with joy, not in anger!
blog comments powered by Disqus

Fork me on GitHub