7-Zip

Last updated

7-Zip
Developer(s) Igor Pavlov [1]
Initial release19 July 1999;24 years ago (1999-07-19) [2]
Stable release 23.01 [3]   OOjs UI icon edit-ltr-progressive.svg (20 June 2023;10 months ago (20 June 2023))
Preview release 24.04 Beta (5 April 2024;28 days ago (2024-04-05)) [±] [4]
Repository
Written in Assembly, C and C++ [5]
Operating system Windows/ReactOS, [6] BSD, macOS, Linux, [7]
Size 1.1–1.7 MB [8]
Available in89 languages [9]
List of languages

Afrikaans, Albanian, Arabic, Aragonese, Armenian, Asturian, Azerbaijani, Bangla, Bashkir, Basque, Belarusian, Breton, Bulgarian, Catalan, Chinese Simplified, Chinese Traditional, Corsican, Croatian, Czech, Danish, Dutch, English, Esperanto, Estonian, Extremaduran, Farsi, Finnish, French, Frisian, Friulian, Galician, Georgian, German, Greek, Gujarati, Indian, Hebrew, Hindi, Indian, Hungarian, Icelandic, Ido, Indonesian, Irish, Italian, Japanese, Kabyle, Karakalpak - Latin, Kazakh, Korean, Kurdish - Sorani, Kurdish, Kyrgyz, Latvian, Ligurian, Lithuanian, Macedonian, Malay, Marathi, Mongolian (MenkCode), Mongolian (Unicode), Mongolian, Nepali, Norwegian Bokmal, Norwegian Nynorsk, Pashto, Polish, Portuguese Brazilian, Portuguese Portugal, Punjabi, Indian, Romanian, Russian, Sanskrit, Indian, Serbian - Cyrillic, Serbian - Latin, Sinhala, Vietnam, Slovak, Slovenian, Spanish, Swedish, Tamil, Tatar, Thai, Turkish, Ukrainian, Uyghur, Uzbek, Valencian, Vietnamese, Welsh, Yoruba

Contents

These translations are partial and for the user interface only. Help and documentations are in English.

Type File archiver
License LGPL-2.1-or-later with unRAR restriction [10] / LZMA SDK in the public domain [11]
Website www.7-zip.org   OOjs UI icon edit-ltr-progressive.svg

7-Zip is a free and open-source file archiver, a utility used to place groups of files within compressed containers known as "archives". It is developed by Igor Pavlov and was first released in 1999. [2] 7-Zip has its own archive format called 7z, but can read and write several others.

The program can be used from a Windows graphical user interface that also features shell integration, from a Windows command-line interface as the command 7za or 7za.exe, and from POSIX systems as p7zip. [12] Most of the 7-Zip source code is under the LGPL-2.1-or-later license; the unRAR code, however, is under the LGPL-2.1-or-later license with an "unRAR restriction", which states that developers are not permitted to use the code to reverse-engineer the RAR compression algorithm. [13] [14]

Since version 21.01 alpha, preliminary Linux support has been added to the upstream instead of the p7zip project. [7]

Archive formats

7z

By default, 7-Zip creates 7z-format archives with a .7z file extension. Each archive can contain multiple directories and files. As a container format, security or size reduction are achieved by looking for similarities throughout the data using a stacked combination of filters. These can consist of pre-processors, compression algorithms, and encryption filters.

The core 7z compression uses a variety of algorithms, the most common of which are bzip2, PPMd, LZMA2, and LZMA. Developed by Pavlov, LZMA is a relatively new system, making its debut as part of the 7z format. LZMA uses an LZ-based sliding dictionary of up to 3840 MB in size, backed by a range coder. [15]

The native 7z file format is open and modular. File names are stored as Unicode. [16]

In 2011, TopTenReviews found that the 7z compression was at least 17% better than ZIP, [17] and 7-Zip's own site has since 2002 reported that while compression ratio results are very dependent upon the data used for the tests, "Usually, 7-Zip compresses to 7z format 30–70% better than to zip format, and 7-Zip compresses to zip format 2–10% better than most other zip-compatible programs." [18]

The 7z file format specification is distributed with the program's source code, in the "doc" sub-directory.

Others

7-Zip supports a number of other compression and non-compression archive formats (both for packing and unpacking), including ZIP, gzip, bzip2, xz, tar, and WIM. The utility also supports unpacking APM, ar, ARJ, chm, cpio, deb, FLV, JAR, LHA/LZH, LZMA, MSLZ, Office Open XML, onepkg, RAR, RPM, smzip, SWF, XAR, and Z archives and cramfs, DMG, FAT, HFS, ISO, MBR, NTFS, SquashFS, UDF, and VHD disk images. 7-Zip supports the ZIPX format for unpacking only. It has had this support since at least version 9.20, which was released in late 2010.

7-Zip can open some MSI files, allowing access to the meta-files within along with the main contents. Some Microsoft CAB (LZX compression) and NSIS (LZMA) installer formats can be opened. Similarly, some Microsoft executable programs (.EXEs) that are self-extracting archives or otherwise contain archived content (e.g., some setup files) may be opened as archives.

When compressing ZIP or gzip files, 7-Zip uses its own DEFLATE encoder, which may achieve higher compression, but at lower speed, than the more common zlib DEFLATE implementation. The 7-Zip deflate encoder implementation is available separately as part of the AdvanceCOMP suite of tools.

The decompression engine for RAR archives was developed using freely available source code of the unRAR program, which has a licensing restriction against creation of a RAR compressor. 7-Zip v15.06 and later support extraction of files in the RAR5 format. [19] Some backup systems use formats supported by archiving programs such as 7-Zip; e.g., some Android backups are in tar format, and can be extracted by archivers such as 7-Zip. [20]

7-Zip ZS, a port of 7-Zip FM with Zstandard .zst (and other formats) support, is developed by Tino Reichardt. [21]

Modern7z, a Zstandard .zst (and other formats) plugin for 7-Zip FM, is developed by Denis Anisimov (TC4shell). [22]

File manager

7-Zip comes with a file manager along with the standard archiver tools. The file manager has a toolbar with options to create an archive, extract an archive, test an archive to detect errors, copy, move, and delete files, and open a file properties menu exclusive to 7-Zip. The file manager, by default, displays hidden files because it does not follow Windows Explorer's policies. The tabs show name, modification time, original and compressed sizes, attributes, and comments (4DOS descript.ion format).

When going up one directory on the root, all drives, removable or internal appear. Going up again shows a list with four options:

Features

7-Zip supports:

Versions

Two command-line versions are provided: 7z (7z.exe), using external libraries; and 7za (7za.exe), which is a standalone executable containing built-in modules, but with compression/decompression support limited to 7z, ZIP, gzip, bzip2, Z and tar formats. A 64-bit version is available, with support for large memory maps, leading to faster compression. All versions support multi-threading.

Forks

Plugins

7-zip comes with a plug-in system for expansion. The official "Links" page points to many plugins written by TC4Shell, providing extra file support. [31]

Software development kit

7-Zip has a LZMA SDK which was originally dual-licensed under both the GNU LGPL and Common Public License, [32] with an additional special exception for linked binaries. On 2 December 2008, the SDK was placed by Igor Pavlov in the public domain. [11]

Security

On older versions, self-extracting archives were vulnerable to arbitrary code execution through DLL hijacking: they load and run a DLL named UXTheme.dll, if it is in the same folder as the executable file. [33] [34] [35] 7-Zip 16.03 Release notes say that the installer and SFX modules have added protection against DLL preloading attack. [2]

Versions of 7-Zip prior to 18.05 contain an arbitrary code execution vulnerability in the module for extracting files from RAR archives (CVE - 2018-10115), a vulnerability that was fixed on 30 April 2018. [36]

Versions prior to 23.0 also contained an arbitrary code execution vulnerability, fixed on 7 May 2023. [37]

Reception and usage

Snapfiles.com in 2012 rated 7-Zip 4.5 stars out of 5, noting, "[its] interface and additional features are fairly basic, but the compression ratio is outstanding". [38]

On TechRepublic in 2009, Justin James found the detailed settings for Windows File Manager integration were "appreciated" and called the compression-decompression benchmark utility "neat". And though the archive dialog has settings that "will confound most users", he concluded: "7-Zip fits a nice niche in between the built-in Windows capabilities and the features of the paid products, and it is able to handle a large variety of file formats in the process." [39]

Between 2002 and 2024, 7-Zip was downloaded 428 million times from SourceForge alone. [40]

The software has received awards, In 2007, SourceForge granted it community choice awards for "Technical Design" and for "Best Project". [41] In 2013, Tom's Hardware conducted a compression speed test comparing 7-ZIP, MagicRAR, WinRAR, WinZip; they concluded that 7-ZIP beat out all the others with regards to compression speed, ratio, and size and awarded the software the 2013 Tom's Hardware Elite award. [42]

See also

Related Research Articles

ZIP is an archive file format that supports lossless data compression. A ZIP file may contain one or more files or directories that may have been compressed. The ZIP file format permits a number of compression algorithms, though DEFLATE is the most common. This format was originally created in 1989 and was first implemented in PKWARE, Inc.'s PKZIP utility, as a replacement for the previous ARC compression format by Thom Henderson. The ZIP format was then quickly supported by many software utilities other than PKZIP. Microsoft has included built-in ZIP support in versions of Microsoft Windows since 1998 via the "Plus! 98" addon for Windows 98. Native support was added as of the year 2000 in Windows ME. Apple has included built-in ZIP support in Mac OS X 10.3 and later. Most free operating systems have built in support for ZIP in similar manners to Windows and macOS.

RAR is a proprietary archive file format that supports data compression, error correction and file spanning. It was developed in 1993 by Russian software engineer Eugene Roshal and the software is licensed by win.rar GmbH. The name RAR stands for Roshal Archive.

The Lempel–Ziv–Markov chain algorithm (LZMA) is an algorithm used to perform lossless data compression. It has been under development since either 1996 or 1998 by Igor Pavlov and was first used in the 7z format of the 7-Zip archiver. This algorithm uses a dictionary compression scheme somewhat similar to the LZ77 algorithm published by Abraham Lempel and Jacob Ziv in 1977 and features a high compression ratio and a variable compression-dictionary size, while still maintaining decompression speed similar to other commonly used compression algorithms.

7z is a compressed archive file format that supports several different data compression, encryption and pre-processing algorithms. The 7z format initially appeared as implemented by the 7-Zip archiver. The 7-Zip program is publicly available under the terms of the GNU Lesser General Public License. The LZMA SDK 4.62 was placed in the public domain in December 2008. The latest stable version of 7-Zip and LZMA SDK is version 23.01.

<span class="mw-page-title-main">StuffIt Expander</span> File decompressor software utility

StuffIt Expander is a proprietary, freeware, closed source, decompression software utility developed by Allume Systems. It runs on the classic Mac OS, macOS, and Microsoft Windows. Prior to 2011, a Linux version had also been available for download.

<span class="mw-page-title-main">WinRAR</span> File archiver

WinRAR is a trialware file archiver utility for Windows, developed by Eugene Roshal of win.rar GmbH. It can create and view archives in RAR or ZIP file formats, and unpack numerous archive file formats. To enable the user to test the integrity of archives, WinRAR embeds CRC32 or BLAKE2 checksums for each file in each archive. WinRAR supports creating encrypted, multi-part and self-extracting archives.

In computing, ACE is a proprietary data compression archive file format developed by Marcel Lemke, and later bought by e-merge GmbH. The peak of its popularity was 1999–2001, when it provided slightly better compression rates than RAR, which has since become more popular.

<span class="mw-page-title-main">TUGZip</span>

TUGZip is a freeware file archiver for Microsoft Windows. It handles a great variety of archive formats, including some of the commonly used ones like zip, rar, gzip, bzip2, sqx and 7z. It can also view disk image files like BIN, C2D, IMG, ISO and NRG. TugZip repairs corrupted ZIP archives and can encrypt files with 6 different algorithms.

