Compression et décompression dans le navigateur avec l'API Compression Streams

Écrire des applications Web plus petites qui n'ont pas besoin d'inclure leur propre bibliothèque de compression ou de décompression

L'API Compression Streams permet de compresser et de décompresser des flux de données à l'aide des formats gzip ou deflate (ou deflate-raw).

Avec la compression intégrée, les applications JavaScript n'ont pas besoin d'inclure de bibliothèque de compression, ce qui réduit la taille de téléchargement de l'application. Chrome stable et la version Preview de la technologie Safari sont désormais compatibles avec cette API utile. La compression des données est affichée ici.

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

Pour décompresser, pipez un flux compressé via le flux de décompression.

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

Démo

Prise en charge des navigateurs

L'API Compression Streams est compatible avec Chromium 80 et Safari Technology Preview 152.