Skip to content
Oeiuwq Faith Blog OpenSource Porfolio

drbh/wasm-flate

🗜️⚡WebAssembly powered compression and decompression in the browser and server. Supports GZIP, ZLIB and DEFLATE

drbh/wasm-flate.json
{
"createdAt": "2019-05-06T16:13:19Z",
"defaultBranch": "master",
"description": "🗜️⚡WebAssembly powered compression and decompression in the browser and server. Supports GZIP, ZLIB and DEFLATE",
"fullName": "drbh/wasm-flate",
"homepage": "https://www.npmjs.com/package/wasm-flate",
"language": "Rust",
"name": "wasm-flate",
"pushedAt": "2020-03-16T19:47:25Z",
"stargazersCount": 483,
"topics": [],
"updatedAt": "2025-11-13T17:56:28Z",
"url": "https://github.com/drbh/wasm-flate"
}

Tweet

npm version dependencies Status

WebAssembly powered compression and decompression in the browser and server.

Documentation

var flate = require('wasm-flate');
var pako = require('pako');
var data = new Uint8Array( Buffer.from('Hello World') );
// Uint8Array [
// 72, 101, 108, 108,
// 111, 32, 87, 111,
// 114, 108, 100
// ]

compress with wasm-flate

flate.deflate_encode_raw(data)
// Uint8Array [
// 243, 72, 205, 201, 201,
// 87, 8, 207, 47, 202,
// 73, 1, 0
// ]

Then compress with pako

pako.deflateRaw(data)
// Uint8Array [
// 243, 72, 205, 201, 201,
// 87, 8, 207, 47, 202,
// 73, 1, 0
// ]

you can see the output is the same 🎉

you can even compress with one library and decompress with the other one

var data = new Uint8Array( Buffer.from('Hello World') );
var compressed_with_wasm_flate = flate.deflate_encode_raw(data)
var decompressed_with_pako = pako.inflateRaw(compressed_with_wasm_flate)
// covert to a string - since JS doesnt let us directly compare UintArrays
var original = new TextDecoder("utf-8").decode(data)
var evaluated = new TextDecoder("utf-8").decode(decompressed_with_pako)
original === evaluated
// true

If you found wasm-flate useful feel free to buy me a beer 🍺 or two 😀
BTC - 3QVK6D5QCZDSyLzFL3ZbELokyuSprRQQZF