CompressionStream
#圧縮 #Deflate
CompressionStreamとDecompressionStreamは、圧縮アルゴリズムを用いたデータの圧縮ができるWeb API
三種のDeflate("deflate-raw"・zlib・gzip)が使える
https://developer.mozilla.org/en-US/docs/Web/API/CompressionStream
https://developer.mozilla.org/en-US/docs/Web/API/DecompressionStream
使用例
code:js
const inputBlob = new Blob('hello');
const compStream = inputBlob.stream().pipeThrough(new CompressionStream('gzip'));
const compBlob = await new Response(compStream).blob();
const decompStream = compBlob.stream().pipeThrough(new DecompressionStream('gzip'));
const decompBlob = await new Response(decompStream).blob();
対応状況
See: https://caniuse.com/wf-compression-streams
2022年4月現在、Firefoxは対応していないので注意
2023年5月にFirefoxも対応したよ!
Brotli
Brotli対応が検討されている
https://github.com/whatwg/compression/issues/34
2025-03: Safari 18.4でサポートされた 🔗
2025-08: Node.js 24.7.0でサポートされた 🔗
2026-01: Mozilla Firefox 147.0でサポートされた 🔗
Zstandard
Zstandardは、2026年1月現在、Bunだけ勝手に対応している お前なんなんだよ!!.icon