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 enviar su propia biblioteca de compresión o descompresión

La API de Compression Streams se usa para comprimir y descomprimir flujos de datos mediante los formatos gzip o desinflación (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 la Versión preliminar de tecnología de Safari ahora admiten esta API útil. La compresión de datos se muestra aquí.

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 la transmisión 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 la Versión preliminar de tecnología de Safari 152.