Skip to content

lukehutch/quickunzip

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

22 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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.

About

Fast parallel unzipper written in Java

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages