fbpx
Wikipedia

XZ Utils

XZ Utils (previously LZMA Utils) is a set of free software command-line lossless data compressors, including the programs lzma and xz, for Unix-like operating systems and, from version 5.0 onwards, Microsoft Windows. For compression/decompression the Lempel–Ziv–Markov chain algorithm (LZMA) is used. XZ Utils started as a Unix port of Igor Pavlov's LZMA-SDK that has been adapted to fit seamlessly into Unix environments and their usual structure and behavior.

XZ Utils
Original author(s)Lasse Collin
Developer(s)The Tukaani Project
Stable release
5.4.3[1]  / 4 May 2023; 2 months ago (4 May 2023)
Repository
  • github.com/tukaani-project/xz
Written inC
Operating systemCross-platform
TypeData compression
LicensePublic domain.[2] (but see details in Development and adoption)
Websitetukaani.org/xz/
.xz
Filename extension
.xz
Internet media type
application/x-xz
Magic numberFD 37 7A 58 5A 00
Developed byLasse Collin
Igor Pavlov
Initial releaseJanuary 14, 2009; 14 years ago (2009-01-14)
Latest release
1.1.0
December 11, 2022; 7 months ago (2022-12-11)
Type of formatData compression
Open format?Yes
Free format?Yes
Websitetukaani.org/xz/xz-file-format.txt

Features

In most cases, xz achieves higher compression rates than alternatives like gzip and bzip2. Decompression speed is higher than bzip2, but lower than gzip. Compression can be much slower than gzip, and is slower than bzip2 for high levels of compression, and is most useful when a compressed file will be used many times.[3][4]

XZ Utils consists of two major components:

Various command shortcuts exist, such as lzma (for xz --format=lzma), unxz (for xz --decompress; analogous to gunzip) and xzcat (for unxz --stdout; analogous to zcat)

XZ Utils can compress and decompress both the xz and lzma file formats, but since the LZMA format is now legacy,[5] XZ Utils compresses by default to xz.

Usage

Both the behavior of the software as well as the properties of the file format have been designed to work similarly to those of the popular Unix compressing tools gzip and bzip2.

Just like gzip and bzip, xz and lzma can only compress single files (or data streams) as input. They cannot bundle multiple files into a single archive – to do this an archiving program is used first, such as tar.

Compressing an archive:

xz my_archive.tar # results in my_archive.tar.xz lzma my_archive.tar # results in my_archive.tar.lzma 

Decompressing the archive:

unxz my_archive.tar.xz # results in my_archive.tar unlzma my_archive.tar.lzma # results in my_archive.tar 

Version 1.22 or greater of the GNU implementation of tar has transparent support for tarballs compressed with lzma and xz, using the switches --xz or -J for xz compression, and --lzma for LZMA compression.

Creating an archive and compressing it:

tar -c --xz -f my_archive.tar.xz /some_directory # results in my_archive.tar.xz tar -c --lzma -f my_archive.tar.lzma /some_directory # results in my_archive.tar.lzma 

Decompressing the archive and extracting its contents:

tar -x --xz -f my_archive.tar.xz # results in /some_directory tar -x --lzma -f my_archive.tar.lzma # results in /some_directory 

Single-letter tar example for archive with compress and decompress with extract using short suffix:

tar cJf keep.txz keep # archive then compress the directory ./keep/ into the file ./keep.txz tar xJf keep.txz # decompress then extract the file ./keep.txz creating the directory ./keep/ 

xz has supported multi-threaded compression (with the -T flag)[6] since 2014, version 5.2.0.;[7] since version 5.4.0 threaded decompression has been implemented. Threaded decompression requires multiple compressed blocks within a stream which are created by the threaded compression interface.[6] The number of threads can be less than defined if the file is not big enough for threading with the given settings or if using more threads would exceed the memory usage limit.[6]

The xz format

The xz format improves on lzma by allowing for preprocessing filters. The exact filters used are similar to those used in 7z, as 7z's filters are available in the public domain via the LZMA SDK.

Development and adoption

Development of XZ Utils took place within the Tukaani Project, which was led by Mike Kezner, by a small group of developers who once maintained a Linux distribution based on Slackware.

All of the source code for xz and liblzma has been released into the public domain. The XZ Utils source distribution additionally includes some optional scripts and an example program that are subject to various versions of the GPL.[2]

Specifically, the full list of GPL scripts and sources distributed with the XZ Utils software include:

  • An optional implementation of a common libc function, getopt (GNU LGPL v2.1)
  • An m4 script for pthread detection (GNU GPL v3)
  • Some nonessential wrapper scripts (xzgrep, etc) (GNU GPL v2)
  • And the example program scanlzma, which is not integrated with the build system

The resulting software xz and liblzma binaries are public domain, unless the optional LGPL getopt implementation is incorporated.[8]

Binaries are available for FreeBSD, NetBSD, Linux systems, Microsoft Windows, and FreeDOS. A number of Linux distributions, including Fedora, Slackware, Ubuntu, and Debian use xz for compressing their software packages. Arch Linux previously used xz to compress packages,[9] but as of December 27, 2019, packages are compressed with Zstandard compression.[10] The GNU FTP archive also uses xz.

References

  1. ^ "[xz-devel] XZ Utils 5.2.12 and 5.4.3". 4 May 2023. Retrieved 5 May 2023.
  2. ^ a b Licensing on tukaani.org "The most interesting parts of XZ Utils (e.g. liblzma) are in the public domain. You can do whatever you want with the public domain parts. Some parts of XZ Utils (e.g. build system and some utilities) are under different free software licenses such as GNU LGPLv2.1, GNU GPLv2, or GNU GPLv3."
  3. ^ Henry-Stocker, Sandra (2017-12-12). "How to squeeze the most out of Linux file compression". Network World. Retrieved 2020-02-09.
  4. ^ "Gzip vs Bzip2 vs XZ Performance Comparison". RootUsers. 2015-09-16. Retrieved 2020-02-09.
  5. ^ LZMA Utils, retrieved 2011-01-25
  6. ^ a b c "Linux Manpages Online - man.cx manual pages".
  7. ^ XZ Utils Release Notes
  8. ^ "In what cases is the output of a GPL program covered by the GPL too?". GNU.org. Retrieved 21 August 2019.
  9. ^ Pierre Schmitz (2010-03-23). "News: Switching to xz compression for new packages".
  10. ^ "Arch Linux - News: Now using Zstandard instead of xz for package compression". www.archlinux.org. Retrieved 2020-01-07.

External links

  • Official Website
  • SourceForge project page

