Compressie en decompressie in de browser met de Compression Streams API

Schrijf kleinere webapps die geen eigen compressie- of decompressiebibliotheek nodig hebben

De Compression Streams API is bedoeld voor het comprimeren en decomprimeren van gegevensstromen met behulp van de formaten gzip of deflate (of deflate-raw).

Met ingebouwde compressie hoeven JavaScript-applicaties geen compressiebibliotheek te bevatten, waardoor de downloadgrootte van de applicatie kleiner wordt. Stabiel Chrome en Safari Technology Preview ondersteunen nu deze handige API. Het comprimeren van gegevens wordt hieronder weergegeven.

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

Om te decomprimeren, leidt u een gecomprimeerde stroom door de decompressiestroom.

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

Demo

Browser-ondersteuning

De Compression Streams API wordt ondersteund vanaf Chromium 80 en Safari Technology Preview 152. Voor andere browsers vinkt u CanIUse aan.

Dankbetuigingen

Hero-afbeelding door Matt Artz op Unsplash .