gzip é tanto um software para compactação de arquivos que serve de implementação de referência quanto o formato do arquivo compactado que este gera. Este software foi desenvolvido por Jean-loup Gailly e Mark Adler com algoritmos livres[1] para substituir o compress, que utilizava algoritmos patenteados.[2]

gzip
Logótipo
Gzip
Desenvolvedor Jean-loup Gailly e Mark Adler
Lançamento 31 de outubro de 1992 (32 anos)
Versão estável 1.13 (19 de agosto de 2023; há 14 meses)
Sistema operacional Unix, Linux, Windows
Gênero(s) Compactador de arquivos
Licença GPL
Página oficial www.gzip.org

Formato

editar
gzip
Extensão do arquivo .gz
MIME application/gzip
Desenvolvido por Jean-loup Gailly e Mark Adler
Página oficial www.gzip.org

A geração do gzip é baseada no algoritmo DEFLATE[3] que por sua vez é uma combinação de LZ77 e da codificação de Huffman. A descrição deste algoritmo encontra-se na RFC 1951.[4]

O formato do arquivo gzip é descrito na RFC 1952, é identificado pela extensão .gz e possui o seguinte formato:

  • Cabeçalho de 10 bytes contendo os números mágicos 0x1f 0x8b seguidos pelo número da versão e a data e hora,
  • outros cabeçalhos opcionais contendo, por exemplo, o nome do arquivo original,
  • corpo do arquivo contendo os dados comprimidos pelo algoritmo DEFLATE,
  • terminador de 8 bytes com um checksum CRC-32 e o tamanho do arquivo original descomprimido, módulo 2^32.[5]

Apesar da possibilidade de concatenar múltiplos arquivos, em geral gzip é utilizado para comprimir apenas um arquivo cujo nome recebe a extensão .gz após sua própria extensão. Os usuários deste programa contornam esta limitação utilizando o utilitário tar para primeiramente agrupar múltiplos arquivos em um único, que em seguida é comprimido pelo gzip.[6] Este arquivo é identificado pelas extensões .tar.gz ou .tgz, também chamado de tarball.[7]

Outros usos

editar

Para tornar o uso do algoritmo DEFLATE mais genérico, os desenvolvedores do gzip também construíram a biblioteca zlib que foi disseminada para várias plataformas.

O formato é utilizado para o envio de HTTP comprimido, uma técnica que torna o envio de HTML mais veloz ao comprimi-lo.[8] A compressão também faz parte do formato de arquivo de imagens chamado Portable Network Graphics identificado pela extensão .png.

Referências

  1. L. Peter Deutsch (maio de 1996). GZIP file format specification version 4.3. [S.l.: s.n.] p. 1. Consultado em 18 de agosto de 2016 
  2. «GNU Gzip». gnu.org. Consultado em 18 de agosto de 2016 
  3. «GNU Gzip: General file (de)compression». gnu.org. Março de 2016 
  4. L. Peter Deutsch (maio de 1996). DEFLATE Compressed Data Format Specification version 1.3. [S.l.: s.n.] Consultado em 18 de agosto de 2016 
  5. L. Peter Deutsch (maio de 1996). GZIP file format specification version 4.3. [S.l.: s.n.] p. 4. Consultado em 18 de agosto de 2016 
  6. «Can gzip compress several files into a single archive?». Consultado em 18 de agosto de 2016 
  7. «Tarball». computerhope.com. Consultado em 18 de agosto de 2016 
  8. «Apache 2 mod_deflate Benchmark». 23 de outubro de 2005. Consultado em 18 de agosto de 2016 

Ligações externas

editar