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.
- Python 2.7
- GCC 4.8+ (Unix) or windows-build-tools (Windows), see Node Building tools.
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
};