The following tables compare general and technical information for a number of file archivers. Please see the individual products' articles for further information. They are neither all-inclusive nor are some entries necessarily up to date. Unless otherwise specified in the footnotes section, comparisons are based on the stable versions—without add-ons, extensions or external programs.

<span class="mw-page-title-main">ZipGenius</span> Freeware file archiver

ZipGenius is a freeware file archiver developed by The ZipGenius Team for Microsoft Windows. It is capable of handling nearly two dozen file formats, including all the most common formats, as well as password-protect archives and work directly with CD-R/RW drives. It is presented in two editions: standard and suite. While the suite edition includes optional modules of the ZipGenius project, the standard setup package simply includes the main ZipGenius application.

<span class="mw-page-title-main">GNOME Archive Manager</span> Archive manager of the GNOME desktop environment (former File Roller)

Archive Manager is the file archiver of the GNOME desktop environment.

<span class="mw-page-title-main">Self-extracting archive</span> Computer executable program

A self-extracting archive is a computer executable program which combines compressed data in an archive file with machine-executable code to extract the information. Running on a compatible operating system, it does not need a suitable extractor in the target computer to extract the data. The executable part of the file is known as a decompressor stub.

<span class="mw-page-title-main">PeaZip</span> File archive computer program

PeaZip is a free and open-source file manager and file archiver for Microsoft Windows, ReactOS, Linux, MacOS and BSD by Giorgio Tani. It supports its native PEA archive format and other mainstream formats, with special focus on handling open formats. Version 9.4.0 supported 234 file extensions.

<span class="mw-page-title-main">Xarchiver</span>

Xarchiver is a front-end to various command line archiving tools for Linux and BSD operating systems, designed to be independent of the desktop environment. It is the default archiving application of Xfce and LXDE. Deepin's archive manager is based on Xarchiver.

Igor Pavlov is a Russian freelance programmer, the creator, and the maintainer of the file archiver 7-Zip. He is also the creator of the 7z archive format, and a few experimental programs including 7-max, 7-benchmark, UFA, 777, and BIX.

XZ 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.

FreeArc is a free and open-source high-performance file archiver developed by Bulat Ziganshin. The project is presumably discontinued, since no information has been released by the developers since 2016 and the official website is down.

lzip Data compression utility

lzip is a free, command-line tool for the compression of data; it employs the Lempel–Ziv–Markov chain algorithm (LZMA) with a user interface that is familiar to users of usual Unix compression tools, such as gzip and bzip2.

libzip is an open source library for handling zip archives. It is written in portable C and can thus be used on multiple operating systems. It is based on zlib. It is used by PHP's zip extension for zip file support and MySQL Workbench. It is also used by KDE's ark archiving tool for zip archive support.

