Sharing archives
The people you send files to do not need to install SQZ. Send a standard ZIP made from your archive, or send the archive together with sqz-extract, a small program that can only open archives.
Export to ZIP#
sqz zip [-s N] [--file PATH]... <archive.sqz> <out.zip>
sqz zip photos.sqz photos.zip
sqz zip -s 2 photos.sqz photos-v2.zip
sqz zip --file 2026/beach.jpg photos.sqz beach.zip
sqz zip writes one snapshot (the latest, or -s N) as an ordinary ZIP that Windows, macOS and every unzip tool can open. --file narrows it to chosen paths.
- Entries are DEFLATE-compressed, with UTF-8 names, and ZIP64 when files or the archive are large.
- Unix permissions and symlinks are recorded the way Info-ZIP does, and exact UTC times go in the extended-timestamp and NTFS fields.
- Before the ZIP is kept, SQZ reads it back and checks every entry against the archive's BLAKE3 digests. An existing file is never overwritten.
The output is checked in SQZ's test suite with Python's zipfile, Info-ZIP unzip, bsdtar and Windows' Expand-Archive.
What a ZIP cannot keep#
After exporting, SQZ lists what the ZIP lost for that snapshot:
- other snapshots (a ZIP holds one);
- hard links, which become separate copies;
- symlinks that point outside the folder, which are left out;
- time digits below 100 nanoseconds;
- deduplication and SQZ's stronger compression, so the ZIP is usually much larger than the archive.
The standalone extractor#
sqz-extract is a separate program for people who receive an archive. It reads every archive format SQZ has written (v1 to v7) and cannot create or change archives. There are builds for Windows, Linux and macOS on the download list, and the Windows package includes sqz-extract.exe.
sqz-extract data.sqz # into a new folder "data" next to it
sqz-extract data.sqz C:\restore # or into a folder you name
sqz-extract -t data.sqz # verify only
sqz-extract -l data.sqz # list files and snapshots
sqz-extract --info data.sqz # format version and contents in brief
sqz-extract --version # format versions and features it reads
Without an output folder, it extracts into a new folder named after the archive, next to it: data, or data (2) if that is taken, and so on. It also takes -s N for a snapshot, --file PATH (repeatable) and -j N.
Like sqz, it checks every file against its BLAKE3 digest and never overwrites anything.
On Windows: drag and drop#
Drop a .sqz file onto sqz-extract.exe. It extracts into a new folder next to the archive and keeps its window open until you press Enter, so the recipient can read the result.
Exit codes#
| Code | Meaning |
|---|---|
0 | Everything verified. |
1 | Damage or another error. |
2 | The command line was not understood. |
3 | The archive was made by a newer SQZ: it needs a newer format version or a format feature this build does not know. The message gives the numbers. |
Which to send#
- A ZIP when the recipient should not have to run anything new, or will open it on a phone.
- The archive and
sqz-extractwhen size matters: the archive is usually much smaller, and every file is verified on arrival.
Anyone who has a .sqz file can read it. To protect contents, encrypt the file with a tool made for that before sending it, or use SQZ Backup, which encrypts everything.