MCPcopy Index your code
hub / github.com/dfrankland/wasm-brotli

github.com/dfrankland/wasm-brotli @v1.0.2

Chat with this repo
repository ↗ · DeepWiki ↗ · release v1.0.2 ↗ · + Follow
15 symbols 53 edges 8 files 0 documented · 0% updated 3y ago★ 734 open issues

Browse by type

Functions 15 Types & classes 0
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

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)

Compress buffer using Brotli compression.

decompress(buffer)

Decompress buffer using Brotli decompression.

brotli(method, buffer)

  • method <BROTLI_COMPRESS> | <BROTLI_DECOMPRESS>
  • buffer <Uint8Array>

The function that compress and decompress wrap. Pass any of the constants below and a buffer to compress or decompress.

BROTLI_COMPRESS

Constant, reference, for compressing a buffer with brotli.

BROTLI_DECOMPRESS

Constant, reference, for decompressing a buffer with brotli.

Benchmark

Want to see how fast this is? Go to the benchmark directory to see results, instructions on running your own benchmark, and more.

Development

To build wasm-brotli you will need to install Docker, and pull rustlang/rust:nightly. After that all that is needed is to do the following:

  1. Install all dependencies.
npm install
  1. Build the module.
npm run build
  1. Test the module.
npm test

Core symbols most depended-on inside this repo

Shape

Function 15

Languages

Rust60%
TypeScript40%

Modules by API surface

src/brotli/src/main.rs9 symbols
src/index.js3 symbols
src/cString.js2 symbols
rollup.config.js1 symbols

For agents

$ claude mcp add wasm-brotli \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page