Kompresi dan dekompresi di browser dengan Compression Streams API

Menulis aplikasi web yang lebih kecil yang tidak perlu menyertakan library kompresi atau dekompresi miliknya sendiri

Compression Streams API digunakan untuk mengompresi dan mendekompresi aliran data menggunakan format gzip atau deflate (atau deflate-raw).

Dengan kompresi bawaan, aplikasi JavaScript tidak perlu menyertakan library kompresi, sehingga ukuran download aplikasi menjadi lebih kecil. Pratinjau Teknologi Chrome dan Safari yang Stabil kini mendukung API yang berguna ini. Mengompresi data ditampilkan di bawah ini.

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

Untuk mendekompresi, pipakan aliran terkompresi melalui aliran dekompresi.

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

Demo

Dukungan browser

Compression Streams API didukung dari Chromium 80 dan Safari Technology Preview 152. Untuk browser lainnya, periksa CanIUse.

Ucapan terima kasih

Banner besar oleh Matt Artz di Unsplash.