Brotli decompressor for browsers and web workers with WASM, which still has a small size (about 300KB)
If you are looking for a compressor, see Alternatives
- Stream support
Starting from v2.0.0, this package becomes an exact drop-in replacement of brotli-wasm.
You can simply replace
import brotli from 'brotli-wasm' with
import brotli from 'brotli-dec-wasm' to switch from or to this package.
More detailed usage can be found in brotli-wasm Usage section.
You can also refer to the unit tests in brotli-wasm:test/brotli.spec.ts to see how to use by examples.
Broken in webpack 5
BREAKING CHANGE: Since webpack 5 WebAssembly is not enabled by default and flagged as experimental feature. You need to enable one of the WebAssembly experiments via 'experiments.asyncWebAssembly: true' (based on async modules) or 'experiments.syncWebAssembly: true' (like webpack 4, deprecated).
experiments.syncWebAssembly: true for old code,
experiments.asyncWebAssembly: true for new code.
Build configuration such as
opt-level = "s", are fine-tuned with manual tests, to make the bundle as small as possible
- brotli-wasm: A reliable compressor and decompressor for Brotli, supporting node & browsers via wasm. If you need a compressor, use it. Actively maintained by an organization.
More alternatives are available in brotli-wasm Alternatives section
One surprising thing is, in
At least >= v1.3.3
- < v1.3.3: Rust dependency wee_alloc is unmaintained and has open serious issues. Use version >= 1.3.3 to replace it with the default Rust allocator on wasm32 targets.
Copyright (C) myl7
SPDX-License-Identifier: MIT OR Apache-2.0
At your option. Unless otherwise explicitly stated.