UTILS.
100% у браузері
🗜️

Стиснення та розпакування Gzip / Zlib / Deflate

Стискайте або розпаковуйте текст у нативних форматах gzip, zlib (deflate) чи raw DEFLATE у браузері, з виводом у base64/hex та коефіцієнтом стиснення.

Введіть дані вище, щоб стиснути або розпакувати.

Про цей інструмент

Інструмент Gzip / Zlib / Deflate стискає та розпаковує дані повністю у вашому браузері за допомогою нативних API CompressionStream і DecompressionStream. Виберіть формат контейнера — gzip (формат .gz з його магічними байтами 0x1F 0x8B), zlib/deflate (дані DEFLATE, обгорнуті в заголовок zlib) або deflate-raw (голий DEFLATE без заголовка) — і напрямок. Стиснення бере ваш текст UTF-8 і повертає стиснені байти, закодовані як base64 або hex; розпакування бере base64 або hex і повертає оригінальний текст.

Оскільки використовується вбудоване потокове стиснення браузера, ніщо не завантажується й жодна зовнішня бібліотека не підключається — ваші дані залишаються на вашому пристрої. Три формати не взаємозамінні: gzip і zlib додають різні заголовки й контрольні суми (CRC-32 для gzip, Adler-32 для zlib) навколо того самого корисного навантаження DEFLATE, тоді як deflate-raw опускає обидва, тож ви маєте розпаковувати тим самим форматом, яким стискали. Після стиснення інструмент повідомляє оригінальний розмір, стиснений розмір і коефіцієнт стиснення у відсотках (1 − compressed / original), тобто наскільки менший вивід.

Високо повторюваний текст стискається кардинально; короткий або вже стиснений ввід може насправді збільшитися через накладні витрати заголовка й контрольної суми, що є нормальним. Якщо ваш браузер не надає CompressionStream, інструмент повідомляє про це, а не видає неправильний результат. Зауважте, що нативний API використовує фіксований рівень стиснення за замовчуванням, тож немає селектора рівня. Скопіюйте результат одним кліком.

Поширені запитання

У чому різниця між gzip, zlib та raw deflate?
Усі три використовують алгоритм DEFLATE. gzip обгортає його 10-байтовим заголовком, магічними байтами 0x1F 0x8B та CRC-32; zlib (deflate) обгортає його коротким заголовком та контрольною сумою Adler-32; deflate-raw не має заголовка чи контрольної суми. Розпаковуйте тим самим форматом, яким стискали.
Який ввід очікує розпакування?
Вставте стиснені дані як base64 або hex (відповідно до селектора кодування виводу). Інструмент декодує їх у байти й розпаковує вибраним форматом. Якщо байти обрізані або формат неправильний, він повідомляє, що дані не вдалося розпакувати.
Чому мій текст став більшим після стиснення?
gzip і zlib додають байти заголовка й контрольної суми, а DEFLATE потребує достатньо повторень, щоб знайти економію. Для дуже короткого чи вже випадкового/стисненого вводу ці накладні витрати переважують будь-який виграш, тож вивід може бути більшим — це очікувано.
Чи можу я вибрати рівень стиснення?
Ні. Нативний API CompressionStream не надає параметр рівня, тож використовується фіксований рівень за замовчуванням. Вивід усе одно є повністю дійсним потоком gzip/zlib/deflate, який будь-який стандартний інструмент (gunzip, zlib, pako) може розпакувати.

Більше інструментів