Создавайте небольшие веб-приложения, которым не нужно предоставлять собственную библиотеку сжатия или распаковки.
API Compression Streams предназначен для сжатия и распаковки потоков данных с использованием форматов 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 Compression Streams поддерживается в Chromium 80 и Safari Technology Preview 152. Для других браузеров проверьте CanIUse .
Благодарности
Героическое изображение Мэтта Арца на Unsplash .