fzip.org
Version 1.0.0 · Windows 10 & 11 · MIT licence

Unzip at 657 MB/s

A command-line archive tool for Windows that decompresses every file in an archive at the same time, one per CPU core. No installer, no graphical interface — a single 2.8 MB executable you drive from cmd or PowerShell.

Windows 10 & 11 · 64-bitWritten in Rust2.8 MB

Decompressing 183.3 MB · 303 files 20-thread desktop CPU
12 workers — fzip 0.279s
1 worker — the conventional way 0.836s
Same binary, same archive, only -t changed.

Get started

Three commands cover almost everything

Fzip has no window and no menus. You type a command; it does the work and prints what happened. Double-clicking fzip.exe shows the help screen and waits — that is expected, not an error.

1 · Unpack an archive

> fzip x archive.zip

Creates a folder named after the archive, right next to it. Works the same for .rar, .7z, .tar.gz and the rest.

2 · Look inside first

> fzip l archive.zip

Lists every entry with its size, compression method and whether it is encrypted — without writing anything.

3 · Make an encrypted zip

> fzip a backup.zip MyFolder -p

A bare -p prompts for the password without echoing it, so it never lands in shell history. You get real AES-256.

Opening a terminal where your archive is

  1. Open the folder containing the archive in File Explorer.
  2. Click the address bar, type cmd, press Enter.
  3. A terminal opens already pointed at that folder. Type your command.

To call it as fzip from anywhere, put fzip.exe in a folder such as C:\Tools and add that folder to your PATH. You can also just drag an archive onto fzip.exe in Explorer.

Reference

Every command and option

The complete surface of the tool. Also available as plain Markdown for scripts and assistants.

Commands — fzip <command> <archive> [options]
CommandWhat it doesExample
xExtract an archive. Output goes to a folder named after the archive, created beside it.fzip x data.zip
lList the contents: size, compression method, encryption, name. Writes nothing.fzip l data.zip
tTest integrity. Decompresses and verifies every CRC in memory, writing nothing to disk.fzip t data.zip
aCreate a zip from files and folders. Add -p for AES-256.fzip a out.zip src docs
(none)Passing just an archive is the same as x. This is what drag-and-drop uses.fzip data.zip
Options
OptionMeaning
-o <dir>Write output to this folder instead of the default.
-p [pass]Password. Give the value inline, or leave it off and Fzip prompts without echoing — which keeps it out of shell history.
-t <n>Number of worker threads. Defaults to every core.
-i <glob>Include only entries matching the pattern. Repeatable.
-x <glob>Exclude entries matching the pattern. Repeatable.
-eFlatten: ignore folder structure and put every file in one place.
-yAssume yes. Needed to overwrite an existing archive when creating one.
--overwrite <mode>all (default), skip, rename or newer — how to treat files that already exist.
-mx<0-9>Compression level for a. 0 stores without compressing, 9 is smallest.
--max-memory <n>RAM ceiling, e.g. 512M or 2G. Default 1G.
--no-crcSkip CRC verification.
--progressForce the progress bar even when output is redirected to a file.
-q / -vQuiet (errors only) / verbose (name every file).
-V / -hVersion / help.

Worked examples

# unpack somewhere specific
fzip x data.zip -o D:\output

# pull only the images out of a big archive
fzip x photos.rar -i "*.jpg" -i "*.png"

# unpack again without touching existing files
fzip x update.zip -o D:\app --overwrite skip

# smallest possible encrypted backup
fzip a backup.zip D:\work -mx9 -p

# check a download before trusting it
fzip t installer.zip

Exit codes, for scripts

CodeMeaning
0Success.
1Warning — something was skipped, the rest succeeded.
2Error — corrupt archive, wrong password, or could not write.
7Bad command line, or the file was not found.
@echo off
fzip x "%~1" -q
if errorlevel 2 (echo Extraction failed) else (echo Done)

Why it is fast

One archive, split across every core

A ZIP archive stores each file as an independent compressed block. That means they can all be decompressed at once, rather than queued behind one another. Below is the same 183 MB archive and the same binary, with only the worker count changed.

Decompression throughput by worker count

1 worker219 MB/s
2 workers345 MB/s
4 workers614 MB/s
12 workers657 MB/s
20 workers639 MB/s

Three times the throughput of a single worker, levelling off around twelve because the archive only holds so much independent work. Measured with fzip t, which decompresses and verifies without writing to disk.

What you actually see on disk

Extracting the same archive to an SSD takes 0.80 seconds — about 229 MB/s end to end. Past four workers the drive, not the CPU, sets the pace. Fzip is fastest where decompression is the bottleneck: many files, fast storage, or fzip t where nothing is written at all.

8
Formats read
9 MB
Peak RAM, any size
AES-256
Zip encryption
2.8 MB
One file, no installer

Formats

What it opens, and what it writes

Reads eight formats

zip rar 7z tar gz bz2 xz zst — plus combinations like .tar.gz and .tgz, unwrapped in a single step instead of two.

Writes zip, encrypted

Parallel deflate with genuine AES-256. Fzip refuses to create legacy ZipCrypto, so a password always means real encryption.

Ignores the extension

Format is read from the magic bytes at the start of the file, so an archive with the wrong name still opens correctly.

Memory stays flat

Entries above 32 MB stream straight to disk. A 200 MB file peaks at 9 MB of RAM; a 50 GB one does the same.

Safety

An archiver opens files it did not create

Two audits were run against Fzip: one behavioural, one line-by-line against the PKWARE specification. Thirteen real defects were found and fixed, including two that could kill the process from a 98-byte file. Each has a regression test.

  • Path traversal blocked. Entries with .., drive letters or absolute roots cannot write outside the destination, and each one is reported by name.
  • Zip bombs refused. A 451-byte archive that expands to 400 MB is stopped at its declared size instead of eating half a gigabyte.
  • Device names renamed. An entry called CON or NUL becomes _CON — files named after a device are nearly impossible to delete.
  • Long paths work. Past 260 characters Fzip writes through the extended form, and never reports success for a file it failed to create.
  • Encrypt-then-MAC. AES entries are authenticated before decryption, so tampered data is rejected instead of decoding into garbage.
  • CRC on every entry by default, using SIMD so it costs almost nothing.
  • Hardened binary. ASLR, DEP, high-entropy address space and Control Flow Guard, with a full application manifest. Never packed or obfuscated.
  • Not yet code-signed. The honest gap. An unsigned binary with no download history can draw a machine-learning false positive; the cause is documented rather than hidden.

Download

One file. Nothing to install.

No runtime, no DLLs, no registry entries. Put it anywhere and run it.

fzip.exe · version 1.0.0

Windows 10 and 11, 64-bit. 2,865,664 bytes. Reads all eight formats, creates encrypted zip.

SHA-25628157C577F91D141897259D5C68CA1F92A9C06F557B14189E96899DB48550E09
Download · 2.8 MB

Check it before you run it

PS> Get-FileHash fzip.exe -Algorithm SHA256

That hash identifies this published binary. Compiling the source yourself gives a functionally identical executable with a different hash, because Rust builds are not bit-for-bit reproducible — expected, not tampering. Building it yourself is the strongest check available without a code signature, and every dependency is pinned in Cargo.lock.

Limits

What Fzip will not do

Said up front, so nothing surprises you later.