brotli-wasm 使用指南
Brotli-wasm 是一个高效且兼容性强的 Brotli 压缩与解压缩库,特别设计用于支持 Node.js 环境(版本12及以上)以及所有现代浏览器。通过 WebAssembly(WASM)技术实现,确保了在不同平台上的高性能表现。本指南旨在提供全面的安装步骤、基本使用方法、API文档以及特定场景下的应用示例。
安装指南
在您的Node.js项目中,可以通过NPM轻松安装brotli-wasm:
npm install brotli-wasm
对于Web环境,可以利用CDN直接加载:
const brotli = await import("https://unpkg.com/brotli-wasm@3.0.0/index.web.js?module").then(m => m.default);
或者,在具备ES模块支持的构建系统中(如Webpack、Vite或Rollup),使用标准的导入语句:
import brotliPromise from 'brotli-wasm';
注意:由于浏览器需要异步加载WASM文件,上述导入应被包含在一个async函数中。
项目的使用说明
在Node.js中的基础使用
不需要等待Promise解析,可以直接使用默认导出的功能:
const brotli = require('brotli-wasm');
let input = Buffer.from('这是测试文本');
let compressed = brotli.compress(input);
let decompressed = brotli.decompress(compressed);
console.log(decompressed.toString()); // 输出: 这是测试文本
浏览器环境的使用
由于WASM的特性,必须使用异步加载,并且推荐使用TextEncoder/TextDecoder处理字符串和缓冲区之间的转换:
import brotliPromise from 'brotli-wasm';
(async () => {
const brotli = await brotliPromise;
let input = '这是测试文本';
let encodedInput = new TextEncoder().encode(input);
let compressed = brotli.compress(encodedInput);
let decompressed = brotli.decompress(compressed);
console.log(new TextDecoder().decode(decompressed)); // 输出: 这是测试文本
})();
项目API使用文档
-
compress(data: Buffer, [options]): Buffer 压缩给定的Buffer数据。
options
对象可选,目前仅支持quality
选项(范围1到11)。 -
decompress(data: Buffer): Buffer 解压缩给定的Buffer数据。
此外,还提供了高级流处理接口:
- CompressStream
- DecompressStream 用于支持数据流的压缩与解压缩,具体使用可参考项目中的测试案例。
项目安装方式(重申)
- 对于Node.js项目,运行命令
npm install brotli-wasm
。 - 在Web项目中,可采用
import
语句结合CDN或者通过NPM包管理后配置importmap
来实现。
以上就是对brotli-wasm的详细介绍,它简化了在JavaScript环境中使用Brotli压缩和解压缩的流程,无论是服务端还是客户端都能得到一致而高效的体验。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考