Compresión y descompresión en el navegador con la API de transmisiones de compresión

Escribir aplicaciones web más pequeñas que no necesiten enviar su propia biblioteca de compresión o descompresión

La API de Compression Streams para comprimir y descomprimir transmisiones de datos con los formatos gzip o deflate (o deflate-raw).

Con la compresión integrada de JavaScript, las aplicaciones no necesitan incluir una biblioteca de compresión, lo que reduce el tamaño de descarga de la aplicación. La versión estable de la tecnología de Chrome y Safari ahora es compatible con esta útil API. La compresión de datos se muestra a continuación.

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

Para descomprimir, canaliza una transmisión comprimida a través de ella.

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

Demostración

Navegadores compatibles

La API de Compression Streams es compatible con Chromium 80 y Safari Technology Preview 152. Para otros navegadores, marca CanIUse.

Agradecimientos

Hero image de Matt Artz en Unsplash.