WebAssembly powered compression and decompression in the browser and server.
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