Skip to content

Latest commit

 

History

History
21 lines (13 loc) · 1.32 KB

README.md

File metadata and controls

21 lines (13 loc) · 1.32 KB

QuickUnzip

Fast parallel unzipper written in Java.

Unzips a zipfile across multiple threads, using one ZipFile instance per thread. (ZipFile objects have synchronized methods, so one instance is required per thread for parallel unzipping.)

QuickUnzip is probably about the fastest unzipper that it is possible to write using the standard Java ZipFile API -- it is twice as fast as InfoZip when unzipping the Eclipse Java development distribution zipfile (Core i7-4702HQ CPU @ 2.20GHz, 4 cores / 8 threads, with SSD).

Some care was taken to ensure that unzipping is safe (e.g. zipfile paths containing ../ cannot escape the output directory, and / is stripped from the beginning of zipfile paths to relativize them).

Commandline syntax:

java io.github.lukehutch.quickunzip.QuickUnzip [-o] [-q] zipfilename.zip [outputdir]

    Where:  -q => quiet
            -o => overwrite

If outputdir is not specified, the zipfile is extracted into a directory with the same name as the zipfile, but with the ".zip" or ".jar" extension removed (or "-files" appended, if there is no such file extension). This output directory is created in the same directory as the zipfile.

If outputdir is specified, that directory is created if it doesn't exist, then all of the toplevel contents of the zipfile are extracted into that directory.