Kompresja i dekompresja w przeglądarce z użyciem interfejsu API Kompresji Streams

Można tworzyć mniejsze aplikacje internetowe, które nie muszą zapewniać własnej biblioteki kompresji ani dekompresji.

Interfejs Compression Streams API służy do kompresowania i dekompresowania strumieni danych za pomocą formatu gzip lub deflate (czyli deflate-raw).

Aplikacje JavaScript z wbudowaną kompresją nie muszą zawierać biblioteki kompresji, dzięki czemu zmniejsza się rozmiar pliku do pobrania. Ten przydatny interfejs API obsługuje teraz stabilne wersje Chrome i Safari Technology Preview. Poniżej pokazano kompresowanie danych.

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

Aby dokonać dekompresji, przeciągnij skompresowany strumień przez strumień dekompresji.

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

Demonstracyjny

Obsługiwane przeglądarki

Interfejs kompresji Streams API jest obsługiwany w Chromium 80 i Safari Technology Preview 152. W przypadku innych przeglądarek zaznacz CanIUse.

Podziękowania

Baner powitalny autorstwa: Matt Artz w serwisie Unsplash.