- Notifications
You must be signed in to change notification settings - Fork20
License
google/ripunzip
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
A tool to unzip files in parallel.
This is a Rust library (and command-line tool) which utilises the power of Rust'srayon
library to unzip a zip file in parallel. If you're fetching the zip file from a URI, itmay also be able to start unzipping in parallel with the download.
To fetch the command-line tool:cargo install ripunzip
thenripunzip -h
. Alternatively,a.deb
file is available under the "releases" section on github.
To add the library to your project:cargo add ripunzip
and check out the documentationlinked above.
Pull requests are welcome - seethe contributing doc. The focusof this project remains efficiently unzipping entire zip files, and any speed increasesare greatly appreciated!cargo criterion
is used for performance testing, though thebenchmark suite doesn't do a great job of simulating real conditions. In particular pleasebe aware that this tool is often used on devices with spinny hard disks and very limiteddisk write bandwidth, so in different circumstances that may be the limiting circumstance,or network bandwidth, or CPU time. Please consider the impact of your changes on all thesepermutations.
Release procedure:
- Revise the version number
cargo publish
- Retrieve the latest
.deb
file from the latest CI job - Declare a new release and tag on github
- As you make that release, include the
.deb
file as an artifact.
There's alsocargo fuzz
support for comparitive fuzzing against non-parallel unzippingto try to spot any unforeseen circumstances where we do anything differently. If youchange the core unzipping logic please use this.
This is not an officially supported Google product.
LicenseThis software is distributed under the terms of both the MIT license and theApache License (Version 2.0).
See LICENSE for details.