utils, previously, lzma, utils, free, software, command, line, lossless, data, compressors, including, programs, lzma, unix, like, operating, systems, from, version, onwards, microsoft, windows, compression, decompression, lempel, markov, chain, algorithm, lzm. XZ Utils previously LZMA Utils is a set of free software command line lossless data compressors including the programs lzma and xz for Unix like operating systems and from version 5 0 onwards Microsoft Windows For compression decompression the Lempel Ziv Markov chain algorithm LZMA is used XZ Utils started as a Unix port of Igor Pavlov s LZMA SDK that has been adapted to fit seamlessly into Unix environments and their usual structure and behavior XZ UtilsOriginal author s Lasse CollinDeveloper s The Tukaani ProjectStable release5 4 3 1 4 May 2023 2 months ago 4 May 2023 Repositorygithub wbr com wbr tukaani project wbr xzWritten inCOperating systemCross platformTypeData compressionLicensePublic domain 2 but see details in Development and adoption Websitetukaani wbr org wbr xz wbr xzFilename extension xzInternet media typeapplication x xzMagic numberFD 37 7A 58 5A 00Developed byLasse CollinIgor PavlovInitial releaseJanuary 14 2009 14 years ago 2009 01 14 Latest release1 1 0December 11 2022 7 months ago 2022 12 11 Type of formatData compressionOpen format YesFree format YesWebsitetukaani wbr org wbr xz wbr xz file format wbr txt Contents 1 Features 2 Usage 3 The xz format 4 Development and adoption 5 References 6 External linksFeatures EditIn most cases xz achieves higher compression rates than alternatives like gzip and bzip2 Decompression speed is higher than bzip2 but lower than gzip Compression can be much slower than gzip and is slower than bzip2 for high levels of compression and is most useful when a compressed file will be used many times 3 4 XZ Utils consists of two major components xz the command line compressor and decompressor analogous to gzip liblzma a software library with an API similar to zlibVarious command shortcuts exist such as lzma for xz format lzma unxz for xz decompress analogous to gunzip and xzcat for unxz stdout analogous to zcat XZ Utils can compress and decompress both the xz and lzma file formats but since the LZMA format is now legacy 5 XZ Utils compresses by default to xz Usage EditBoth the behavior of the software as well as the properties of the file format have been designed to work similarly to those of the popular Unix compressing tools gzip and bzip2 Just like gzip and bzip xz and lzma can only compress single files or data streams as input They cannot bundle multiple files into a single archive to do this an archiving program is used first such as tar Compressing an archive xz my archive tar results in my archive tar xz lzma my archive tar results in my archive tar lzma Decompressing the archive unxz my archive tar xz results in my archive tar unlzma my archive tar lzma results in my archive tar Version 1 22 or greater of the GNU implementation of tar has transparent support for tarballs compressed with lzma and xz using the switches xz or J for xz compression and lzma for LZMA compression Creating an archive and compressing it tar c xz f my archive tar xz some directory results in my archive tar xz tar c lzma f my archive tar lzma some directory results in my archive tar lzma Decompressing the archive and extracting its contents tar x xz f my archive tar xz results in some directory tar x lzma f my archive tar lzma results in some directory Single letter tar example for archive with compress and decompress with extract using short suffix tar cJf keep txz keep archive then compress the directory keep into the file keep txz tar xJf keep txz decompress then extract the file keep txz creating the directory keep xz has supported multi threaded compression with the T flag 6 since 2014 version 5 2 0 7 since version 5 4 0 threaded decompression has been implemented Threaded decompression requires multiple compressed blocks within a stream which are created by the threaded compression interface 6 The number of threads can be less than defined if the file is not big enough for threading with the given settings or if using more threads would exceed the memory usage limit 6 The xz format EditThe xz format improves on lzma by allowing for preprocessing filters The exact filters used are similar to those used in 7z as 7z s filters are available in the public domain via the LZMA SDK Development and adoption EditDevelopment of XZ Utils took place within the Tukaani Project which was led by Mike Kezner by a small group of developers who once maintained a Linux distribution based on Slackware All of the source code for xz and liblzma has been released into the public domain The XZ Utils source distribution additionally includes some optional scripts and an example program that are subject to various versions of the GPL 2 Specifically the full list of GPL scripts and sources distributed with the XZ Utils software include An optional implementation of a common libc function getopt GNU LGPL v2 1 An m4 script for pthread detection GNU GPL v3 Some nonessential wrapper scripts xzgrep etc GNU GPL v2 And the example program scanlzma which is not integrated with the build systemThe resulting software xz and liblzma binaries are public domain unless the optional LGPL getopt implementation is incorporated 8 Binaries are available for FreeBSD NetBSD Linux systems Microsoft Windows and FreeDOS A number of Linux distributions including Fedora Slackware Ubuntu and Debian use xz for compressing their software packages Arch Linux previously used xz to compress packages 9 but as of December 27 2019 packages are compressed with Zstandard compression 10 The GNU FTP archive also uses xz References Edit xz devel XZ Utils 5 2 12 and 5 4 3 4 May 2023 Retrieved 5 May 2023 a b Licensing on tukaani org The most interesting parts of XZ Utils e g liblzma are in the public domain You can do whatever you want with the public domain parts Some parts of XZ Utils e g build system and some utilities are under different free software licenses such as GNU LGPLv2 1 GNU GPLv2 or GNU GPLv3 Henry Stocker Sandra 2017 12 12 How to squeeze the most out of Linux file compression Network World Retrieved 2020 02 09 Gzip vs Bzip2 vs XZ Performance Comparison RootUsers 2015 09 16 Retrieved 2020 02 09 LZMA Utils retrieved 2011 01 25 a b c Linux Manpages Online man cx manual pages XZ Utils Release Notes In what cases is the output of a GPL program covered by the GPL too GNU org Retrieved 21 August 2019 Pierre Schmitz 2010 03 23 News Switching to xz compression for new packages Arch Linux News Now using Zstandard instead of xz for package compression www archlinux org Retrieved 2020 01 07 External links EditOfficial Website SourceForge project page Retrieved from https en wikipedia org w index php title XZ Utils amp oldid 1154444075, wikipedia, wiki, book, books, library,

article

, read, download, free, free download, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, picture, music, song, movie, book, game, games.