Compression Streams API を使用したブラウザでの圧縮と解凍

独自の圧縮ライブラリや解凍ライブラリを用意する必要がない小規模なウェブアプリを作成する

Compression Streams API は、gzip 形式または deflate(または deflate-raw)形式を使用してデータ ストリームを圧縮および解凍するために使用します。

組み込みの圧縮 JavaScript アプリケーションは、圧縮ライブラリを含める必要がないため、アプリケーションのダウンロード サイズを小さくできます。安定版の Chrome と Safari Technology Preview で、この便利な API がサポートされるようになりました。データの圧縮がここに表示されます。

const readableStream = await fetch('lorem.txt').then(
  (response) => response.body
);
const compressedReadableStream = readableStream.pipeThrough(
  new CompressionStream('gzip')
);

解凍するには、圧縮ストリームを解凍ストリームにパイプ処理します。

const decompressedReadableStream = compressedReadableStream.pipeThrough(
  new DecompressionStream('gzip')
);

デモ

ブラウザ サポート

Compression Streams API は、Chromium 80 と Safari Technology Preview 152 以降でサポートされています。