Streaming unzip utility.
Switch branches/tags
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
.gitignore Add .gitignore. Jul 10, 2016 Add for github. Jul 10, 2016
sunzip.c sunzip version 0.4. Jul 12, 2016


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.


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.


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.


cat | sunzip


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