A streaming compression / gzip library for node.js
C++ JavaScript Python
Switch branches/tags
Nothing to show
Pull request Compare This branch is 11 commits ahead, 5 commits behind Woodya:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
test
.gitignore
.travis.yml
LICENSE
README.md
binding.gyp
compress.cc
package.json
streaming.js

README.md

gzbz

Streaming gzip (zlib) and bzip2 (bzlib).

npm install gzbz

Examples

  • bzip.init

    • encoding (the output encoding, undefined/null means Buffers)
    • level [1-9], 1 fastest (least memory), 9 slowest (most memory), default = 1
    • workfactor [0-250], read libbz2 docs, default = 30
  • bunzip.init

    • encoding (the output encoding, undefined/null means Buffers)
    • small (boolean[false]) deflate in slow but small memory mode, default = false
  • inflate accepts a buffer or binary string[+encoding[default = 'binary']], output will be a buffer or a string encoded according to init options

  • deflate accepts a buffer or string[+encoding[default = 'utf8']], output will be a buffer or a string encoded according to init options

Gzip example

var gzbz = require("gzbz");

var gzip = new gzbz.Gzip();
gzip.init({encoding: 'binary', level: 5}); // 0 < level < 9

// Pump data to be compressed
var gzdata1 = gzip.deflate("My data that needs ", "ascii");
sys.puts("Compressed size : "+gzdata1.length);

// treat string as binary encoded
var gzdata2 = gzip.deflate("to be compressed. 01234567890.");
sys.puts("Compressed size : "+gzdata2.length);

var gzdata3 = gzip.end(); // important to capture end data
sys.puts("Last bit : "+gzdata3.length);

// Normally stream this out as its generated, but just print here
var gzdata = gzdata1+gzdata2+gzdata3;
sys.puts("Total compressed size : "+gzdata.length);

Gunzip example

var gzbz = require("gzbz");
var sys = require("sys");
var fs = require("fs");

var gunzip = new gzbz.Gunzip;
gunzip.init({encoding: "utf8"});

var gzdata = fs.readFileSync("somefile.gz", "binary");
var inflated = gunzip.inflate(testdata, "binary");
gunzip.end(); // returns nothing

Prerequisites:

The zlib and bzlib libraries must be installed normally, i.e., /usr/lib or /usr/local/lib. If the build process fails, you'll most likely need to change the include_dirs setting in binding.gyp.

Credits:

License

Copyright © 2013 Christopher Brown. MIT Licensed.