Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

wasm-brotli

Package Overview
Dependencies
Maintainers
1
Versions
6
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

wasm-brotli

🗜 WebAssembly compiled Brotli library

  • 2.0.1
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
1.6K
decreased by-37.29%
Maintainers
1
Weekly downloads
 
Created
Source

wasm-brotli

WebAssembly compiled Brotli library.

Installation

npm install -S wasm-brotli

The awesome thing about wasm-brotli is that it does not need to compile or download any prebuilt binaries!

Usage

Because WebAssembly is supported on both Node.js and several browsers, wasm-brotli is super easy to use.

Node.js

An example of compressing something and saving it to a file via Node.js.

import { compress } from 'wasm-brotli';
import { writeFile } from 'fs';
import { promisify } from 'util';

const writeFileAsync = promisify(writeFile);

const content = Buffer.from('Hello, world!', 'utf8');

(async () => {
  try {
    const compressedContent = await compress(content);
    await writeFileAsync('./hello_world.txt.br', compressedContent);
  } catch (err) {
    console.error(err);
  }
})();

Browser

An example of compressing something and downloading it from the browser.

import { compress } from 'wasm-brotli';

const content = new TextEncoder('utf-8').encode('Hello, world!');

(async () => {
  try {
    const compressedContent = await compress(content);

    const file = new File([compressedContent], 'hello_world.txt.br', { type: 'application/brotli' });

    const link = document.createElement('a');
    link.setAttribute('href', URL.createObjectURL(file));
    link.setAttribute('download', file.name);
    link.click();
  } catch (err) {
    console.error(err);
  }
})();

Documentation

compress(buffer)

  • buffer <Uint8Array>

Compress buffer using Brotli compression.

decompress(buffer)

Decompress buffer using Brotli decompression.

Development

To build wasm-brotli you will need to install wasm-pack. After that all that is needed is to do the following:

  1. Install all dependencies.

    npm install
    
  2. Build the module.

    npm run build
    
  3. Test the module.

    npm test
    

Benchmark

  1. Build wasm-brotli if you haven't already done so— see instructions here.

  2. Build and run the benchmark.

    npm run benchmark
    
  3. Wait a while... The tests might run quite slow.

These results are run on a Dell XPS 13 9360 with an Intel® Core™ i7-7500U CPU @ 2.70GHz × 4 and 16 GB 1866 MHz DDR3 memory, running Ubuntu 19.10:

iltorb (native compress)      1 byte(s)  x 5,159 ops/sec ±9.73% (66 runs sampled)
wasm-brotli (wasm compress)   1 byte(s)  x 49.80 ops/sec ±0.61% (78 runs sampled)
iltorb (native compress)      1024 byte(s)       x 329 ops/sec ±1.63% (81 runs sampled)
wasm-brotli (wasm compress)   1024 byte(s)       x 32.33 ops/sec ±0.77% (76 runs sampled)
iltorb (native compress)      1038336 byte(s)    x 2.23 ops/sec ±1.20% (15 runs sampled)
wasm-brotli (wasm compress)   1038336 byte(s)    x 1.03 ops/sec ±0.93% (10 runs sampled)

FAQs

Package last updated on 10 Nov 2019

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc