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

écrire des applications Web plus petites qui n'ont pas besoin de transmettre 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, dedeflate ou de décompression brute.

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

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

Pour décompresser, acheminez un flux compressé dans le flux de décompression.

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

Démonstration

Prise en charge des navigateurs

L'API Compression Streams est compatible avec Chromium 80 et Safari Technology Preview 152. Pour les autres navigateurs, cochez CanIUse.

Remerciements

Image principale créée par Matt Artz sur Unsplash.