ZIP, 7z, tar.xz, tar.zst and tar.bz2 made on all of your cores at once, and big archives opened the same way. ZIP, RAR, 7z, tar, disc images and age files, opened safely. A native app built in Rust, on hivepack.
A big archive is a lot of work for one core while the others wait. packwing shares it among all of them, so it is made, and opened, many times sooner.
Made on every core. ZIP, 7z, .tar.gz, .tar.xz, .tar.zst, .tar.bz2 and .tar.lz4 are compressed on all of your cores at once: ZIP a file on each, and one large file on all of them, as pigz does gzip; the others a piece on each. Files added to a ZIP archive are compressed on every core too.
Opened on every core. What is written in pieces (by packwing, xz -T, pzstd, pbzip2 or 7-Zip) is read a piece on each core, and so is any bzip2 file and a macOS package. ZIP and RAR archives’ files, and 7z’s solid blocks, come out several at once, a solid RAR archive’s large files are decoded on several cores, and a tar or cpio archive’s files are written while it is still being read, and decompressed only once.
A .tar.zst that opens on every core. From 256 MiB, a .tar.zst goes in frames of 32 MiB with zstd’s seek table, so every core opens it at once, for a fraction of a percent in size. One frame, the smallest, is a click away.
Smaller blocks, when you ask. A .tar.xz or a 7z archive goes in its format’s own blocks, the smallest archive, which are fewer than your cores below a few GB. New archive, or pkw --blocks small, cuts enough for 32 cores: up to twice as fast, a few percent larger.
The same archive, byte for byte. One core or thirty-two, what is made is identical: the cores change only how soon it is done.
Never out of memory. The threads take no more than 70% of the memory free, and leave at least 2 GB of it to everything else (half, where little is free), within a container’s limits too, whether they make an archive or open one: a RAR or 7z archive gets as many as its dictionaries leave room for. Where one level would take more, it is lowered, and you are told.
As many as you like. All of them by default; Settings › General, or pkw --threads N, sets fewer.
Project files 2026.tar.zst16 threads
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Same archive, byte for byteWithin 70% of the memory free
More than cores. How fast a job goes depends on the format and level too, the memory free, and how quickly your disk reads and writes.
Safe by default
Extract without a second thought.
An archive from anyone can hold surprises. packwing checks each one as it goes, so a bad archive stops before it does harm, and tells you why.
Nothing lands outside the folder. A name that climbs out (../), an absolute path, or a link that leads elsewhere is refused or left out.
Archive bombs stop. What comes out is held to a size limit, however small the archive.
Your files stay yours. A file already there is never written over unless you say so.
Programs ask first. A file opened from an archive opens as a copy in a temporary folder, after asking; a program always asks.
The Internet mark stays. On Windows and macOS, what came from the Internet is still marked when extracted, so the system warns before it runs.
Names this system can use. Names your system cannot take are asked about once, all together, before anything is written: skip, rename or stop.
Nothing half-done. A tar, cpio or XAR archive comes out in a private folder, moved into place at the end; one a crash leaves behind is removed when packwing starts again.
Features
Everything an archive needs.
Look inside before you extract, make archives others can open, and keep the work going in the background.
Look before you extract
Search all of it, see a file, take only what you need
A search through every folder of an archive, whatever the case and accents: resume findsRésumé. Pictures and text show in a preview, and Extract takes just what is selected. A password is asked once, kept in memory, and forgotten ten minutes after its last use.
Writes archives
ZIP, 7z and tar, your way
ZIP, 7z, .tar.gz, .tar.xz and .tar.zst, with five levels, AES-256 on ZIP and 7z (7z can hide the names too), and parts as 7-Zip cuts them. For a backup, a tar archive keeps each file’s owner, group and extended attributes, ACLs among them, and gives them back when you extract it; an archive to share leaves them out. It tells you who can open what you make.
In the background
Keep working while it works
Extracting, compressing, testing, copying and signing go on behind, two at a time. The Jobs page says how far each is, waits for a password one needs, and the system tells you when one ends.
In your file manager
Right-click, and it is done
Extract here, extract to a new folder, open, or compress to ZIP from the right-click menu of Windows Explorer, macOS Finder and Linux file managers (Nautilus, Dolphin, Nemo and Thunar), and drag files into the window.
age built in
Encrypted files, the modern way
Opens and writes .age files with a passphrase, age keys, Ed25519 SSH keys and post-quantum keys.
ZIP and 7z
Edit an archive in place
Add, delete and rename inside a ZIP or 7z archive. The new one takes its place only once it reads back whole, and starts only where there is room for it. A 7z archive’s blocks that lose nothing are copied as they are, encrypted or not.
Signatures
Sign what you share
Sign with an SSH Ed25519 key, or a new key of Ed25519 and ML-DSA-65 together. An SSH signature checks with ssh-keygen -Y verify, without packwing.
Checksums
Check a download
SHA-256 and SHA-1, or SHA-512, MD5 and BLAKE3, in one pass. Paste the one from a download page, or a SHA256SUMS list, to compare; save them beside the file for sha256sum -c.
Updates
Updates you can trust
A daily look for a newer version, in a list believed only when its signatures verify. Nothing is downloaded or installed unless you ask.
Every day
Made to feel at home
An interface in 15 languages, light and dark, back and forward with your mouse, and a window that comes back as you left it.
Formats
Opens what you come across.
packwing tells a file by what it holds, not by its name, so a ZIP under another name opens as one.
Opens
ZIPsplit archives too; jar, apk, epub, cbz
RAR1.4 to 7, volumes too
7zand its parts, .7z.001
tarand cpio
Disc imagesISO 9660 and UDF
PackagesDebian .deb, RPM, snap, AppImage and macOS .pkg
Compressedgzip, zstd, xz, bzip2, lz4, lzma: any layers around them
agepassphrase, age, SSH and post-quantum keys
Writes
ZIPAES-256, in parts
7zAES-256, names hidden, in parts
.tar.gz · .tar.xz · .tar.zstand .tar.bz2, .tar.lz4; five levels; owners and ACLs for a backup
.ageto a passphrase or keys
And converts between them, an entry at a time, with no folder in between.
Storages
Your archives, wherever they are.
Browse folders, buckets and servers as a file manager does, and copy and move between them. Secrets stay in the system’s keychain.
Folders
on this computer, and the drives it sees
S3
Amazon S3, and S3-compatible storage
WebDAV
any WebDAV server
SFTP
any server you reach over SSH
Archives in place
Read a remote archive without downloading it
A ZIP or 7z archive on a storage is listed, and a file taken from it, without fetching the rest.
Command line
packwing, without the window.
pkw is for a terminal, a server over SSH or a script: the same formats, the same safety and the same organization policies as the app.
$ pkw list backup.7z
# what it holds; --json for scripts
$ pkw extract backup.7z
# into backup/, as safely as the app
$ pkw test backup.7z
# it reads whole, as it was made
$ pkw create site.tar.zst site/
# its format by its extension
$ pkw create -p --hide-names private.7z docs/
# a password, asked; names hidden
$ pkw create --owners --xattrs home.tar.zst ~/
# a backup: owners, attributes and ACLs kept
$ pkw extract --same-owner --xattrs home.tar.zst
# and given back as they were
$ pkw convert photos.rar photos.tar.zst
# another format, with no folder between
$ pkw checksum --check SHA256SUMS
# downloads, checked against their list
$ pkw sign release.zip --by ~/.ssh/id_ed25519
# release.zip.sig beside it
$ pkw cp site.tar.zst Backups:2026/
# to a storage added in the app
$ pkw audit verify
# the audit log: nothing changed or taken out
$
Passwords stay off the command line
pkw asks for one in a terminal, or reads it from a file, standard input or an environment variable, where others cannot see it.
Exit codes that say what happened
0 done
1 failed
2 not understood
3 password or key needed, or wrong
4 not an archive it opens
5 done, with some files skipped or damaged
130 stopped by Ctrl-C, what it was making removed
For organizations
Set it once, for everyone.
Keep the Internet mark on what is extracted, require encryption on every new archive, and set which passwords are allowed and how long they have to be. Keep an audit log of what packwing does, who extracted, made or copied which archive and when, chained so that a record changed or taken out shows, and sent to the Event Log, macOS’s unified log or journald too. What the organization fixes shows as locked in the app, and pkw follows it too.
packwing is free software under the GPL-3.0: the source is on GitHub, and you can build it, change it and share it.
Does packwing use all of my cores?
Yes. ZIP, 7z, .tar.gz, .tar.xz, .tar.zst, .tar.bz2 and .tar.lz4 are compressed on every core at once, and so is one large file in a ZIP archive. What is written in pieces (by packwing, xz -T, pzstd, pbzip2 or 7-Zip) is read on every core, as is any bzip2 file and a macOS package; ZIP and RAR archives' files and 7z's solid blocks are extracted several at once, and a tar archive's files are written while it is read. A .tar.zst of 256 MiB or more is made in frames that every core opens at once, and a .tar.xz or 7z archive in smaller blocks when you ask. The archive is the same, byte for byte, however many cores made it. The threads take no more than 70% of the memory free, and leave at least 2 GB of it to everything else, and Settings › General, or pkw --threads N, sets how many.
What does "opens archives safely" mean?
Nothing is written outside the folder you extract to, or through a link in the archive. An archive bomb stops at a size limit. A file that is already there is never written over unless you say so. A file opened from an archive opens as a copy in a temporary folder, after asking, and a program always asks first. On Windows and macOS, what came from the Internet keeps its mark when extracted, so the system still warns before running it.
Which formats does it open and write?
It opens ZIP (split archives too), RAR 1.4 to 7 (volumes too), 7z, tar, cpio, ISO 9660 and UDF disc images, Debian and RPM packages, snaps, AppImages and macOS packages, inside gzip, zstd, xz, bzip2 and other layers, and .age files. It writes ZIP, 7z, .tar.gz, .tar.xz, .tar.zst, .tar.bz2, .tar.lz4 and .age, with AES-256 on ZIP and 7z, and parts as 7-Zip cuts them, and adds, deletes and renames inside ZIP and 7z archives.
Can I make backups with it?
Yes. When you ask, a tar archive keeps each file's owner and group and its extended attributes (Linux's ACLs among them), and holds a file with several names once. Extracting gives them back when Settings › Extracting, or pkw extract --same-owner --xattrs, says so; only an administrator gives files to other users. An archive to share leaves them out, so it does not name its users. pkw create --mtime, or SOURCE_DATE_EPOCH, gives the same files the same archive.
Can I use it without the window?
Yes. pkw is packwing for the terminal, a server over SSH or a script: it lists, extracts, tests, makes, changes and converts archives, signs and verifies files, makes and checks checksums, and copies to and from your storages, with JSON output and exit codes that say what went wrong.
Where are my passwords kept?
An archive’s password is kept in memory while you use it, and forgotten ten minutes after its last use; it is never written down. The secrets of your storages (S3, WebDAV, SFTP) are kept in the system’s keychain.
Can my organization set it up?
Yes. Group Policy on Windows, a configuration profile on macOS, or a file in /etc on Linux can keep the Internet mark, require encryption, set which kinds of passwords are allowed and how long they have to be, and keep an audit log of what packwing does, on the computer and in the system’s own log. The settings they fix show as locked.
How do I install it, and how does it update?
Download it for your system above: a .dmg for macOS, an installer for Windows (for everyone, or for you alone), a .deb or an .rpm for Linux, or pkw, the command line, alone. Once a day packwing looks for a newer version, in a list it believes only when its signatures verify, and a badge says so; nothing is downloaded or installed until you ask. The .dmg app and the Windows installer update themselves when you say so; for a .deb or an .rpm, the app shows the commands; pkw alone does not update itself. The Windows installer is not signed yet, so SmartScreen asks you to allow it the first time.
Is there a mobile app?
Coming soon, for iOS and Android, to open the archives you are sent.
Download
Get packwing 0.2.0
Free and open source, for macOS, Windows and Linux; iOS and Android are coming soon. It tells you when a new version is out, and installs it when you say so. Only need the command line? pkw comes alone too.