rustic/Cargo.toml

277 lines
6.3 KiB
TOML

[workspace.package]
version = "0.5.4-dev"
edition = "2021"
license = "Apache-2.0 OR MIT"
repository = "https://github.com/rustic-rs/rustic"
homepage = "https://rustic.cli.rs/"
keywords = ["backup", "restic", "deduplication", "encryption", "cli"]
categories = ["command-line-utilities"]
description = """
rustic - fast, encrypted, deduplicated backups powered by Rust
"""
[package]
name = "rustic-rs"
version = { workspace = true }
authors = ["Alexander Weiss"]
categories = { workspace = true }
documentation = "https://docs.rs/rustic-rs"
edition = { workspace = true }
homepage = { workspace = true }
include = ["src/**/*", "LICENSE-*", "README.md", "config/**/*"]
keywords = { workspace = true }
license = { workspace = true }
readme = "README.md"
repository = { workspace = true }
resolver = "2"
rust-version = "1.67.1"
description = { workspace = true }
[workspace]
members = ["crates/rustic_core", "crates/rustic_testing", "xtask"]
[[bin]]
name = "rustic"
path = "src/bin/rustic.rs"
test = true
bench = true
doc = true
harness = true
edition = "2021"
# required-features = []
[dependencies]
abscissa_core = { workspace = true }
rustic_core = { workspace = true }
# errors
anyhow = { workspace = true }
thiserror = { workspace = true }
# macros
derivative = { workspace = true }
derive_more = { workspace = true }
derive_setters = { workspace = true }
# logging
log = { workspace = true }
tracing-appender = { workspace = true }
tracing-error = { workspace = true }
tracing-subscriber = { workspace = true }
# rclone backend
semver = { workspace = true }
# parallelize
crossbeam-channel = { workspace = true }
pariter = { workspace = true }
rayon = { workspace = true }
# crypto
aes256ctr_poly1305aes = { workspace = true }
rand = { workspace = true }
scrypt = { workspace = true }
# chunker / packer
integer-sqrt = { workspace = true }
# serialization
binrw = { workspace = true }
hex = { workspace = true }
serde = { workspace = true }
serde-aux = { workspace = true }
serde_json = { workspace = true }
serde_with = { workspace = true }
# other dependencies
bytes = { workspace = true }
chrono = { workspace = true }
enum-map = { workspace = true }
enum-map-derive = { workspace = true }
self_update = { workspace = true }
zstd = { workspace = true }
# local backend
aho-corasick = { workspace = true }
filetime = { workspace = true }
ignore = { workspace = true }
nix = { workspace = true }
walkdir = { workspace = true }
# cache
cachedir = { workspace = true }
dirs = { workspace = true }
# commands
clap = { workspace = true }
clap_complete = { workspace = true }
merge = { workspace = true }
bytesize = { workspace = true }
comfy-table = { workspace = true }
dialoguer = "0.10.4"
directories = { workspace = true }
dunce = { workspace = true }
gethostname = { workspace = true }
humantime = { workspace = true }
indicatif = { workspace = true }
itertools = { workspace = true }
path-dedot = { workspace = true }
rhai = { workspace = true }
shell-words = { workspace = true }
simplelog = { workspace = true }
[dev-dependencies]
aho-corasick = { workspace = true }
dircmp = { workspace = true }
once_cell = { workspace = true }
pretty_assertions = { workspace = true }
rustic_testing = { path = "crates/rustic_testing" }
tempfile = { workspace = true }
toml = { workspace = true }
[target.'cfg(not(windows))'.dependencies]
sha2 = { version = "0.10", features = ["asm"] }
libc = "0.2.147"
[target.'cfg(windows)'.dependencies]
# unfortunately, the asm extensions do not build on MSVC, see https://github.com/RustCrypto/asm-hashes/issues/17
sha2 = "0.10"
[target.'cfg(not(any(windows, target_os="openbsd")))'.dependencies]
xattr = "1"
[workspace.dependencies]
rustic_core = { path = "crates/rustic_core/", features = ["cli"], version = "0" }
abscissa_core = "0.7.0"
# logging
tracing-appender = { version = "0.2.2", features = ["parking_lot"] }
tracing-error = "0.2.0"
tracing-subscriber = { version = "0.3.17", features = ["env-filter"] }
# errors
displaydoc = "0.2.4"
thiserror = "1"
anyhow = "1"
# macros
derive_more = "0.99"
derivative = "2"
derive_setters = "0.1"
# logging
log = "0.4"
# parallelize
crossbeam-channel = "0.5"
rayon = "1"
pariter = "0.5"
# crypto
aes256ctr_poly1305aes = "0.1"
rand = "0.8"
scrypt = { version = "0.11", default-features = false }
# chunker / packer
integer-sqrt = "0.1"
# serialization
binrw = "0.11"
hex = { version = "0.4", features = ["serde"] }
serde = { version = "1", features = ["serde_derive"] }
serde_with = { version = "3.2", features = ["base64"] }
serde_json = "1"
serde-aux = "4"
# local backend
walkdir = "2"
ignore = "0.4"
cached = { version = "0.44", default-features = false, features = ["proc_macro"] }
nix = "0.26"
filetime = "0.2"
aho-corasick = "1"
# rest backend
reqwest = { version = "0.11", default-features = false, features = ["json", "rustls-tls-native-roots", "stream", "blocking"] }
backoff = "0.4"
url = "2.3.1"
# rclone backend
semver = "1"
# other dependencies
bytes = "1"
chrono = { version = "0.4", default-features = false, features = ["clock", "serde"] }
zstd = "0.12"
enum-map = "2"
enum-map-derive = "0.13"
rhai = { version = "1.15", features = ["sync", "serde", "no_optimize", "no_module", "no_custom_syntax", "only_i64"] }
simplelog = "0.12"
comfy-table = "6.1.4"
# cache
dirs = "5"
cachedir = "0.3"
# commands
merge = "0.1"
directories = "5"
shell-words = "1"
indicatif = "0.17"
path-dedot = "3"
dunce = "1"
gethostname = "0.4"
bytesize = "1"
itertools = "0.10"
humantime = "2"
clap_complete = "4"
clap = { version = "4", features = ["derive", "env", "wrap_help"] }
once_cell = "1.17"
self_update = { version = "0.36", default-features = false, features = ["rustls", "archive-tar", "compression-flate2"] }
# dev dependencies
rstest = "0.17"
quickcheck = "1"
quickcheck_macros = "1"
tempfile = "3.8"
pretty_assertions = "1.4"
toml = "0.7"
dircmp = "0.2"
# see: https://nnethercote.github.io/perf-book/build-configuration.html
[profile.dev]
opt-level = 0
debug = true
rpath = false
lto = false
debug-assertions = true
codegen-units = 4
[profile.release]
opt-level = 3
debug = false # true for profiling
rpath = false
lto = "fat"
debug-assertions = false
codegen-units = 1
strip = true
panic = "abort"
[profile.test]
opt-level = 1
debug = true
rpath = false
lto = false
debug-assertions = true
codegen-units = 4
[profile.bench]
opt-level = 3
debug = true # true for profiling
rpath = false
lto = true
debug-assertions = false
codegen-units = 1