What this does
Compresses text or any file with gzip, zlib or raw deflate and decompresses them again, entirely in your browser. Compressed bytes are shown as Base64 or hex so you can paste them into JSON, a test fixture or a curl command, and can be downloaded as a real.gz file. Brotli is available from the same format menu.
Gzip, zlib and deflate
All three use the same DEFLATE algorithm and differ only in their wrapper. Gzip(RFC 1952) adds a header with a magic number and a CRC32 trailer; it is whatContent-Encoding: gzip and .gz files use. Zlib(RFC 1950) is a smaller wrapper with an Adler-32 checksum, used by PNG, Git objects and many databases. Raw deflate (RFC 1951) has no wrapper at all; note that the HTTP header Content-Encoding: deflate actually means zlib. Level 0 stores without compressing and level 9 compresses the most.
Decompressing
Paste Base64 or hex, or choose a file. "Detect automatically" recognizes gzip and zlib from their headers and falls back to raw deflate and Brotli. Results that are valid UTF-8 are shown as text; anything else is shown as a hex preview and can be downloaded. Raw deflate and Brotli carry no signature, so for those two the detection is a best guess: pick the format explicitly if the result looks wrong. Truncated or corrupt data is reported as an error instead of returning partial output.
Limits and safety
Work runs in a background thread so the page stays responsive, and you can cancel it. Decompression stops with an error once the output would exceed 64 MiB, which protects your browser from "zip bomb" inputs that expand a few kilobytes into gigabytes. Inputs up to 100 MiB are accepted. Gzip members appended together are decoded as one stream.
Example
Compressing the example text (one sentence repeated 40 times, 1,800 bytes) with gzip at level 6 yields 81 bytes, under 5% of the input. Text with little repetition, such as random data or already compressed files, will not shrink.
Privacy
Your data is compressed locally in a Web Worker and is never uploaded.