7z is a new compressed archive file format supporting several various encryption, data compression and pre-processing algorithms providing high compression ratio. 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 latest stable version of 7-Zip and LZMA SDK is version 9.20. Applications that support 7z archives are PowerArchiver, WinRAR, IZArc and TUGZip.
The official 7z file format specification is distributed with 7-Zip’s source code. The specification can be found in plain text format in the ‘doc’ sub-directory of the source code distribution. The MIME type of 7z is application/x-7z-compressed.
• Open modular architecture architecture which allows any encryption, conversion, or compression method to be stacked along with the standard
• High compression ratio depending on the compression method used
• Strong AES-256 / Rijndael encryption
• Ability of using any compression, conversion or encryption method
• Supporting large files with sizes up to approximately 16 exbibytes
• Unicode file names
• Supports solid compression where multiple files of the same type are compressed within a single stream to exploit the combined redundancy.
• Encryption and compression of archive headers
7z has open architecture supporting any new compression method. The following compression methods are integrated to 7z:
• BCJ Converter for 32-bit x86 executables
• BCJ2 Converter for 32-bit x86 executables
• BZip2 Standard BWT algorithm
• Deflate Standard LZ77-based algorithm
• LZMA Improved and optimized version of LZ77 algorithm
• LZMA2 Improved version of LZMA
• PPMD Dmitry Shkarin’s PPMdH with small changes
LZMA is the default and general compression method of 7z format. The LZMA SDK 4.62 was placed in the public domain in December 2008.
Main features of LZMA method:
• High compression ratio
• Variable dictionary size (up to 4 GB)
• Compressing speed: about 1 MB/s on 2 GHz CPU
• Decompressing speed: about 10-20 MB/s on 2 GHz CPU
• Small memory requirements for decompressing (depend from dictionary size)
• Small code size for decompressing: about 5 KB
• Supporting multi-threading and P4′s hyper-threading
LZMA compression algorithm is best suited for embedded applications. LZMA is released under the terms of the GNU LGPL and is also available under a proprietary license for those who cannot use the GNU LGPL in their code. You can ask consultations, custom code programming and required developer licenses for support if you want to use LZMA code.
7-Zip also supports encryption with AES-256 algorithm which uses a cipher key with 256 bits of length. To create the key, 7-Zip uses a derivation function based on SHA-256 hash algorithm. A key derivation function generates a derived key from a user defined text password. 7-Zip uses a huge number of iterations to produce a cipher key from the text password to increase exhaustive search for passwords.
The 7z format can be inappropriate for backup/archival purposes as it does not store UNIX owner/group permissions. A solution to this is to convert data to a tar bitstream before compressing with 7z. But It is notable that the GNU tar, which is common in many UNIX environments, can also natively compress with the LZMA algorithm, without using 7z, and that in this case, the suggested file extension for the archive is “.tar.lzma” or “.tlz” and not “.tar.7z”.
The 7z format does not allow extraction of some “broken files”; for instance, if one has the first segment of a series of 7z files, 7z cannot provide the start of the files within the archive; it needs to wait until all segments are downloaded. The format 7z also lacks recovery records, which may be a problem when limited file corruption occurs.