XZ naar GZ omzetten

Hier zet je XZ naar GZ om, gratis en zonder account: sleep het bestand hierboven erin en binnen een paar seconden staat het resultaat klaar om te downloaden. Het bestand reist versleuteld naar onze server, wordt daar omgezet en wordt gewist zodra het werk klaar is.

  • Waar het draait Op onze server, omdat een browser het programma dat hiervoor nodig is niet draait.
  • Zonder verlies Er gaat niets weg. GZ bewaart precies wat XZ bewaarde.
  • Maximale grootte Tot 25 MB per bestand, gratis en zonder account.
  • Goed om te weten De bestanden komen er byte voor byte hetzelfde uit. Wat het niet overleeft is wat de houder *over* ze wist en niet wat hij *in* zich had: een wachtwoord, en bij sommige formaten de oorspronkelijke rechten en datums.

Tot 100 bestanden tegelijk. Verschillende formaten door elkaar is prima.

Een .tar.xz herpubliceren voor mensen die er geen kunnen openen

De lezer hier heeft het bestand zelden zelf gemaakt. Een upstream-project publiceert een .tar.xz, en dat moet nu aan iemand anders geleverd worden: gespiegeld op een interne opslag, gedeeld op een schijf, achter een downloadlink voor een publiek waarvan je de machines niet beheert. Upstream koos XZ om bandbreedte voor een technisch publiek te optimaliseren. Jij optimaliseert voor wie op de link klikt.

De andere versie is een runtime in plaats van een mens. Een laadstap in Python of Go opent gzip met een standaardbibliotheek-import en heeft voor al het andere een afhankelijkheid nodig; een serverless functie of een gehard containerimage kan die vaak niet hebben. In al deze gevallen is de beperking extern.

Waarom DEFLATE overal zit en LZMA2 niet

Gzips voordeel is niet technisch, het is historisch, en het stapelt op. DEFLATE werd in mei 1996 gepubliceerd als RFC 1951, gzips container als RFC 1952 in dezelfde maand; hetzelfde algoritme zit in PNG, in elk ZIP-bestand, in HTTP’s Content-Encoding: gzip, in een Git-object en in een Java JAR. Elk platform dat een van die dingen doet, heeft al een DEFLATE-implementatie erin.

XZ, uit 2009, had geen zo’n drager. Het is een uitstekend formaat en moet als zichzelf geïnstalleerd worden. Op Linux is dat triviaal, elders is het een beslissing die iemand moet nemen. Geef je een bestand aan een onbekende omgeving, dan is dat verschil de hele vraag.

Wat het bredere venster kocht, en wat je teruggeeft

Het gat tussen de twee formaten is één getal: gzips DEFLATE doorzoekt een venster van 32 KB, en XZ’s LZMA2 werkt met een woordenboek tot 64 MB. Bij compressie van byte een miljoen kan gzip terugkijken tot byte negenhonderdachtenzestigduizend en niet verder; XZ ziet nog het begin van het archief.

Bij archieven van veel gelijksoortige bestanden is dat geen marginaal verschil. Tweehonderd broncodebestanden die een licentiekop delen — XZ leert elk patroon één keer, gzip leert het steeds opnieuw. Bij een archief van al gecomprimeerde JPEG’s of MP4’s kost deze omzetting je vrijwel niets.

Streamen, en wat gzip kan dat XZ niet kan

Gzip decodeert van voor naar achter met een vast venster van 32 KB en geen index, de bron van zijn nuttigste eigenschap: een gezipte tarball kan verwerkt worden terwijl hij binnenkomt. curl … | tar xzf - pakt een download uit die nooit op schijf belandt.

XZ kan ook gestreamd worden, maar het geheugen dat daarvoor nodig is, is evenredig met zijn woordenboek in plaats van vast. Een pijplijn met een kleine consument — een embedded apparaat, een geheugenbeperkte container — kan een gzip-stream van onbeperkte lengte verwerken en mogelijk helemaal geen xz-stream.

De herbouwde tarball, en eerlijk een release spiegelen

De omzetting pakt het archief uit en schrijft een nieuwe TAR van de inhoud voor het comprimeren. Elk bestand erin komt byte voor byte over — dit is een lossless herpak — maar de tarball is nieuw, dus itemvolgorde, tijdstempels en rechten kunnen van upstream afwijken en geen gepubliceerde checksum verifieert tegen het resultaat.

Publiceer je eigen hash van het bestand dat je echt serveert, en zeg duidelijk dat het canonieke artefact upstreams .tar.xz met upstreams handtekening is. Serveer nooit een herpakt bestand onder upstreams hash.

De naam die gzip terugschrijft in het bestand

Eén klein ding verbetert in deze richting. Een gzip-stream heeft een headerveld voor de oorspronkelijke bestandsnaam en een xz-stream heeft dat helemaal niet. Die asymmetrie is waarom gunzip dataset.gz je dataset.tar teruggeeft terwijl unxz dataset.xz je een bestand genaamd dataset achterlaat dat een archief blijkt te zijn.

Het is een beleefdheid, geen garantie: veel tools schrijven een generieke naam. De extensie is nog steeds wat echt gelezen wordt, dus noem de download .tar.gz voordat je hem publiceert.

Wanneer BZ2 de betere terugstap is dan GZ

