Skip to main content

ZSTD Web

Simple web implementation for the Zstandard compression library.

This library should work on any modern browser that accept WebAssembly.

Please note that I am not the creator of this module, you can find the original source here : https://deno.land/x/zstd_wasm

Here is a basic exemple of usage :

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Zstd</title>
</head>
<body>
    <script type="module">
        import { decompress, compress } from "https://raw.githubusercontent.com/hironichu/zstd-web/main/zstd.js"
        const before = new Uint8Array(new ArrayBuffer(1024 * 1024 * 10))
        const data = compress(before)
        const after = decompress(data)
        console.assert(before.byteLength === after.byteLength)
        console.table({"Uncompressed": before.byteLength,"Compressed": data.byteLength, "Decompressed": after.byteLength}, ["byteLength"])

        const exemple2 = new Uint8Array(new ArrayBuffer(1024 * 1024 * 50))
        const newdata = new Uint8Array(...[exemple2].flat())
        const newdata2 = compress(newdata)
        const newdata3 = decompress(newdata2)
        console.assert(newdata.byteLength === newdata3.byteLength)
        console.table({"Uncompressed": newdata.byteLength,"Compressed": newdata2.byteLength, "Decompressed": newdata3.byteLength})
    </script>
</body>
</html>