Skip to content

Releases: rustic-rs/rustic

rustic 0.4.3

17 Jan 21:33

Choose a tag to compare

rustic 0.4.3 has been released!

This release is a maintenance release that fixes a couple of bugs including a severe bug in prune which could cause data loss in special situations. Please update to 0.4.3 if you are running prune, especially if you run prune --instant-delete!

Changes in version 0.4.3:

Bugs fixed:

  • A bug in prune could lead to removal of needed data in the case of duplicate blobs within one pack. This is fixed.
  • An inaccuracy in the packer could lead to identical blobs saved within the same pack. This is fixed.
  • check: Reported errors when the cache contained more pack files than the repository. This is fixed.
  • password-command didn't work correctly when calling a shell with an argument. This is fixed.

New features:

  • warm-up options can now be configured in the config file.
  • repair index: Added better debug output and error handling.
  • Added better error handling when opening a repository.
  • Improved allocations when parsing/printing ids.

rustic 0.4.2

05 Jan 12:13

Choose a tag to compare

rustic 0.4.2 has been released!

Changes in version 0.4.2:

Bugs fixed:

  • rclone backend did not work with unexpected version output. This is now fixed, also support for rclone > 1.61 is added.
  • restore: restore with existing files/dirs but wrong type did not succeed. This is fixed now.
  • All command except backup and prune did not compress snapshot and index files, even for v2 repos. This is now fixed.

New features:

  • Added the copy command: Many targets are supported and a nice output table shows which snapshots are to be copied. See also #358.
  • The syntax <SNAPSHOT>:<PATH> now also works if is a file, e.g. in the restore command.
  • restore: Existing files with correct size and mtime are not read by default; new option --verify-existing.
  • restore: Improved output of what restore is about to do (also in --dry-run mode).
  • diff: Make output more similar to restic diff; added option --metadata.
  • diff: When diffing with a local dir, local files are now read and the content is compared; new option --no-content.
  • backup: Improved parallelization.
  • Updated to Rust 1.66 and many updates of dependent crate versions.
  • Some minor code and performance improvements.

rustic 0.4.1

03 Dec 22:14

Choose a tag to compare

rustic 0.4.1 is out!

This release is merely a maintenance release and fixes a severe bug which could cause rustic backup to hang.
Besides this some minor bugs are fixed and error handling is improved.

Changes in version 0.4.1:

Bugs fixed:

  • Fixed a possible deadlock in the archiver which could cause rustic backup to hang.
  • Piping output no longer panics (this allows e.g. to pipe into head).
  • Fixed progress bar showing 0B/s instead of real rate.

New features:

  • backup: Errors reading the parent now print a warning instead of being silently ignored.
  • forget: Allow to keep quarter- and half-yearly.
  • Improved the error handling for some situations.

rustic 0.4.0

23 Nov 14:03

Choose a tag to compare

rustic 0.4.0 is released!

The biggest change in this release is the change from async Rust back to sync Rust. This allowed some code simplifications and will allow easier implementation of some future features.
Also, efficient parallelization can be more easily done using threads and the well-known parallelization crates.

Changes in version 0.4.0:

Bugs fixed:

  • Fixed a bug in the CI which sometimes made building beta executables fail.

New features:

  • Snapshots now allow to use a label, to add a description and save the program version used.
  • diff: diff can now compare snapshots with local dirs.
  • backup: Added option --as-path.
  • backup: Allow to use and save relative paths.
  • backup: Added option --ignore-devid.
  • backup: Now uses more parallelization.
  • prune: Repacking is now parallel.
  • New commands repair index/snapshots.
  • Better support for using latest as snapshot.
  • UI/progress bars: Added support for env variable RUSTIC_PROGRESS_INTERVALL.
  • Simplified the code in some places.

Changes under the hood:

  • rustic no longer uses async Rust.
  • Replaced prettytables by comfytable. (Thanks @JMarkin)

rustic 0.3.2

07 Oct 12:39
f550e09

Choose a tag to compare

rustic 0.3.2 is released!

Special thanks go to @istudyatuni for adding the completions feature and @thht for testing!

Changes in version 0.3.2:

Breaking changes:

  • Logging is completely reworked. New option --log-level replaces --verbose and --quiet

Bugs fixed:

  • Fixed broken error handling in REST/rclone backend some error kinds.
  • Don't prompt for password in init command if it is given.

New features:

  • New option --log-file allows logging to a file
  • New command completions to generate shell completions
  • check: Added --read-data option
  • check: Improved error handling and error messages
  • rest/rclone backend: Abort immediately at permanent errors.
  • restore: better debug output to see what restore exactly will do
  • rclone backend no longer needs a temp dir. This meas rustic now doesn't need a temp dir at all.
  • Nicer display of snapshot groups
  • Added blackbox test using bats

