Compactação e descompactação no navegador com a API Compression Streams

Escrever apps da Web menores que não precisam enviar a própria biblioteca de compactação ou descompactação

A API Compression Streams é usada para compactar e descompactar fluxos de dados usando os formatos gzip ou deflate (ou deflate-raw).

Com a compactação integrada, os aplicativos JavaScript não precisam incluir uma biblioteca de compactação, o que reduz o tamanho do download do aplicativo. O Chrome estável e o Safari Technology Preview agora são compatíveis com essa API útil. A compactação de dados é mostrada aqui.

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

Para descompactar, transmita um fluxo compactado pelo fluxo de descompactação.

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

Demonstração

Suporte ao navegador

A API Compression Streams é compatível com o Chromium 80 e a prévia tecnológica 152 do Safari.