Cookies para estatística e publicidade
Usamos cookies de estatística e de publicidade, ambos enviados ao Google. Recusar não muda nada do que você vê.Ler a página de privacidade
Aqui você converte ZIP para XZ de graça e sem conta: solte o arquivo acima e em poucos segundos o resultado está pronto para baixar. O arquivo viaja criptografado até o nosso servidor, é convertido lá e é apagado assim que o trabalho termina.
Até 100 arquivos de uma vez. Formatos misturados não são problema.
Eles são convertidos um após o outro e baixados juntos em um ZIP.
ZIP para XZ
Tempo de compressão é pago por uma máquina, uma vez. Transferência é paga por todo mundo que baixa o arquivo, toda vez, e num bucket cobrado por uso ou numa CDN é paga em dinheiro além de segundos. Essa assimetria é o argumento inteiro a favor do XZ, e é por isso que o resumo desse formato no nosso registro o chama de padrão para downloads de código-fonte e pacote.
Também diz exatamente quando não vale a pena. Um arquivo que um colega vai abrir uma vez não tem economia para otimizar: os segundos gastos empacotando são os únicos segundos envolvidos na vida inteira do arquivo, e o gzip já teria terminado. Use XZ quando o arquivo tem audiência, um espelho, uma conta de CDN ou uma vida útil longa, e deixe quieto quando o arquivo tem um destinatário só.
O XZ é um compressor, não um arquivador. O registro o classifica como formato de fluxo com um membro e sinaliza a ausência de estrutura de pasta como problema conhecido — não há lugar num arquivo `.xz` para um nome, um caminho ou um bit de permissão morar.
O conteúdo do seu ZIP é, portanto, disposto num TAR, que carrega tudo isso, e o XZ comprime o tarball como um objeto único. Não é uma solução alternativa inventada para este conversor; é o arranjo que o ecossistema Unix inteiro usa, e é por isso que a extensão que você vê em todo lançamento de código-fonte é `.tar.xz` em vez de um `.xz` puro.
O número é a história inteira. O DEFLATE, que tanto o ZIP quanto o gzip usam, codifica uma repetição como referência a algo dentro dos últimos 32 KB. O LZMA2 no XZ consegue referenciar algo até 64 MB atrás — duas mil vezes a distância — e codifica essas referências com um custo em bits menor que os códigos de Huffman do DEFLATE.
Onde isso aparece é em qualquer arquivo cuja repetição está espalhada: uma árvore de código-fonte onde o mesmo cabeçalho de licença abre duzentos arquivos, um conjunto de exportações CSV parecidas, uma pasta de documentos construídos a partir de um modelo. Onde aparece menos é num ZIP de fotografias ou vídeo, porque o conteúdo já foi comprimido antes de ser arquivado.
Um dicionário grande não é grátis do outro lado. O descompressor precisa manter essa janela em memória para resolver referências a ela, então a memória necessária para desempacotar acompanha aproximadamente o dicionário com que o arquivo foi empacotado, não o tamanho do arquivo em si.
Em qualquer desktop ou servidor isso é irrelevante. Deixa de ser irrelevante em hardware pequeno — um roteador, uma placa classe microcontrolador, um agente de build limitado — que é o único lugar onde a janela modesta de 32 KB do gzip é uma vantagem em vez de uma limitação. Se você sabe que seu arquivo vai para algo pequeno, publique um `.tar.gz` junto.
Compartilham uma família de compressão, e o registro dá aos dois um dicionário de até 64 MB, então em taxa de compressão há pouco a escolher. A diferença é o que envolve o dado comprimido. O 7Z é um contêiner com o próprio diretório de entradas, própria criptografia e próprios checksums. O XZ é um compressor embrulhado ao redor de um fluxo.
Para distribuição, o fluxo vence na convenção: toda máquina Linux e macOS tem `tar` e `xz`, e quase nenhuma tem 7-Zip instalado por padrão. Para um arquivo que você está guardando e navegando em vez de publicando, o 7Z tem a forma melhor porque dá para listar e puxar um arquivo sem desembrulhar duas camadas.
Os dois formatos se verificam. Um ZIP guarda um CRC por entrada, então um membro danificado é pego na extração. O XZ carrega uma checagem sobre o fluxo comprimido — CRC-32, CRC-64 ou SHA-256 dependendo de como foi escrito — e recusa entregar dado que não bate.
O que muda é a granularidade. Num ZIP a checagem é por arquivo, então uma entrada ruim é um arquivo ruim. Num `.xz` a checagem cobre o fluxo inteiro, então o dano é reportado para o arquivo como um todo, e o tar dentro pode ficar irrecuperável além do dano.
Um fluxo gzip consegue registrar o nome original; um fluxo XZ não registra nada disso. É compressão com um cabeçalho descrevendo a checagem e os filtros, e nenhum lugar para um nome ou horário.
Isso coloca o peso inteiro de descrever o arquivo no que você o chama. Downloads aqui pegam seu nome-base original mais a extensão de destino, então `versao-1.4.zip` volta como `versao-1.4.xz`; renomear para `versao-1.4.tar.xz` antes de publicar é a diferença entre um download que as pessoas reconhecem e um que precisam investigar.
A conversão roda no nosso conversor em vez de no seu navegador, então o ZIP é enviado por conexão criptografada, desempacotado com 7-Zip, entarrado, comprimido com xz e devolvido. Upload, intermediários e saída são apagados quando o trabalho termina.
As consequências são o limite de 25 MB por arquivo do plano gratuito, um teto de sessenta segundos por trabalho, e recusa de qualquer arquivo declarando mais de 2 GB de conteúdo desempacotado. Se o arquivo é genuinamente sensível, o xz-utils e o 7-Zip fazem isso offline na sua própria máquina.
Projetos que acertam isso enviam dois arquivos. O `.tar.xz` é para quem vai desempacotar num shell ou script, onde o download menor é banda real e a ferramenta já está instalada desde que o sistema operacional existe. O ZIP fica para todo mundo no Windows que quer dar duplo clique, olhar dentro, e nunca pensar em algoritmo de compressão.
Não é indecisão; são dois públicos com restrições genuinamente diferentes, e um arquivo só não consegue servir os dois sem penalizar um deles. Se você só envia um artefato, envie o que seus baixadores reais conseguem abrir.
| ZIP | XZ | |
|---|---|---|
| Nome completo | Arquivo ZIP | Arquivo XZ |
| Extensão do arquivo | .zip | .xz |
| Tipo de mídia | application/zip | application/x-xz |
| Compressão | Sem perdas — nada é descartado | Sem perdas — nada é descartado |
| Publicado pela primeira vez | 1989 | 2009 |
| Publicado por | PKWARE | — |
| Especificação | APPNOTE.TXT | — |
| Licença | Padrão aberto | Padrão aberto |
| Situação hoje | Atual | Atual |
| Abre no navegador | Nenhum navegador | Nenhum navegador |
| Considerado no lugar | 7Z, TAR | GZ, BZ2, 7Z |
Nada é descartado. ZIP e XZ guardam o conteúdo sem perda, então a conversão troca a embalagem e não a qualidade — e pode ser repetida sem que o estrago se acumule.
XZ comprime um único fluxo e não comporta um diretório. É justamente por isso que XZ costuma vir junto de um formato de arquivamento: o arquivo reúne os itens e XZ comprime o resultado.
7-Zip lê tanto ZIP quanto XZ, então dá para comparar o resultado com o original sem um segundo programa.
XZ trabalha com 8 MB de cada vez, contra 32 KB de ZIP: é dentro desse intervalo que uma repetição precisa caber para poder ser comprimida. É daí que vem a diferença de compressão e também o tempo a mais.
Os dois miram trabalhos diferentes: ZIP em mover dados entre programas e entregar um arquivo pronto, XZ em o arquivamento. Vale pesar isso antes, porque o motivo de um existir costuma ser o motivo de o outro ser incômodo.
ZIP é o formato da PKWARE, publicado em 1989. Está descrito em APPNOTE.TXT, e vale conhecer se o arquivo precisa sobreviver à ferramenta que o escreveu.
XZ e de 2009. xz, 7-Zip e Keka leem o formato.
ZIP foi publicado em 1989 e XZ em 2009. O mais antigo costuma ser o arquivo mais seguro para entregar; o mais novo faz o mesmo com menos bytes.
É: esta conversão precisa de um software que não roda num navegador. O arquivo viaja criptografado até o nosso servidor, é apagado assim que o trabalho termina e o resultado, depois de 60 minutos. O trabalho é feito por 7-Zip, o compactador, na sua forma de linha de comando.
É, até 100 conversões por dia para arquivos de até 25 MB. Esse único limite existe porque esta conversão roda num servidor que nós pagamos. No resto aqui não há nada limitado, e marca d’água não existe em caso nenhum. O limite existe porque 7-Zip precisa de uma máquina nossa para rodar.
Não. XZ guarda o mesmo conteúdo sem jogar nada fora: o resultado é idêntico em qualidade ao original. Os arquivos saem byte a byte iguais. O que não sobrevive é o que o contêiner sabia *sobre* eles e não o que havia *dentro* deles: uma senha e, em alguns formatos, as permissões e as datas originais.
XZ comprime um único fluxo e não comporta um diretório. É justamente por isso que XZ costuma vir junto de um formato de arquivamento: o arquivo reúne os itens e XZ comprime o resultado.
Nada é descartado. ZIP e XZ guardam o conteúdo sem perda, então a conversão troca a embalagem e não a qualidade — e pode ser repetida sem que o estrago se acumule.
O que esta página afirma sobre ZIP e XZ pode ser conferido, e estes são os documentos que resolvem a questão.