The lz77-kit is aimed at being another tool in the web-persons tool belt, enabling a simple and very pragmatic compression utility for various languages. It's perhaps not the sharpest compression-knife for heavy-duty cutting, but may suite some craft-peoples needs.
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!
Currently features LZ77 implementations for the following languages:
- JavaScript
- PHP
- Python
- Java
- Ruby
- Erlang (ahem... maybe not quite there yet)
- Go
- OCaml
- Haskell
- Clojure
- Swift
- ObjectiveC
- Rust
- C
Are you missing a language? Please get involved and contribute!
- Get the project source code
- Go to the project directory
- Test and build using Ant on the command line.
To build and test all the current LZ77 implementation use the default build target:
shell$> ant
For more build information and project build targets, you may run:
shell$> ant -p
Look in the ./output
folder for the built artifacts and copy/paste what you
need. Please keep the license and credits in any generated source code or
scripts.
Thank you!
Being a project with such a broad programming language base, the requirements are more or less dependent on your target build platform. It's of course only possible to do a complete build if all programming languages are installed on that system.
I've lately had success building the project using the following:
- Ant 1.9.4
- PHP 5.4.30
- Java 1.8.0
- Python 2.7.5
- Ruby 2.0.0p481
- Erlang/OTP 17
Oh, and by the way, my shell have slashes that slant "the right way" (/).
The most source code have unit tests and the project is pretty independent, or free from third party dependencies, so it should be easy for any developer, with a decent environment, to clone and and start working with the code.
-
Try to keep the self-dependent structure, add libs and dependencies into the project but be very sparse.
-
Write tests and wire them to work with the Ant
build.xml
buildfile. -
Keep implementations simple and open to copy/paste (e.g. no packages or namespaces if possible).
-
Code with joy, not in anger!
This is all done with the hope of being of use to someone out there.