.. | ||
build | ||
dec | ||
enc | ||
.npmignore | ||
compress.js | ||
decompress.js | ||
index.js | ||
package.json | ||
readme.md |
Brotli.js
Brotli.js is port of the Brotli compression algorithm (as used in the WOFF2 font format) to JavaScript. The decompressor is hand ported, and the compressor is ported with Emscripten. The original C++ source code can be found here.
Installation and usage
Install using npm.
npm install brotli
If you want to use brotli in the browser, you should use Browserify to build it.
In node, or in browserify, you can load brotli in the standard way:
var brotli = require('brotli');
You can also require just the decompress
function or
just the compress
function, which is useful for browserify
builds. For example, here’s how you’d require just the
decompress
function.
var decompress = require('brotli/decompress');
API
brotli.decompress(buffer, [outSize])
Decompresses the given buffer to produce the original input to the
compressor. The outSize
parameter is optional, and will be
computed by the decompressor if not provided. Inside a WOFF2 file, this
can be computed from the WOFF2 directory.
// decode a buffer where the output size is known
.decompress(compressedData, uncompressedLength);
brotli
// decode a buffer where the output size is not known
.decompress(fs.readFileSync('compressed.bin')); brotli
brotli.compress(buffer, isText = false)
Compresses the given buffer. Pass optional parameters as the second argument.
// encode a buffer of binary data
.compress(fs.readFileSync('myfile.bin'));
brotli
// encode some data with options (default options shown)
.compress(fs.readFileSync('myfile.bin'), {
brotlimode: 0, // 0 = generic, 1 = text, 2 = font (WOFF2)
quality: 11, // 0 - 11
lgwin: 22 // window size
; })
License
MIT