Сжатие и распаковка в браузере с помощью Compression Streams API

Создавайте небольшие веб-приложения, которым не нужно предоставлять собственную библиотеку сжатия или распаковки.

API потоков сжатия предназначен для сжатия и распаковки потоков данных с использованием форматов gzip или deflate (или deflate-raw).

Благодаря встроенной функции сжатия приложениям JavaScript не требуется включать библиотеку сжатия, что уменьшает размер загружаемого приложения. Стабильные версии Chrome и Safari Technology Preview теперь поддерживают этот полезный API. Сжатие данных показано здесь.

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

Для декомпрессии пропустите сжатый поток через декомпрессионный поток.

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

Демо

Поддержка браузеров

API потоков сжатия поддерживается начиная с Chromium 80 и Safari Technology Preview 152.