Info-ZIP

From EDM2
Jump to: navigation, search
InfoZIP.png

An open source project that started in 1990 to create portable compressor-archiver utilities that are compatible with PKWare's PKZip and its ZIP file format, it was originally based on the Unzip DOS program that Samuel H. Smith had created a year earlier. But due to licensing restrictions it was soon completely rewritten. Info-Zip consists of two command line application programs Zip and 'Unzip that handle compression and decompression respectively, although the Zip program can decompress as well as compress, in addition the suite contains a few related utility programs some of them included in the main package and some available as a separate download.

The Info-Zip code has a fairly liberal licence which meant code from the project was routinely used in projects that required file compression, archival capabilities or compatibility with the ZIP file format, however in modern use it is more common to use compression libraries such as the Info-ZIP derivative Zlib unless the archival features of Info-ZIP are required, since the libraries are more flexible and give much better compression ratios.

However apart from the utility you get from the Info-ZIP Zip and Unzip programs themselves there are cases where it makes sense to use Info-Zip code in your project rather than a library or even use applications themselves and make them a dependency of your program. Some software such as Java Jars implementation understands the ZIP file format to be strictly ISO/IEC 21320-1:2015 compatible, i.e. they only allow Deflate 0 and 8 and require the file structure to be compatible with the Info-ZIP one, in those cases the more modern compression libraries have no advantage since the better compression ratios are not understood or even allowed by the ISO 21320-1 and similarly with a library you will need to write your own file structure code but all that is already built into Info-ZIP.

On OS/2 you can also get Info-ZIP in the form of a REXX compatible dynamic link library which makes coding using it even simpler as long as your language has REXX DLL compatibility as in the case of Perl or if you write a simple DLL wrapper in your code.

Background and history

When ZIP took over as most popular compression format on PC's almost overnight in 1989 it created a problem for end users of other computer systems and network operators as even though the file format had a supposedly open specification the program itself was only available as an executable for DOS based machines. The company behind the ARC compressor and format that had for years been the most popular archive format on PC's had made available copyrighted but open source code for the express purpose of creating unarchivers for other operating systems.

This meant that end users that were accustomed to downloading PC archive files from BBS's and file archives on the internet suddenly found they could not decompress those files but prior to that you could download an ARC file and have an ARC decompressor for your system. Similarly system administrators found themselves in a pickle as while most BBS systems were DOS or OS/2 based and could run the PKZip program almost no PC based servers used DOS as the base operating system, most servers used either Novell Netware or a UNIX derived system, and admins were suddenly flooded with ZIP files that they could not examine unless they had a direct access to a DOS machine.

This lead a number of people to get together via USENET with the aim of creating a truly portable alternative versions of Zip and UnZip that had the source code available, the project eventually got the name "Info-ZIP". Early releases were based on the source code provided with Samuel H. Smith's freeware UNZIP program but since that code contained a no commercial usage clause which clashed with the Info-ZIP's stated aim to make ZIP available to everyone this was soon replaced with a code released under a very permissive ad hoc licence and the Info-ZIP code soon started showing up in other projects.

The project ran into a number problems during its early years, some of the core programmers wanted to extend the capabilities of the package over and above what PK-Zip had to offer and align with the Free Software Foundation by releasing under the GPL, however both of these proposals were rejected by the rest of the community due to compatibility reasons and the restrictions of the GPL, this eventually lead a number of core team members to start a new project called gzip that was part of the FSF GNU project, although later projects by the same team have eskewed the FSF and been released under a more liberal licence.

Derivatives

Mark Adler and Jean-loup Gailly who were that main authors of the Zip and Unzip programs left the project fairly early on after some disagreements and started the gzip project that was originally based on Info-Zip Code and also later founded the PNG and library versions below:

  • GNU zip (gzip)
  • Libpng
  • PNG
  • zlib

Links

Articles

Licence

Open source software, current versions were published under the Info-Zip Licence, prior to the release of version 2.3 the project used an ad hoc licence buried inside different parts the readme file.

Authors

  • Mark Adler (original Zip author)
  • John Bush
  • Karl Davis
  • Harald Denker
  • Jean-Michel Dubois
  • Jean-loup Gailly
  • Hunter Goatley
  • Ed Gordon
  • Ian Gorman
  • Chris Herborth
  • Dirk Haase
  • Greg Hartwig
  • Robert Heath
  • Jonathan Hudson
  • Paul Kienitz
  • David Kirschbaum
  • Johnny Lee
  • Onno van der Linden
  • Igor Mandrichenko
  • Steve P. Miller
  • Sergio Monesi
  • Keith Owens
  • George Petrov
  • Greg Roelofs
  • Kai-Uwe Rommel (OS/2 specific code)
  • Steve Salisbury
  • Dave Smith
  • Steven M. Schweda
  • Christian Spieler
  • Cosmin Truta
  • Antoine Verheijen
  • Paul von Behren
  • Rich Wales
  • Mike White