Skip to content Skip to sidebar Skip to footer

Javascript: Decompress / Inflate /unzip /ungzip Strings

I'm looking for JavaScript implementation of string inflating algorithms. I want to compress on the server side (Java), and decompress on the client side (JavaScript). I've found:

Solution 1:

Take a look at this Stack Overflow question, the answers there contains references to multiple compressing engines implemented in javascript. Most of these are based on LZ77.

Solution 2:

I don't know how you'd like that, but I like these implementations:

The first is fastest than second, We can usually ensure a fast server, however we don't know the performance of the client machine. Therefore I recommend you choose js-deflate and adjust your java (server side) to inflate.

https://github.com/dankogai/js-deflate

http://code.google.com/p/gzipjs/

Solution 3:

I created a working example using pako, modern and fast Zlib port. http://jsfiddle.net/9yH7M/2/

Solution 4:

there's this graphing library that has as part of it, a zlib implementation in javascript. if you scroll down this page a bit, you'll see it as a separate download. http://jsxgraph.uni-bayreuth.de/wp/download/

Solution 5:

This example: http://cheeso.members.winisp.net/srcview.aspx?dir=js-unzip shows how you can do ZIP files in Javascript. Now, I know you want ZLIB or DEFLATE compression, rather than ZIP. But, ZIP uses DEFLATE, and within the .js file for that example, there is an InflatingReader class that can INFLATE as it reads.

The class exposes these methods:

readByte()
   returns null when EOF is reached, or the value of the byte when successful.

readToEnd()
   returns an array of all bytes read, to EOF

beginReadToEnd(callback)
   async version of the above

readBytes(n)
   returns an array of n bytes read from the source.

beginReadBytes(n, callback)
   async version of the above

You can use that code unchanged if you want INFLATE.

If you want ZLIB (aka unzip), then there is a 2-byte signature that you need to read and validate before reading the compressed bytes and doing the INFLATE. Just modify the InflatingReader to read and dump 2 bytes, and it will do ZLIB just fine.

Post a Comment for "Javascript: Decompress / Inflate /unzip /ungzip Strings"