rustic - fast, encrypted, and deduplicated backups powered by Rust
Go to file
rustic-release-plz[bot] f565eea1f6
chore: release v0.9.5 (#1341)
## 🤖 New release
* `rustic-rs`: 0.9.4 -> 0.9.5 (✓ API compatible changes)

<details><summary><i><b>Changelog</b></i></summary><p>

<blockquote>

## [0.9.5](https://github.com/rustic-rs/rustic/compare/v0.9.4...v0.9.5)
- 2024-12-02

### Added

- *(commands)* More dump options
([#1339](https://github.com/rustic-rs/rustic/pull/1339))
- shut down gracefully with ctrl+c
([#1364](https://github.com/rustic-rs/rustic/pull/1364))
- Add --filter-jq option
([#1372](https://github.com/rustic-rs/rustic/pull/1372))
- *(async)* use `is_async_compatible()` to determine backend
incompatibility and error out
([#1355](https://github.com/rustic-rs/rustic/pull/1355))
- *(commands)* Add `mount` command
([#973](https://github.com/rustic-rs/rustic/pull/973))

### Fixed

- *(commands)* run backup hooks before checking source dir
([#1374](https://github.com/rustic-rs/rustic/pull/1374))
- *(commands)* Use spawn_blocking in webdav when calling rustic_core
([#1365](https://github.com/rustic-rs/rustic/pull/1365))
- *(filesystem)* Use channels to communicate within webdav filesystem
([#1361](https://github.com/rustic-rs/rustic/pull/1361))

### Other

- Add documentation for `minutely` keep option
([#1371](https://github.com/rustic-rs/rustic/pull/1371))
- update snapshots to include minutely configuration options
- *(deps)* update rustic_core, bytes, and libc dependencies to latest
versions
- simplify lifetime annotations in OpenFileReader and TreeIterItem
implementations
- clean up whitespace and update clippy linting allowances
- *(deps)* update dependencies to latest versions
- *(deps)* update lockfile to get rid of vulnerable `url` version
- *(mount)* rename fields for clarity, add user options for mount
([#1353](https://github.com/rustic-rs/rustic/pull/1353))
- *(deps)* update dependencies
- *(deps)* don't use rustic_core webdav feature
([#1367](https://github.com/rustic-rs/rustic/pull/1367))
- Revert "fix(filesystem): Use channels to communicate within webdav
filesystem ([#1361](https://github.com/rustic-rs/rustic/pull/1361))"
- Revert "feat(async): use `is_async_compatible()` to determine backend
incompatibility and error out
([#1355](https://github.com/rustic-rs/rustic/pull/1355))"
- move `webdavfs` from `rustic_core` to `rustic-rs`
([#1363](https://github.com/rustic-rs/rustic/pull/1363))
- *(clippy)* comment out unused lints in lib.rs
- *(clippy)* apply fixes automatically
- use BTreeMap for env in global options
([#1360](https://github.com/rustic-rs/rustic/pull/1360))
- add tiny framework for testing rustic's compat with latest restic
([#1303](https://github.com/rustic-rs/rustic/pull/1303))
- use snapshot tests for default config, show-config and completions
([#1359](https://github.com/rustic-rs/rustic/pull/1359))
- *(deps)* update dependencies rustic_core, rustic_backend,
rustic_testing, and migrate to conflate 0.3
([#1357](https://github.com/rustic-rs/rustic/pull/1357))
- fix typos
- *(build)* add platform-dependent settings and remove ci flag for extra
features
- clarify `--use-profile` command in config by using long form
([#1344](https://github.com/rustic-rs/rustic/pull/1344))
- *(deps)* update core and testing crates
([#1340](https://github.com/rustic-rs/rustic/pull/1340))
</blockquote>


</p></details>

---
This PR was generated with
[release-plz](https://github.com/MarcoIeni/release-plz/).

---------

Co-authored-by: rustic-release-plz[bot] <182542030+rustic-release-plz[bot]@users.noreply.github.com>
Co-authored-by: Alexander Weiss <alex@weissfam.de>
2024-12-03 00:32:00 +01:00
.cargo chore(deps): update dependencies rustic_core, rustic_backend, rustic_testing, and migrate to conflate 0.3 (#1357) 2024-11-19 00:49:00 +01:00
.github ci: comment out release ci workflow for further review 2024-11-30 11:06:38 +01:00
config feat: Add --filter-jq option (#1372) 2024-11-30 22:06:19 +01:00
coverage Refactor to library and cli application part 2023-06-06 08:51:43 +02:00
docs chore: remove docs/screenshots directory as that has been moved to the assets repository 2023-09-12 02:20:22 +02:00
scripts Refactor to library and cli application part 2023-06-06 08:51:43 +02:00
src feat(commands): More dump options (#1339) 2024-12-02 23:58:43 +01:00
tests feat(commands): More dump options (#1339) 2024-12-02 23:58:43 +01:00
util/systemd Systemd timers for backup and forget 2023-07-08 09:05:45 +02:00
.gitignore feat(config): Add hooks (#1218) 2024-10-05 01:58:55 +00:00
build-dependencies.just fix: use fuse2 build dependencies (#1368) 2024-11-26 12:18:46 +00:00
build.sh build.sh: Add optional parameters 2022-11-30 13:31:34 +01:00
Cargo.lock chore: release v0.9.5 (#1341) 2024-12-03 00:32:00 +01:00
Cargo.toml chore: release v0.9.5 (#1341) 2024-12-03 00:32:00 +01:00
CHANGELOG.md chore: release v0.9.5 (#1341) 2024-12-03 00:32:00 +01:00
cliff.toml release: rustic-rs v0.6.0 (#896) 2023-10-23 13:00:56 +00:00
CONTRIBUTING.md docs: Update Readme layout, move docs to separate repository, add rustic_core Readme.md (#820) 2023-09-11 05:13:18 +02:00
deny.toml feat(commands): More dump options (#1339) 2024-12-02 23:58:43 +01:00
Dockerfile build(docker): support arm64 docker image (#1351) 2024-11-11 18:44:35 +00:00
dprint.json chore: update dprint config (#1306) 2024-10-08 16:16:24 +02:00
ECOSYSTEM.md chore: move rustic_testing into rustic_core 2024-02-04 23:00:11 +01:00
LICENSE-APACHE Refactor to library and cli application part 2023-06-06 08:51:43 +02:00
LICENSE-MIT Refactor to library and cli application part 2023-06-06 08:51:43 +02:00
maskfile.md fix: maskfile 2023-09-14 01:47:17 +02:00
platform-settings.toml ci(build): add platform-dependent settings and remove ci flag for extra features 2024-11-10 23:09:24 +01:00
README.md chore(deps): remove once_cell and replace with std::sync::LazyLock, increase MSRV to 1.80.0 (#1337) 2024-10-24 19:29:49 +02:00
release-plz.toml chore(release): Disable automatic dependency updates (#1325) 2024-10-16 15:29:19 +02:00

fast, encrypted, and deduplicated backups

About

rustic is a backup tool that provides fast, encrypted, deduplicated backups.

It reads and writes the restic repo format described in the design document and can be used as a restic replacement in most cases.

It is implemented in Rust, a performant, memory-efficient, and reliable cross-platform systems programming language.

Hence rustic supports all major operating systems (Linux, MacOs, *BSD), with Windows support still being experimental.

Stability

rustic currently is in beta state and misses regression tests. It is not recommended to use it for production backups, yet.

rustic Libraries

The rustic project is split into multiple crates:

Features

  • Backup data is deduplicated and encrypted.
  • Backup storage can be local or cloud storages, including cold storages.
  • Allows multiple clients to concurrently access a backup repository using lock-free operations.
  • Backups by default are append-only on the repository.
  • The operations are robustly designed and can be safely aborted and efficiently resumed.
  • Snapshot organization is possible by hostname, backup paths, label and tags. Also a rich set of metadata is saved with each snapshot.
  • Retention policies and cleaning of old backups can be highly customized.
  • Follow-up backups only process changed files, but still create a complete backup snapshot.
  • In-place restore only modifies files which are changed.
  • Uses config files for easy configuration of all every-day commands, see example config files.

Contact

You can ask questions in the Discussions or have a look at the FAQ.

Contact Where?
Issue Tracker GitHub Issues
Discord Discord
Discussions GitHub Discussions

Getting started

Please check our documentation for more information on how to get started.

Installation

From binaries

cargo-binstall

cargo binstall rustic-rs

Windows

Scoop
scoop install rustic

Or you can check out the releases.

Nightly binaries are available here.

Docker

docker pull ghcr.io/rustic-rs/rustic

From source

Beware: This installs the latest development version, which might be unstable.

cargo install --git https://github.com/rustic-rs/rustic.git rustic-rs

crates.io

cargo install --locked rustic-rs

Differences to restic?

We have collected some improvements of rustic over restic here.

Contributing

Tried rustic and not satisfied? Don't just walk away! You can help:

Do you know how to code or got an idea for an improvement? Don't keep it to yourself!

Please make sure, that you read the contribution guide.

Minimum Rust version policy

This crate's minimum supported rustc version is 1.80.0.

The current policy is that the minimum Rust version required to use this crate can be increased in minor version updates. For example, if crate 1.0 requires Rust 1.20.0, then crate 1.0.z for all values of z will also require Rust 1.20.0 or newer. However, crate 1.y for y > 0 may require a newer minimum version of Rust.

In general, this crate will be conservative with respect to the minimum supported version of Rust.

License

Licensed under either of:

at your option.