Cookies voor statistiek en advertenties
We gebruiken cookies voor statistiek en voor advertenties, allebei naar Google. Weigeren verandert niets aan wat je te zien krijgt.Lees de privacypagina
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.
Tot 100 bestanden tegelijk. Verschillende formaten door elkaar is prima.
Ze worden een voor een omgezet en samen in één ZIP gedownload.
XZ naar GZ
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.
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.
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.
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 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.
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.
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.
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.
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.
| XZ | GZ | |
|---|---|---|
| Volledige naam | XZ-archief | Gzip-archief |
| Bestandsextensie | .xz | .gz, .tgz |
| Mediatype | application/x-xz | application/gzip |
| Compressie | Zonder verlies — er gaat niets weg | Zonder verlies — er gaat niets weg |
| Voor het eerst gepubliceerd | 2009 | 1992 |
| Specificatie | — | RFC 1952 |
| Licentie | Open standaard | Open standaard |
| Stand van zaken | Actueel | Actueel |
| Opent in een browser | Geen browser | Geen browser |
| In plaats daarvan overwogen | BZ2, 7Z | BZ2, ZIP |
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.
7-Zip en Keka lezen zowel XZ als GZ, dus je kunt het resultaat naast het origineel leggen zonder een tweede programma.
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.
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.
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.
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.
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.
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.