github fcorbelli/zpaqfranz 61.6
Windows executables and source code

latest releases: 64.4, 64.3, 64.2...
7 months ago

Fixed a refactoring bug (reverse hex)

Release Notes

There are many new features in this build, so particular attention should be paid to the possibility of new bugs being introduced.

Main Change

The primary change is the overhaul of the interface with CURL and the management of SFTP commands, which now (mostly) support the -ssd switch for parallel operations.

Translation

The main challenge in comparing a local backup with a remote one is the difficulty of remotely recalculating the hashes of archives (support for this will be added in the future), especially given the large size of backups (hundreds of files, hundreds of gigabytes).
zpaqfranz supports the QUICK hasher, which, for files larger than 64KB, calculates the XXHASH64 hash of the first 16KB, the last 16KB, and 16KB from the middle of the file.
The purpose is to reduce the risk of data alignment issues, such as those caused by failed rsync --append operations.

While this is not a perfect test, nor cryptographically secure, it is fast.
In just a couple of minutes, it can reliably check hundreds of gigabytes, which would be impossible with traditional methods.

As mentioned, in the future, I plan to implement support for a "hardcore" comparison using MD5 on systems that support it, for example, for weekly verifications.

By using multiple concurrent SFTP threads (which has high latency), systems with magnetic disks can also be checked quickly.
Naturally, the number of threads should not be excessive (a limit of 99 has been set).
Generally, the number of CPU cores is sufficient (typically 4 to 16).
You can adjust this using the -tX option, where X is the number of threads you want.
During multiple uploads, information for each thread is displayed in a somewhat rough manner (for now), tested only on Windows.
There are no specific checks for console size or similar, so you'll have to make do.
In the future, I plan to make the graphical aspects more robust.
In summary, the 1on1 SFTP command with the -ssd switch is a groundbreaking innovation (provided I can get it to work well!) for those managing very large backups.
Of course, if your archive is only a few gigabytes, this issue is less relevant.

Supported commands for sftp

  • upload: Uploads a single file to SFTP.
  • verify: Quickly compares a local file to a remote file.
  • quick: Retrieves the QUICK hash of a remote file.
  • ls: Lists the contents of a remote folder.
  • delete: Deletes a remote file.
  • size: Retrieves the size of a remote file.
  • rsync: Performs an rsync-like operation to sync local files to a remote folder (-ssd supported).
    • -force: Prevents appending.
  • 1on1: Quickly compares local files to a remote folder (-ssd supported).

New Switches

  • -appendoutput: Appends data to the -out file instead of recreating it each time.
  • -writeonconsole: Writes output to stderr, allowing data to be displayed on the console even when redirected.
  • -last: Operates on the last file in a selection, typically used for the last part of a multipart archive.
  • -home: Now works with the l (list) command, showing the sizes of virtual folders inside an archive at one level deep.

Other Additions

  • Introduced work devart for highly visible on-screen text.
  • In the utf command, the -fix255 switch checks the maximum length of specified file names with maxsize.
  • New drive command on Windows: Displays the list of connected physical disks with their respective numbers.
  • The -all switch (with -image) on Windows operates on an entire disk image, similar to dd, rather than a single partition.
  • New commands: work datebig and work datetimebig.

Additional Features

It is now possible to extract only the files added in a specific version, marked with a textual comment, using the following example format:

c:\zpaqfranz\zpaqfranz x z:\2.zpaq -to z:\wherever -comment "something" -range

Miscellaneous Changes

  • Improved OpenBSD support.
  • On Windows, decodewinerror is no longer hardcoded (now respects the local language).
  • Fixed the test command to address occasional false positives.
  • Improved alignment of help text lines.
  • Removed comments from the CURL library and unused defines.

Additional Notes

Starting from version 61.5, I have made the compilers I use available on the GitHub repository for the Windows components of zpaqfranz. This enables bit-for-bit recompilation of the main version (zpaqfranz.exe, the 64-bit version). For other versions or older ones, manual compilation is required. If needed, please ask for assistance

  • Reduced the size of the source code.

Download zpaqfranz

Don't miss a new zpaqfranz release

NewReleases is sending notifications on new releases.