TGViewer
Катерина | Про Frontend Катерина | Про Frontend @katerina_profrontend · 2.86K subscribers
Post #1556 1.54K
Compression Streams API — нативный gzip/deflate прямо в браузере 🤔

Недавно снова вспомнила про Compression Streams API — и это тот случай, когда платформа уже умеет то, ради чего раньше тянули библиотеку. 🤭

Это встроенное потоковое API для сжатия и распаковки данных в форматах gzip и deflate. Работает поверх Streams, то есть данные обрабатываются по частям, без загрузки всего в память.


Если коротко: теперь можно сжимать и распаковывать данные прямо в клиенте — без сторонних зависимостей.

🧩 Что важно запомнить?

✔️ Форматы: gzip, deflate;
✔️ Классы: CompressionStream и DecompressionStream;
✔️ Работает поверх Streams — данные идут по частям, без загрузки всего в память;
✔️ Используется через pipeThrough() — вписывается в любую стрим-цепочку

ReadableStream → CompressionStream → WritableStream — и всё это идёт «на лету».

🧩 Пример: сжимаем в gzip


async function compress(text) {
const encoder = new TextEncoder();
const stream = new Blob([encoder.encode(text)]).stream();

const compressed = stream
.pipeThrough(new CompressionStream("gzip"));

return await new Response(compressed).blob();
}


🧩 Где это полезно?

⏺️ сжимать данные перед отправкой на сервер;
⏺️ осохранять/обрабатывать большие JSON / CSV / логи;
⏺️ уменьшать зависимость от библиотек — особенно при больших файлах

Из минусов: поддерживаются только gzip и deflate (без ZIP-архивов), нельзя настраивать уровень сжатия, а в старых браузерах API может быть недоступно. 😕

В итоге, это удобная и незаметная фича платформы — для большинства простых задач сжатия её хватает. 👍
  • 🔥 21
More from @katerina_profrontend
  1. Feb 22, 2026Когда height: 100% чуть-чуть поломало вёрстку 🙈 Я делала простую сетку: контейнер display…
  2. Feb 20, 2026Разбираемся с Proxy в JavaScript 👨‍🏫 Proxy — посредник между кодом и объектом. Он перехв…
  3. Feb 9, 2026Почему бизнес-логику не стоит писать в UI-компонентах 🧐 Часто вижу один и тот же паттерн:…
  4. Feb 6, 2026Как неочевидные импорты превращают проект в клубок зависимостей 😨 На бумаге — простое пра…
  5. Feb 2, 2026«Хочу стиль для p в header, но не хочу повышать специфичность» 😎 Иногда самая тривиальная…
  6. Jan 29, 2026Связность и сцепленность: как написать код, который не боишься менять 🧩 Представьте проек…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →