UTILS.
100% di peramban
🗜️

Kompres & Dekompres Gzip / Zlib / Deflate

Kompres atau dekompres teks dengan format native gzip, zlib (deflate), atau raw DEFLATE di browser, dengan output base64/hex dan rasio kompresi.

Masukkan data di atas untuk mengompres atau mendekompres.

Tentang alat ini

Alat Gzip / Zlib / Deflate mengompres dan mendekompres data sepenuhnya di browser Anda menggunakan API native CompressionStream dan DecompressionStream. Pilih format kontainer — gzip (format .gz dengan magic byte 0x1F 0x8B-nya), zlib/deflate (data DEFLATE yang dibungkus header zlib), atau deflate-raw (DEFLATE polos tanpa header) — dan arah. Kompresi mengambil teks UTF-8 Anda dan mengembalikan byte terkompresi yang di-encode sebagai base64 atau hex; dekompresi mengambil base64 atau hex dan mengembalikan teks asli.

Karena menggunakan kompresi streaming bawaan browser, tidak ada yang diunggah dan tidak ada pustaka eksternal yang dimuat — data Anda tetap di perangkat Anda. Ketiga format tidak dapat dipertukarkan: gzip dan zlib menambahkan header dan checksum berbeda (CRC-32 untuk gzip, Adler-32 untuk zlib) di sekitar payload DEFLATE yang sama, sedangkan deflate-raw menghilangkan keduanya, sehingga Anda harus mendekompres dengan format yang sama dengan yang Anda gunakan untuk mengompres. Setelah mengompres, alat melaporkan ukuran asli, ukuran terkompresi, dan rasio kompresi sebagai persentase (1 − terkompresi / asli), yaitu seberapa kecil output menjadi.

Teks yang sangat berulang terkompresi secara dramatis; input yang pendek atau sudah terkompresi justru bisa membesar karena overhead header dan checksum, yang mana normal. Jika browser Anda tidak mengekspos CompressionStream, alat mengatakannya alih-alih menghasilkan output yang salah. Perhatikan bahwa API native menggunakan level kompresi default tetap, sehingga tidak ada pemilih level. Salin hasilnya dengan satu klik.

Pertanyaan yang sering diajukan

Apa perbedaan antara gzip, zlib, dan raw deflate?
Ketiganya menggunakan algoritma DEFLATE. gzip membungkusnya dengan header 10-byte, magic byte 0x1F 0x8B, dan CRC-32; zlib (deflate) membungkusnya dengan header pendek dan checksum Adler-32; deflate-raw tidak memiliki header atau checksum. Dekompres dengan format yang sama dengan yang Anda gunakan untuk mengompres.
Input apa yang diharapkan dekompresi?
Tempel data terkompresi sebagai base64 atau hex (cocokkan dengan pemilih output-encoding). Alat men-decode-nya menjadi byte dan meng-inflate-nya dengan format yang dipilih. Jika byte terpotong atau format salah, ia melaporkan bahwa data tidak dapat didekompres.
Mengapa teks saya menjadi lebih besar setelah mengompres?
gzip dan zlib menambahkan byte header dan checksum, dan DEFLATE membutuhkan pengulangan yang cukup untuk menemukan penghematan. Untuk input yang sangat pendek atau sudah-acak/terkompresi, overhead itu melebihi keuntungan apa pun, sehingga output bisa lebih besar — itu diharapkan.
Bisakah saya memilih level kompresi?
Tidak. API native CompressionStream tidak mengekspos parameter level, sehingga level default tetap digunakan. Output tetap merupakan stream gzip/zlib/deflate yang sepenuhnya valid yang dapat didekompres oleh alat standar apa pun (gunzip, zlib, pako).

Alat lainnya