3.5 KiB
3.5 KiB
iltorb
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.
- Python 2.7
- GCC 4.8+ (Unix) or windows-build-tools (Windows), see Node Building tools.
Methods
Async
compress(buffer[, brotliEncodeParams], callback)
const compress = require('iltorb').compress;
compress(input, function(err, output) {
// ...
});
decompress(buffer, 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)
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()
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
};