comprezzor

easy and reusable way to compress and decompress text data without headers (e.g. for storage in redis)

npm install comprezzor
16 downloads in the last week
37 downloads in the last month

easy and reusable way to compress and decompress text data without headers (e.g. for storage in redis)

new in 0.0.9 - option to disable compression

var opts = {
    disabled: true
};

new in 0.0.7 - direct usage - a new Zlib engine is created upon each use

var opts = {
    // ...
    direct: true
    // ...
};

new in 0.0.6 - pooling:


var opts = {
    // ...
    pool: {
        max: 100
        // see for more: https://github.com/coopernurse/node-pool#documentation
    }
    // ...
};

var zip = new comprezzor(true, opts);
var unzip = new comprezzor(false, opts);

// use from multiple threads

zip.pool.destroyAllNow();
unzip.pool.destroyAllNow();

usage:

var laeh2 = require('laeh2');
var _x = laeh2._x;
var _e = laeh2._e;

var comprezzor = require('comprezzor');

function cb(err, res) {
    console.log(err ? err.stack : res);
}

var opts = {
    windowBits: 14,
    memLevel: 7,
    level: 'Z_BEST_COMPRESSION',
    strategy: 'Z_DEFAULT_STRATEGY'
};

var zip = new comprezzor(true, opts);
var unzip = new comprezzor(false, opts);

console.log('zip: ' + zip.info());
console.log('unzip: ' + unzip.info());

var input = 'my test input. my test input. my test input. my test input. my test input. my test input.';

console.log('input: %s', input);
console.log('input length: %d', input.length);

zip.make(input, _x(cb, true, function(err, res) {

    // res is a buffer now

    //console.log(res);
    console.log('zipped length: %d', res.length);

    unzip.make(res, _x(cb, true, function(err, res) {

        // res is a string now

        // console.log(res);
        console.log('unzipped length: %d', res.length);

        zip.make(res, _x(cb, true, function(err, res) {

            // res is a buffer now

            //console.log(res);

            unzip.make(res, _x(cb, true, function(err, res) {

                // res is a string now

                cb(null, res === input ? 'match' : 'no match');
            }));
        }));

    }));
}));
npm loves you