UTILS.
100% no navegador
🗜️

Comprimir e Descomprimir Gzip / Zlib / Deflate

Comprima ou descomprima texto com os formatos nativos gzip, zlib (deflate) ou raw DEFLATE no navegador, com saída em base64/hex e a taxa de compressão.

Digite dados acima para comprimir ou descomprimir.

Sobre esta ferramenta

A ferramenta Gzip / Zlib / Deflate comprime e descomprime dados inteiramente no seu navegador usando as APIs nativas CompressionStream e DecompressionStream. Escolha o formato de contêiner — gzip (o formato .gz com seus bytes mágicos 0x1F 0x8B), zlib/deflate (os dados DEFLATE envolvidos em um cabeçalho zlib) ou deflate-raw (DEFLATE puro sem cabeçalho) — e uma direção. A compressão pega o seu texto UTF-8 e retorna os bytes comprimidos codificados como base64 ou hex; a descompressão pega base64 ou hex e retorna o texto original.

Como ela usa a compressão em streaming embutida do navegador, nada é enviado e nenhuma biblioteca externa é carregada — seus dados permanecem no seu dispositivo. Os três formatos não são intercambiáveis: gzip e zlib adicionam cabeçalhos e checksums diferentes (CRC-32 para gzip, Adler-32 para zlib) ao redor da mesma carga útil DEFLATE, enquanto o deflate-raw omite ambos, então você deve descomprimir com o mesmo formato com que comprimiu. Após comprimir, a ferramenta relata o tamanho original, o tamanho comprimido e a taxa de compressão como uma porcentagem (1 − comprimido / original), que é o quanto menor a saída ficou.

Texto altamente repetitivo comprime drasticamente; entradas curtas ou já comprimidas podem na verdade crescer por causa da sobrecarga de cabeçalho e checksum, o que é normal. Se o seu navegador não expõe o CompressionStream, a ferramenta diz isso em vez de produzir uma saída errada. Observe que a API nativa usa um nível de compressão padrão fixo, então não há seletor de nível. Copie o resultado com um clique.

Perguntas frequentes

Qual é a diferença entre gzip, zlib e raw deflate?
Todos os três usam o algoritmo DEFLATE. O gzip o envolve com um cabeçalho de 10 bytes, bytes mágicos 0x1F 0x8B e um CRC-32; o zlib (deflate) o envolve com um cabeçalho curto e um checksum Adler-32; o deflate-raw não tem cabeçalho nem checksum. Descomprima com o mesmo formato que você usou para comprimir.
Que entrada a descompressão espera?
Cole os dados comprimidos como base64 ou hex (corresponda ao seletor de codificação de saída). A ferramenta os decodifica para bytes e os infla com o formato escolhido. Se os bytes estiverem truncados ou no formato errado, ela relata que os dados não puderam ser descomprimidos.
Por que o meu texto ficou maior após comprimir?
gzip e zlib adicionam bytes de cabeçalho e checksum, e o DEFLATE precisa de repetição suficiente para encontrar economias. Para entradas muito curtas ou já aleatórias/comprimidas, essa sobrecarga supera qualquer ganho, então a saída pode ser maior — isso é esperado.
Posso escolher o nível de compressão?
Não. A API nativa CompressionStream não expõe um parâmetro de nível, então um nível padrão fixo é usado. A saída ainda é um stream gzip/zlib/deflate totalmente válido que qualquer ferramenta padrão (gunzip, zlib, pako) pode descomprimir.

Mais ferramentas