github fcorbelli/zpaqfranz 63.7
Windows executables and source code

latest release: 63.8
pre-release21 days ago

Introduced a New Data-Recovery Extraction Algorithm (-recover)

A new extraction mode has been added, enabled with -recover.
This mode inverts the standard zpaq behavior: normally, archives are read sequentially (byte after byte), while extracted files are written in a random-access pattern. This matters because random writes can heavily impact performance on high-latency devices (e.g., spinning HDDs).
Additionally, even a small single-byte corruption in the archive can (in standard mode) cause the loss of dozens or even hundreds of files.

With -recover, the archive is read in a (potentially) random-access pattern, while extracted files are written strictly sequentially, one byte after another.

In other words:

  • Standard mode: sequential input → random output
  • -recover mode: random input → sequential output

Technical details are complex, but the intended use case is simple:
archive on a low-latency device (e.g., NVMe), extraction target on a high-latency device (e.g., HDD).
In this scenario, performance gains can be significant.

Two additional notes:

  1. Improved resilience: often able to recover more files from damaged archives compared to standard extraction.
  2. Hash recomputation: for zpaqfranz archives, file hashes are recomputed during extraction, providing near-certain verification of correctness with no extra steps. This applies to cryptographic hashes as well (e.g., -sha256, -sha3, -blake3).

By default, extraction allocates all available free RAM to maximize performance.
To limit memory usage, use -ram X, where X is the RAM amount to dedicate (e.g., 1GB, 500MB).
Use caution on low-memory systems.

The pp Command

pp is the new multithreaded version of the paranoid file test (p).
It is significantly faster and obeys the same RAM-allocation logic (configurable via -ram).
Since it regenerates file hashes, it is optimized for zpaqfranz usage on modern machines with ample RAM and many CPU cores.

Note

This extraction algorithm is very new, so bugs may exist.
In general, if extraction completes successfully, the files should be correct.
Use this mode when needed—for example, when extracting very large files (e.g., VM disk images) to a magnetic HDD.

-ram alias of -ramsize

-ram and -ramsize are interchangeable for limiting memory usage under the new extraction system.

ishdd on Windows

zpaqfranz shows a warning when sequential-optimized features (-recover, pp) are used on non-SSD devices. It is only a warning.

compare -home

The c command has a -home option for comparing top-level directories.
Combined with options such as -ssd and fast hashes like -xxh3, it allows rapid comparison of directories on different devices.

Refactoring of Core Image-Area Backup Loop

The backup cycle has been refactored. While this may introduce side effects, it was necessary due to unmanageable complexity.

NTFS: Restore Backups to Disk

The NTFS command can now write images directly to partitions.
WARNING: the destination partition will be overwritten completely, potentially destroying data.
This is an intermediate step toward using zpaqfranz as a full backup system.
It behaves similarly to dd: it writes clusters across the entire surface, or only used data (with -ntfs).
This is an experimental and rapidly evolving area.

cc alias for backing up C:

A new alias cc is available for copying the C: drive (not a full backup). It clarifies what the tool is doing.

The drive Command Has Been Modified

The refactoring should not cause significant compatibility issues.

Extensive Refactoring of Large Code Areas

Large portions of the source code have been reworked to reduce stack usage and improve portability to non-PC platforms such as ESX, NAS Annapurna, Cortex-A57, and others.
This may introduce subtle bugs, which is why this build is marked experimental.

There are many internal changes, some only partially implemented.

Do not trust this release blindly.

If you encounter issues, please open a GitHub issue so they can be fixed.

Download zpaqfranz

Don't miss a new zpaqfranz release

NewReleases is sending notifications on new releases.