References

  1. "A Few Questions for Igor Pavlov". Dr. Dobb's Data Compression Newsletter. 30 April 2003. Retrieved 28 March 2023.
  2. 1 2 3 4 "History of 7-zip changes". 7-Zip 20.02 alpha. 8 August 2020. Retrieved 8 August 2020.
  3. "7-zip: Download" . Retrieved 20 June 2023.
  4. "History of 7-zip changes". 7-Zip. 5 April 2024. Retrieved 5 April 2024.
  5. "P7ZIP SourceForge". SourceForge.net . January 2016. Retrieved 7 March 2016.
  6. "Tests for ReactOS 0.4.14".
  7. 1 2 Larabel, Michael (12 March 2021). "Upstream 7-Zip Adds Preliminary Linux Support". Phoronix. Retrieved 17 March 2021.
  8. "7-Zip - Browse /7-Zip/16.00". SourceForge.net . Slashdot Media. 10 April 2016. Retrieved 12 May 2016.
  9. Options... dialog box of 7-Zip for Windows 21.00 alpha
  10. Pavlov, Igor (2010). "7-Zip License for use and distribution". 7-zip.org/. Archived from the original on 10 April 2010. Retrieved 16 April 2010.
  11. 1 2 Pavlov, Igor (2013). "LZMA SDK (Software Development Kit)" . Retrieved 16 June 2013.
  12. 1 2 "P7ZIP". GitHub. July 2022. Retrieved 6 July 2022.
  13. Pavlov, Igor. "7-Zip". 7-zip.org. Retrieved 31 October 2012.
  14. Pavlov, Igor. "7-Zip – License for use and distribution". 7-zip.org. Retrieved 31 October 2012.
  15. Diaz, Antonio Diaz. "Lzip". LZip.NonGNU.org. Archived from the original on 29 July 2010. Retrieved 29 July 2010.
  16. Pavlov, Igor. "7z Format". 7-zip.org. Retrieved 16 April 2017.
  17. "7-Zip 2011 – TopTenREVIEWS". Archived from the original on 25 October 2012.
  18. Igor Pavlov. "7-Zip (home page)". 7-zip.org. Archived from the original on 21 January 2002. Statement on compression performance very similar in January 2002 and April 2017.
  19. Pavlov, Igor. "7-Zip 15.06 beta release notes".
  20. Vijay (11 May 2013). "How to extract files from a Nandroid Backup". AJQI. Archived from the original on 31 March 2017. Retrieved 16 April 2017.
  21. "Milkys Homepage - 7-Zip with support for Zstandard, Brotli, Lz4, Lz5 and Lizard Compression". mcmilk.de.
  22. "Modern7z". www.tc4shell.com.
  23. "AES Encryption Information: Encryption Specification AE-1 and AE-2". WinZip . 30 January 2009.
  24. Atwood, Jeff (28 February 2009). "File Compression in the Multi-Core Era". Coding Horror. Retrieved 4 August 2017.
  25. "Command Line Syntax". sevenzip.osdn.jp.
  26. "[ubuntu] GUI front end for 7-zip? [Archive] - Ubuntu Forums". ubuntuforums.org.
  27. -m (Set compression Method) switch
  28. "Milkys Homepage - 7-Zip with support for Zstandard, Brotli, Lz4, Lz5 and Lizard Compression". mcmilk.de.
  29. "p7zip-zstd". p7zip-project. 4 May 2023.
  30. "NanaZip: The 7-Zip derivative intended for the modern Windows experience". M2-Team. 6 May 2023.
  31. "Links". 7-zip.org.
  32. "Browse /LZMA SDK/4.23". SourceForge . Retrieved 12 February 2014.
  33. Kanthak, Stefan (8 December 2015). "Executable installers are vulnerable^WEVIL (case 7): 7z*.exe allows remote code execution with escalation of privilege". SecLists.org.
  34. Kanthak, Stefan (22 December 2015). "Executable installers are vulnerable^WEVIL (case 14): Rapid7's ScanNowUPnP.exe allows arbitrary (remote) code execution". SecLists.org.
  35. Hart, Jon (21 December 2015). "ScanNow DLL Search Order Hijacking Vulnerability and Deprecation". Rapid7.com.
  36. "A Vulnerability in 7-Zip Could Allow for Arbitrary Code Execution". cisecurity.org. 1 May 2018.
  37. "7-Zip 7Z File Parsing Integer Underflow Remote Code Execution Vulnerability". zerodayinitiative.com. 23 August 2022.
  38. "7-Zip file compression tool". Snapfiles.com. WebAttack. Retrieved 12 October 2012.
  39. James, Justin (10 November 2009). "Review: 7-Zip file compression application". TechRepublic . pp. 1–2.
  40. 7-zip file download stats on SourceForge.net (February 2024)
  41. "SourceForge.net: 2007 Community Choice Awards". SourceForge . 15 June 2007. Archived from the original on 26 March 2010. Retrieved 16 April 2010.
  42. Masiero, Manuel; Roos, Achim (19 March 2013). "Compression Performance: 7-Zip, MagicRAR, WinRAR, WinZip". Tom's Hardware . Retrieved 25 April 2021.