Is de beperking puur geheugen in plaats van beschikbaarheid, dan is bzip2 het overwegen waard: het werkt in onafhankelijke blokken van hoogstens 900 KB, dus heeft het bijna niets nodig om uit te pakken, en comprimeert beter dan gzip op tekst. De kostenpost is decompressietijd.

De test is welke fout je precies aan het omzeilen bent. Meldde iets dat het geen geheugen kon toewijzen, op een traag apparaat met veel tijd — bzip2 is een redelijk antwoord. Herkende iets het formaat niet, of geef je het bestand aan mensen — gzip, zonder twijfel.

Waar het archief herpakt wordt en hoe lang de taak duurt

Op onze server, niet in je browser. De meeste tools op deze site zetten op je eigen apparaat om; archiefwerk is een uitzondering, want het vereist 7-Zip, xz en gzip als echte programma’s. Het bestand reist over een versleutelde verbinding naar een container zonder eigen uitgaande internettoegang.

Elke taak krijgt een tijdelijke map op een geheugengebaseerd bestandssysteem, weggegooid zodra de taak eindigt, en afgebroken na zestig seconden. Het gratis niveau accepteert 25 MB per geüpload bestand, en het archief wordt geweigerd als het opgeeft meer dan 2 GB uit te pakken.

Beide bestanden serveren in plaats van het ene door het andere te vervangen

Beheer je de downloadpagina zelf, dan is het beste resultaat meestal geen omzetting maar een toevoeging. Bied de upstream .tar.xz aan voor het publiek dat ermee overweg kan en de .tar.gz ernaast voor de rest, en laat mensen kiezen.

Moet je er toch één kiezen, kies dan op basis van wie aan de andere kant zit, niet op basis van welk formaat beter is. Een openbare download voor een algemeen publiek — gzip. Een release specifiek gericht op ontwikkelaars op Linux — laat hem XZ.

Zo zet je XZ naar GZ om

  1. Sleep je XZ-bestand op deze pagina, of klik om er een te kiezen.
  2. Kies GZ als doel en start de omzetting.
  3. Download het klare GZ-bestand.

XZ of GZ: wat er verandert

XZ vergeleken met GZ
XZGZ
Volledige naamXZ-archiefGzip-archief
Bestandsextensie.xz.gz, .tgz
Mediatypeapplication/x-xzapplication/gzip
CompressieZonder verlies — er gaat niets wegZonder verlies — er gaat niets weg
Voor het eerst gepubliceerd20091992
SpecificatieRFC 1952
LicentieOpen standaardOpen standaard
Stand van zakenActueelActueel
Opent in een browserGeen browserGeen browser
In plaats daarvan overwogenBZ2, 7ZBZ2, ZIP

Wat behouden blijft

Er gaat niets verloren. XZ en GZ bewaren hun inhoud verliesvrij: de omzetting wisselt de verpakking, niet de kwaliteit, en je kunt haar herhalen zonder dat schade zich opstapelt.

Het resultaat openen

7-Zip en Keka lezen zowel XZ als GZ, dus je kunt het resultaat naast het origineel leggen zonder een tweede programma.

Bestandsgrootte en kwaliteit

GZ werkt met 32 KB tegelijk, XZ met 8 MB: binnen dat stuk moet een herhaling vallen voordat ze weggerekend kan worden. Daar komt het verschil in compressie vandaan, en daarom is het de snelste van de twee.

Waarvoor elk formaat bedoeld is

GZ stamt uit 1992, vastgelegd in RFC 1952. gzip, 7-Zip en Keka lezen het formaat.

GZ verscheen in 1992 en XZ in 2009. Het oudste is doorgaans het veiligste bestand om te overhandigen; het nieuwste doet hetzelfde werk met minder bytes.

Van XZ naar GZ: veelgestelde vragen

Wordt mijn XZ-bestand ergens heen geüpload?

Ja: deze omzetting heeft software nodig die niet in een browser draait. Het bestand reist versleuteld naar onze server, wordt gewist zodra het werk klaar is en het resultaat na 60 minuten. Het werk wordt gedaan door 7-Zip, de archiveerder, in zijn opdrachtregelvorm.

Is XZ naar GZ omzetten gratis?

Ja, tot 100 omzettingen per dag voor bestanden tot 25 MB. Die ene grens bestaat omdat deze omzetting op een server draait die wij betalen. Verder is er hier niets begrensd, en een watermerk komt er in geen geval op. De limiet bestaat omdat 7-Zip een machine van ons nodig heeft om te draaien.

Gaat er kwaliteit verloren bij het omzetten van XZ naar GZ?

Nee. GZ bewaart dezelfde inhoud zonder iets weg te gooien: het resultaat is in kwaliteit identiek aan het origineel. De bestanden komen er byte voor byte hetzelfde uit. Wat het niet overleeft is wat de houder *over* ze wist en niet wat hij *in* zich had: een wachtwoord, en bij sommige formaten de oorspronkelijke rechten en datums.

Is XZ naar GZ verliesvrij?

Er gaat niets verloren. XZ en GZ bewaren hun inhoud verliesvrij: de omzetting wisselt de verpakking, niet de kwaliteit, en je kunt haar herhalen zonder dat schade zich opstapelt.

Meer over deze formaten