0.0.2 • Published 9 years ago

pako-hx v0.0.2

Weekly downloads
2
License
MIT
Repository
github
Last release
9 years ago

hxPako

pako v0.2.7 port to haxe, for cross-platform zlib functionality.

###Features

  • Works in flash/js/neko/cpp.
  • Chunking support for big blobs.
  • Results are binary equal to well known zlib (now v1.2.8 ported).

###API

import pako.Pako;

// Deflate
//
var input = new UInt8Array();
//... fill input data here
var output = Pako.deflate(input);

// Inflate (simple wrapper can throw exception on broken stream)
//
var compressed = new UInt8Array();
//... fill data to uncompress here
try {
  var result = Pako.inflate(compressed);
} catch (err:Dynamic) {
  trace(err);
}

//
// Alternate interface for chunking & without exceptions
//

var inflator = new pako.Inflate();

inflator.push(chunk1, false);
inflator.push(chunk2, false);
...
inflator.push(chunkN, true); // true -> last chunk

if (inflator.err) {
  trace(inflator.msg);
}

var output = inflator.result;

For more info you can consult pako documentation.

###Notes hxPako (like pako) does not contain some specific zlib functions:

  • deflate - methods deflateCopy, deflateBound, deflateParams, deflatePending, deflatePrime, deflateSetDictionary, deflateTune.
  • inflate - inflateGetDictionary, inflateCopy, inflateMark, inflatePrime, inflateSetDictionary, inflateSync, inflateSyncPoint, inflateUndermine.

hxPako only supports UInt8Array (unlike pako, which also works with strings and arrays). But it's easy to extend to those too by using UInt8Array.fromBytes() and UInt8Array.fromArray().

###Test Suite Timings Current timings (node.js refers to the original suite from pako, which you can test by running mocha in the top folder). See testAll.hxml.

platformreleasedebug
node.js5.8s-
cpp6.7s96.7s
js11.5s13.2s
flash40.8s141.4s
neko158.5s177.1s

###Authors

  • Andrey Tupitsin and Vitaly Puzrin (original pako lib)
  • Me (haxe port)

###License MIT