iltorb is a Node.js package offering native bindings for the brotli compression library.
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
The following is required to build from source or when a pre-compiled binary does not exist.
const compress = require('iltorb').compress; compress(input, function(err, output) { // ... });
const decompress = require('iltorb').decompress; decompress(input, function(err, output) { // ... });
const compressSync = require('iltorb').compressSync; try { var output = compressSync(input); } catch(err) { // ... }
const decompressSync = require('iltorb').decompressSync; try { var output = decompressSync(input); } catch(err) { // ... }
const compressStream = require('iltorb').compressStream; const fs = require('fs'); fs.createReadStream('path/to/input') .pipe(compressStream()) .pipe(fs.createWriteStream('path/to/output'));
Call this method to flush pending data. Don't call this frivolously, premature flushes negatively impact the effectiveness of the compression algorithm.
const decompressStream = require('iltorb').decompressStream; const fs = require('fs'); fs.createReadStream('path/to/input') .pipe(decompressStream()) .pipe(fs.createWriteStream('path/to/output'));
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 };
The decompress
, decompressSync
and decompressStream
methods may accept an optional brotliDecodeParams
object to provide a custom dictionary.
const brotliDecodeParams = { dictionary: Buffer };