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

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

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

Com a compactação integrada, os aplicativos JavaScript não precisam incluir uma biblioteca de compactação, o que diminui o tamanho do download do aplicativo. A Visualização da tecnologia estável do Chrome e do Safari agora oferece suporte a essa API útil. A compactação de dados é mostrada abaixo.

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

Para descompactar, canalize um stream compactado pelo stream 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 Safari Technology Preview 152. Para outros navegadores, marque CanIUse.

Agradecimentos

Imagem principal de Matt Artz no Unsplash (links em inglês).