Why use Tarsnap?
Consider a typical backup scenario:
- Alice begins a backup, which takes a complete snapshot of her files.
- Tarsnap automatically finds the unique data within her files.
- Alice pays less than $5/month.
- Alice's data is secure.
Latest Tarsnap release
Tarsnap 1.0.41 (March 21, 2025)
Changes in this version compared to 1.0.40:
-
tarsnap
now has mitigations to defend against information leakage via chunking: Chunks are padded using the PADME scheme, and small-alphabet cycles are prohibited in chunking to block a chosen-plaintext attack. For more details on the attack, see the author's blog post and the paper "Chunking Attacks on File Backup Services using Content-Deļ¬ned Chunking" which should be available on the Cryptology ePrint Archive shortly. -
tarsnap -c
now accepts--dry-run-metadata
, which simulates creating an archive without reading any file data. This is significantly faster than a regular--dry-run
, and is suitable for checking which filesystem entries will be archived (with-v
) or checking the total archive size (with--totals
or--progress-bytes
). -
tarsnap
now accepts--noatime
with-c
mode, which requests that the operating system does not update atime when reading files or directories. Not supported by all operating systems or filesystems. -
If the server-side state was modified and
tarsnap
exits with an error, it will now have an exit code of 2. -
tarsnap
will read a config file in$XDG_CONFIG_HOME/tarsnap/tarsnap.conf
; or~/.config/tarsnap/tarsnap.conf
if$XDG_CONFIG_HOME
is not set. The previous config file~/.tarsnaprc
is still supported, and will not be deprecated. -
tarsnap
now accepts--null-input
as a synonym for--null
. For compatibility reasons,--null
is still supported, and will not be deprecated. -
tarsnap
now accepts--null-output
, which causes--list-archives
to separate each archive name with a null character (like`find -print0`
). If one or more-v
arguments are specified, multiple null characters are used to separate fields; see the man page for details. -
tarsnap
now accepts--null-output
with-x
and-t
, which causes them to separate each filename with a null character. If there are multiple fields on a line, null characters are used instead of spaces; see the man page for details. -
tarsnap
now accepts--null-output
with--print-stats
, which causes it to separate fields and lines with null character(s); see the man page for details. -
tarsnap
now accepts--hashes
, which causes--list-archives
to print hashes of archive names. If one or more-v
arguments are specified, it will print other metadata (as per--list-archives
). This option is intended for the GUI and is not needed for command-line usage. -
tarsnap
now accepts-f TAPEHASH
with--list-archives --hashes
, which prints metadata about the specified archive(s). Multiple-f
options may be specified. This option is intended for the GUI and is not needed for command-line usage. -
Fixed a problem with strict aliasing if somebody compiled with gcc11
or higher using
-O3
, does not have SSE2, and is using a passphrase-protected keyfile.
As usual, there are also lots of minor build fixes, harmless bug fixes, and code cleanups.
You can see all of the changes between 1.0.40 and this version in our tarsnap git repository.