iltorb

NPM Version Travis Build Status AppVeyor Build Status

iltorb is a Node.js package offering native bindings for the brotli compression library.

Install

This module uses prebuild to download a pre-compiled binary for your platform, if it exists. Otherwise, it will use node-gyp to build the module.

npm install iltorb

Prerequisites for Building

The following is required to build from source or when a pre-compiled binary does not exist.

Methods

Async

compress(buffer[, brotliEncodeParams], callback)

const compress = require('iltorb').compress;

compress(input, function(err, output) {
  // ...
});

decompress(buffer[, brotliDecodeParams], callback)

const decompress = require('iltorb').decompress;

decompress(input, function(err, output) {
  // ...
});

Sync

compressSync(buffer[, brotliEncodeParams])

const compressSync = require('iltorb').compressSync;

try {
  var output = compressSync(input);
} catch(err) {
  // ...
}

decompressSync(buffer[, brotliDecodeParams])

const decompressSync = require('iltorb').decompressSync;

try {
  var output = decompressSync(input);
} catch(err) {
  // ...
}

Stream

compressStream([brotliEncodeParams])

const compressStream = require('iltorb').compressStream;
const fs = require('fs');

fs.createReadStream('path/to/input')
  .pipe(compressStream())
  .pipe(fs.createWriteStream('path/to/output'));
compressionStream.flush()

Call this method to flush pending data. Don't call this frivolously, premature flushes negatively impact the effectiveness of the compression algorithm.

decompressStream([brotliDecodeParams])

const decompressStream = require('iltorb').decompressStream;
const fs = require('fs');

fs.createReadStream('path/to/input')
  .pipe(decompressStream())
  .pipe(fs.createWriteStream('path/to/output'));

brotliEncodeParams

The compress, compressSync and compressStream methods may accept an optional brotliEncodeParams object to define some or all of brotli's compression parameters:

const brotliEncodeParams = {
  mode: 0,
  quality: 11,
  lgwin: 22,
  lgblock: 0,
  size_hint: 0, // automatically set for `compress` and `compressSync`
  disable_literal_context_modeling: false,
  dictionary: Buffer
};

brotliDecodeParams

The decompress, decompressSync and decompressStream methods may accept an optional brotliDecodeParams object to provide a custom dictionary.

const brotliDecodeParams = {
  dictionary: Buffer
};