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

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

A API Compression Streams serve 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. A versão estável do Chrome e a prévia da tecnologia do Safari agora oferecem suporte a 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, encaminhe um fluxo compactado pelo fluxo de descompactação.

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

Demonstração

Suporte ao navegador

A API Compression Streams tem suporte a partir do Chromium 80 e da prévia de tecnologia do Safari 152.