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

Escribe apps web más pequeñas que no necesiten incluir su propia biblioteca de compresión o descompresión.

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

Con la compresión integrada, las aplicaciones de JavaScript no necesitan incluir una biblioteca de compresión, lo que reduce el tamaño de descarga de la aplicación. Las versiones estables de Chrome y Safari Technology Preview ahora admiten esta útil API. Aquí se muestra la compresión de datos.

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

Para descomprimir, canaliza un flujo comprimido a través del flujo de descompresión.

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.