/wasm-flate

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

Primary LanguageRustApache License 2.0Apache-2.0

🗜️⚡ wasm-flate wapm version

Tweet

npm version dependencies Status

WebAssembly powered compression and decompression in the browser and server.

Docs

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

Donate Here

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