Zip (file Format) - Implementation

Implementation

There are numerous zip tools available, and numerous zip libraries for various programming environments; licenses used include commercial and open source. For instance, WinZip is one well-known zip tool running on Windows and WinRAR, IZarc, Info-ZIP, 7-Zip, PeaZip and DotNetZip are other tools, available on various platforms. Some of those tools have library or programmatic interfaces.

Some development libraries licensed under open source agreement are the GNU gzip project and Info-ZIP. For Java: Java Platform, Standard Edition contains the package "java.util.zip" to handle standard zip files; the Zip64File library specifically supports large files (larger than 4 GB) and treats zip files using random access; and the Apache Ant tool contains a more complete implementation released under the Apache Software License.

For .NET applications, there is a no-cost open-source library called DotNetZip available in source and binary form under the Microsoft Public License. It supports many zip features, including passwords for traditional zip encryption or WinZip-compatible AES encryption, Unicode, ZIP64, zip comments, spanned archives, and self-extracting archives. The Microsoft .NET 3.5 runtime library includes a class System.IO.Packaging.Package that supports the zip format. It is primarily designed for document formats using the ISO/IEC international standard Open Packaging Conventions.

The Info-ZIP implementations of the zip format adds support for Unix filesystem features, such as user and group IDs, file permissions, and support for symbolic links. The Apache Ant implementation is aware of these to the extent that it can create files with predefined Unix permissions. The Info-ZIP implementations also know how to use the error correction capabilities built into the zip compression format. Some programs (such as IZArc) do not and will choke on a file that has errors.

The Info-ZIP Windows tools also support NTFS filesystem permissions, and will make an attempt to translate from NTFS permissions to Unix permissions or vice-versa when extracting files. This can result in potentially unintended combinations, e.g. .exe files being created on NTFS volumes with executable permission denied.

Versions of Microsoft Windows have included support for zip compression in Explorer since the Plus! pack was released for Windows 98. Microsoft calls this feature "Compressed Folders". Not all zip features are supported by the Windows Compressed Folders capability. For example, AES Encryption, split or spanned archives, and Unicode entry encoding are not known to be readable or writable by the Compressed Folders feature in Windows XP or later versions.

Read more about this topic:  Zip (file Format)