Compressione e decompressione nel browser con l'API Compression Streams

Scrivi app web più piccole che non devono includere una propria libreria di compressione o decompressione.

L'API Compression Streams comprime e decomprime i flussi di dati utilizzando i formati gzip o deflate (o deflate-raw).

Con la compressione incorporata, le applicazioni JavaScript non richiedono l'inclusione di una libreria di compressione, riducendo così le dimensioni di download dell'applicazione. Chrome stabile e Safari Technology Preview ora supportano questa utile API. La compressione dei dati è mostrata di seguito.

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

Per decomprimere, collega un flusso compresso attraverso il flusso di decompressione.

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

Demo

Supporto del browser

L'API Compression Streams è supportata da Chromium 80 e Safari Technology Preview 152. Per gli altri browser, seleziona CanIUse.

Ringraziamenti

Immagine hero di Matt Artz su Unsplash.