Streaming unzip utility.
C
Latest commit aa09ce7 Jul 12, 2016 @madler sunzip version 0.4.
Permalink
Failed to load latest commit information.
.gitignore Add .gitignore. Jul 10, 2016
README.md Add README.md for github. Jul 10, 2016
sunzip.c sunzip version 0.4. Jul 12, 2016

README.md

Synopsis

sunzip is a streaming unzip utility. It will read a .zip file from stdin and decompress its contents into the current directory. Command line options allow specifying a different destination directory, overwriting existing files (normally prevented), and testing the contents of .zip file instead of writing the decompressed files.

sunzip can decompress methods 0 (stored), 8 (deflated), 9 (Deflate64), 10 (DCL imploded), and 12 (bzip2). sunzip handles Zip64 .zip files. It does not handle encrypted .zip files.

Motivation

Most unzip utilities require random access to the .zip file, since they first read the central directory at the end, and then use that to access the entries in the .zip file. Those utilities cannot accept a .zip file on a pipe. sunzip reads and processes the .zip file contents sequentially. The entry information in the central directory is applied to the already decompressed files when the central directory is read.

Installation

Compile and link with zlib, infback9.c and inftree9.c (found in zlib's contrib directory), blast.c (also in contrib), and libbz2. blast.c from zlib 1.2.9 or later must be used.

Test

cat any.zip | sunzip

License

This code is under the zlib license, permitting free commercial use.