rustic 0.3.1

15 Sep 12:07
403b36e

Choose a tag to compare

rustic 0.3.1 is ready!

Note: Changing the binary name to rustic is a breaking change with respect to the self-update command.
This means rustic 0.3.0 can NOT be updated using self-update. Please download the binaries manually instead.

Changes in version 0.3.1:

Bugs fixed:

  • change escaping of filename to get identical result as restic
  • fix performance regression because of filename escaping
  • chunker: Fixed chunker such that chunks of MINSIZE are possible.
  • prune: Fix option --max-repack; now also works when resizing packs.

New features:

  • Changed name of binary from rustic-rs to rustic
  • Added config file support (see examples in examples/ dir)
  • Added options --password and --password-command (and equivalents as env variables and config file options)
  • snapshots: Summarize fully identical snapshots in snapshots command; added option --all.
  • snapshots: Grouping by hosts and paths is now the default.
  • snapshots: Added --json option
  • backup: Allow backing up multiple source paths
  • backup: Allow backup from stdin
  • backup/parent detection now uses ctime and mtime; new options --ignore-mtime and --ignore-inode
  • backup: Added option --exclude-larger-than
  • forget: Always remove snapshots when ID is given
  • prune: Only resize small packs when target packsize will be reached.
  • prune: Added option --no-resize
  • chunker: Increase buffer size to speed up chunking
  • Added aarch64-apple-darwin as supported platform
  • CI: Added rust audit

rustic 0.3.0

18 Aug 20:51
8ab7d40

Choose a tag to compare

rustic 0.3.0 has landed!

This release introduces a change in the tree format which may interpret filenames of snapshots generated by pre-0.3.0 versions differently in edge-cases and thus changes the snapshots.
This change was needed to support restics tree format as well as create tree which are compatible with restic.
For more details, see #34 and #116 .

Changes is 0.3.0:

Bugs fixed:

  • config command could invalidate config file on local backend, see #112 and #115

New features:

  • backup: Added escaping of filenames to be compatible with restic
  • backup: Don't use temporary files, but save incomplete pack files in-memory
  • Allow to limit pack sizes
  • rest/rclone backend: Retry operations if they failing
  • restore: Use existing files to speed up restore (also makes restore resumable)
  • restore: Added --delete option to delete existing files not in snapshot
  • restore/prune: Added warm-up possibilites for hot/cold repo
  • prune: Remove unneeded packs from cache
  • prune: Added repacking of packs which are too small or too large
  • self-update: New command to update rustic
  • Added syntax SNAPSHOT[:PATH] for many command to access sub-trees within snapshots
  • Added support for environmental variables
  • Improved help texts
  • CI: Added beta builds
  • CI: Added dependabot to get automatic PRs for dependency updates

rustic 0.2.3

28 Jul 21:32

Choose a tag to compare

0.2.3 is a bug-fix release that fixes a severe bug in the prune command

Note: In 0.2.3, there is a bug in the config command which might invalidate your config file, see #112

Changes in version 0.2.3

  • prune: Fixed a critical bug which corrupted the repo when repacking compressed data
  • prune: Fixed --repack-cacheable-only when used with --repack-uncompressed
  • prune: Added progress bar for repacking
  • restore: Improved progress bar

rustic 0.2.2

26 Jul 03:48
f251079

Choose a tag to compare

Warning: This release contains a bug in prune which is able to corrupt a repository, see #88.
Use rustic 0.2.3 instead!

Changes in version 0.2.2

  • added possibility to specify a hot repo (added --repo-hot option)
  • added rclone backend and made reading/writing remote repos with higher latency working
  • new command config; added possibility to customize compression level
  • added possibility to customize pack sizes. Also changed the standard settings for pack size.
  • fixed errornous caching of data pack files
  • check: new option --trust-cache
  • improved speed of packer
  • prune: new options --instant-delete, --repack-uncompressed, --fast-repack
  • prune: option --repack-cacheable-only now expects true/false and default to true for hot/cold repos
  • snapshots: allow to specify "latest" which only displays the latest snapshot(s)
  • restore: fixed order of setting permission; improved error handling and debug output

rustic 0.2.1

08 Jul 11:24

Choose a tag to compare

Changes in version 0.2.1

  • add support for local cache (adds --no-cache and --cache-dir options)
  • added --prune option to forget
  • restore: display and ignore most errors during restore
  • restore: handle much more cases
  • fix chunker for empty files
  • REST backend: fix url path
  • Local backend: fix treatment of additional files
  • added fully support special files
  • Allow specifying global options with subommands