[package]
edition = "2024"
rust-version = "1.88.0"
name = "rustic-rs"
version = "0.11.0"
authors = ["the rustic-rs team"]
build = false
include = [
"src/**/*",
"LICENSE-*",
"README.md",
"config/**/*",
]
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = """
rustic - fast, encrypted, deduplicated backups powered by Rust
"""
homepage = "https://rustic.cli.rs/"
documentation = "https://docs.rs/rustic-rs"
readme = "README.md"
keywords = [
"backup",
"restic",
"deduplication",
"encryption",
"cli",
]
categories = ["command-line-utilities"]
license = "Apache-2.0 OR MIT"
repository = "https://github.com/rustic-rs/rustic"
resolver = "3"
[package.metadata.docs.rs]
all-features = true
rustdoc-args = [
"--document-private-items",
"--generate-link-to-definition",
]
[package.metadata.binstall]
pkg-url = "{ repo }/releases/download/v{ version }/{ bin }-v{ version }-{ target }{ archive-suffix }"
bin-dir = "{ bin }{ binary-ext }"
pkg-fmt = "tgz"
[package.metadata.binstall.signing]
algorithm = "minisign"
pubkey = "RWSWSCEJEEacVeCy0va71hlrVtiW8YzMzOyJeso0Bfy/ZXq5OryWi/8T"
[[package.metadata.generate-rpm.assets]]
source = "target/release/rustic"
dest = "/usr/bin/rustic"
mode = "0755"
config = false
doc = false
user = "root"
group = "root"
[features]
default = [
"jq",
"prometheus",
"opentelemetry",
"tui",
"webdav",
]
jemallocator = ["dep:jemallocator-global"]
jq = [
"dep:jaq-core",
"dep:jaq-std",
"dep:jaq-json",
]
mimalloc = ["dep:mimalloc"]
mount = ["dep:fuse_mt"]
opentelemetry = [
"dep:opentelemetry",
"dep:opentelemetry-otlp",
"dep:opentelemetry_sdk",
]
prometheus = [
"dep:prometheus",
"dep:base64",
]
release = [
"default",
"self-update",
]
rhai = ["dep:rhai"]
self-update = [
"dep:self_update",
"dep:semver",
]
tui = [
"dep:ratatui",
"dep:crossterm",
"dep:tui-textarea",
]
webdav = [
"dep:dav-server",
"dep:warp",
"dep:tokio",
"dep:bytes",
"dep:futures",
]
[lib]
name = "rustic_rs"
path = "src/lib.rs"
[[bin]]
name = "rustic"
path = "src/bin/rustic.rs"
test = true
bench = true
doc = true
harness = true
[dependencies.abscissa_core]
version = "0.9.0"
features = ["application"]
default-features = false
[dependencies.aho-corasick]
version = "1"
[dependencies.anyhow]
version = "1"
[dependencies.base64]
version = "0.22.1"
optional = true
[dependencies.bytes]
version = "1.11.1"
optional = true
[dependencies.bytesize]
version = "2"
[dependencies.cached]
version = "0.56.0"
[dependencies.clap]
version = "4"
features = [
"derive",
"env",
"wrap_help",
]
[dependencies.clap_complete]
version = "4"
[dependencies.comfy-table]
version = "7"
[dependencies.conflate]
version = "0.3.3"
[dependencies.convert_case]
version = "0.10.0"
[dependencies.crossterm]
version = "0.28"
optional = true
[dependencies.ctrlc]
version = "3.5.1"
features = ["termination"]
[dependencies.dateparser]
version = "0.2.1"
[dependencies.dav-server]
version = "0.10.0"
features = ["warp-compat"]
optional = true
default-features = false
[dependencies.derive_more]
version = "2"
features = [
"debug",
"display",
"from_str",
]
[dependencies.dialoguer]
version = "0.12.0"
[dependencies.directories]
version = "6"
[dependencies.displaydoc]
version = "0.2.5"
[dependencies.flate2]
version = "1.1.9"
[dependencies.fuse_mt]
version = "0.6"
optional = true
[dependencies.futures]
version = "0.3.31"
optional = true
[dependencies.gethostname]
version = "1.1"
[dependencies.globset]
version = "0.4.18"
[dependencies.human-panic]
version = "2"
[dependencies.indicatif]
version = "0.18"
[dependencies.itertools]
version = "0.14"
[dependencies.jaq-core]
version = "2"
optional = true
[dependencies.jaq-json]
version = "1"
features = ["serde_json"]
optional = true
[dependencies.jaq-std]
version = "2"
optional = true
[dependencies.jemallocator-global]
version = "0.3.2"
optional = true
[dependencies.jiff]
version = "0.2.19"
[dependencies.log]
version = "0.4"
[dependencies.log4rs]
version = "1.4.0"
features = [
"console_appender",
"file_appender",
"threshold_filter",
]
default-features = false
[dependencies.mimalloc]
version = "0.1.48"
optional = true
default-features = false
[dependencies.open]
version = "5.3.3"
[dependencies.opentelemetry]
version = "0.31.0"
features = ["metrics"]
optional = true
default-features = false
[dependencies.opentelemetry-otlp]
version = "0.31.0"
features = ["metrics"]
optional = true
[dependencies.opentelemetry_sdk]
version = "0.31.0"
features = ["metrics"]
optional = true
default-features = false
[dependencies.prometheus]
version = "0.14.0"
optional = true
[dependencies.qrcode]
version = "0.14.1"
features = ["svg"]
default-features = false
[dependencies.ratatui]
version = "0.29.0"
optional = true
[dependencies.reqwest]
version = "0.12.28"
features = [
"rustls-tls-native-roots",
"blocking",
]
default-features = false
[dependencies.rhai]
version = "1"
features = [
"sync",
"serde",
"no_optimize",
"no_module",
"no_custom_syntax",
"only_i64",
]
optional = true
[dependencies.rustic_backend]
version = "0.6.0"
features = ["cli"]
[dependencies.rustic_core]
version = "0.10.0"
features = ["cli"]
[dependencies.scopeguard]
version = "1"
[dependencies.self_update]
version = "=0.39.0"
features = [
"rustls",
"archive-tar",
"compression-flate2",
]
optional = true
default-features = false
[dependencies.semver]
version = "1"
optional = true
[dependencies.serde]
version = "1"
features = ["serde_derive"]
[dependencies.serde_json]
version = "1"
[dependencies.serde_with]
version = "3"
features = ["base64"]
[dependencies.subst]
version = "0.3.8"
[dependencies.tar]
version = "0.4.44"
[dependencies.thiserror]
version = "2"
[dependencies.tokio]
version = "1"
optional = true
[dependencies.toml]
version = "0.9"
[dependencies.tui-textarea]
version = "0.7.0"
optional = true
[dependencies.warp]
version = "0.3.7"
optional = true
[dependencies.zip]
version = "7.4.0"
features = [
"deflate",
"jiff-02",
]
default-features = false
[dev-dependencies.abscissa_core]
version = "0.9.0"
features = ["testing"]
default-features = false
[dev-dependencies.assert_cmd]
version = "2.1.2"
[dev-dependencies.cfg-if]
version = "1.0.4"
[dev-dependencies.dircmp]
version = "0.2"
[dev-dependencies.flate2]
version = "1.1.9"
[dev-dependencies.insta]
version = "1.46.3"
features = ["ron"]
[dev-dependencies.predicates]
version = "3.1.3"
[dev-dependencies.pretty_assertions]
version = "1.4"
[dev-dependencies.quickcheck]
version = "1"
[dev-dependencies.quickcheck_macros]
version = "1"
[dev-dependencies.rstest]
version = "0.26"
[dev-dependencies.rustic_testing]
version = "0.4.0"
[dev-dependencies.tar]
version = "0.4.44"
[dev-dependencies.tempfile]
version = "3.25"
[dev-dependencies.toml]
version = "0.9"
[target."cfg(not(windows))".dependencies.libc]
version = "0.2.180"
[profile.bench]
opt-level = 3
lto = true
codegen-units = 1
debug = 2
debug-assertions = false
rpath = false
[profile.dev]
opt-level = 0
lto = false
codegen-units = 4
debug = 2
debug-assertions = true
rpath = false
[profile.dev.package."*"]
opt-level = 3
debug = 2
[profile.release]
opt-level = 3
lto = "fat"
codegen-units = 1
debug = 0
debug-assertions = false
rpath = false
panic = "abort"
strip = true
[profile.test]
opt-level = 1
lto = false
codegen-units = 4
debug = 2
debug-assertions = true
rpath = false