Gzip Decompress Online — Base64 to Text

Decode gzip-encoded base64 payloads back to plain text in milliseconds. Powered by the browser's native DecompressionStream — no upload, no library, no rate limits.

Gzip vs Deflate vs Zlib — pick the right decoder

All three formats use the same DEFLATE algorithm but differ in their wrapper. Gzip (RFC 1952) starts with magic bytes 0x1F 0x8B and ends with a CRC-32 + ISIZE trailer. Zlib (RFC 1950) starts with a 2-byte header (typically 0x78 0x9C) and ends with Adler-32. Raw deflate (RFC 1951) has no wrapper at all. If your input is not gzip, switch to the matching tool.

This decoder uses the browser's built-in DecompressionStream('gzip') — the same engine that decodes fetch() responses with Content-Encoding: gzip. CRC and length are validated automatically.

How to decompress gzip — 4 steps

  1. Paste the base64. Drop the gzip-encoded base64 string into the Input panel. Click Load Sample for a working example.
  2. Click Decompress. The browser base64-decodes the input and pipes the bytes through gunzip in a single streaming pass.
  3. Inspect the result. The Output panel shows the original UTF-8 text. The badge reports compressed vs original size.
  4. Copy or post-process. Use the Copy button, or paste the result into a JSON viewer / formatter for further inspection.

Sample input & output

Input — gzip base64

H4sIAAAAAAAAA0vKLyhJzcyrVMjJL0pVKEksSlSwUqgGAAi4MQUSAAAA

Output — recovered text

Hello, openformatter.com

CRC-32 Verified

The browser checks the trailing CRC-32 and ISIZE fields. Truncated or corrupt streams fail loudly instead of returning partial data.

Streaming Decoder

Built on DecompressionStream — handles tens of megabytes without freezing the page, using the browser native C++ engine.

Local Only

Base64 decoding and gunzip both run inside the page. Compressed payloads with secrets, tokens, or PII never leave your device.

Common use cases

  • check_circleInspecting HTTP responses captured with Content-Encoding: gzip
  • check_circleDecoding payloads stored compressed inside JSON or database columns
  • check_circleRecovering log lines shipped from CloudWatch, Loki, or S3 in .gz format
  • check_circleReading gzipped session data, cookies, or JWT-style tokens
  • check_circleDecoding firmware update bundles or config blobs from embedded devices
  • check_circleReconstructing test fixtures stored as base64 strings in source control
  • check_circleInspecting compressed messages from Kafka, RabbitMQ, or NATS
  • check_circleDebugging gzip output from server-side libraries to confirm parity

Gzip vs Brotli vs Deflate decoders

FormatMagic BytesTrailerWhen You See It
gzip1F 8BCRC-32 + ISIZE.gz files, HTTP Content-Encoding
zlib78 9C / 78 DAAdler-32PNG, Git objects, JAR
deflate-rawnonenoneZIP entries, PNG IDAT
brotlino fixed bytesnoneHTTPS responses (Content-Encoding: br)

Need the inverse, or a different format?

Compress fresh data, switch to zlib, or run additional transforms.

Frequently Asked Questions

What does this gzip decompressor do?

It accepts a base64 string that represents a gzip (RFC 1952) byte stream and decodes it back to UTF-8 text. It is the inverse of gzip compression — useful for inspecting gzipped HTTP responses, decoding payloads stored in JSON, or recovering log fixtures.

How does it work without a server?

Modern browsers expose DecompressionStream (Chrome 80+, Firefox 113+, Safari 16.4+). The tool base64-decodes your input into a Uint8Array, pipes it through new DecompressionStream("gzip"), and reads the result as text — all inside the page.

Why am I getting a decode error?

Common causes: the input contains line breaks or whitespace base64 cannot tolerate (the tool trims, but watch for non-ASCII chars), the bytes are zlib (RFC 1950) instead of gzip — use the Zlib Decompress tool — or the input is raw deflate without any wrapper. Verify the first two decoded bytes are 0x1F 0x8B for gzip.

Can I paste a gzip file directly?

Not the binary file itself — base64-encode it first. On Unix: base64 file.gz | tr -d "\n" and paste the result. On Windows PowerShell: [Convert]::ToBase64String([IO.File]::ReadAllBytes("file.gz")).

What is the difference between gzip and gunzip?

They are two sides of the same tool — gzip compresses, gunzip decompresses. Both operate on the RFC 1952 format. This page is a browser-based gunzip with base64 input.

Does the decoder validate the CRC-32 checksum?

Yes. The browser's DecompressionStream verifies the CRC-32 trailer and the uncompressed size (ISIZE) embedded in the gzip footer. A truncated or corrupted stream will throw an error rather than silently returning partial data.

Is the input uploaded?

No. Base64 decoding and gzip inflation both run in JavaScript inside your browser. Confirm in DevTools Network — no requests are made when you click Decompress.

Can it handle very large payloads?

The browser CompressionStream is streaming-friendly and handles tens of megabytes comfortably. The practical limit is browser memory; the tool reads the entire decompressed output into a string for display, so multi-gigabyte payloads should be processed with a server tool instead.

Gzip Decompress Online — Free Gzip Base64 to Text Decoder