name = "proxmox_backup"
path = "src/lib.rs"
+[workspace.dependencies]
+# proxmox workspace
+proxmox-async = "0.4"
+proxmox-borrow = "1"
+proxmox-compression = "0.1.1"
+proxmox-fuse = "0.1.3"
+proxmox-http = { version = "0.7", features = [ "client", "http-helpers", "websocket" ] } # see below
+proxmox-io = "1.0.1" # tools and client use "tokio" feature
+proxmox-lang = "1.1"
+proxmox-metrics = "0.2"
+proxmox-rest-server = "0.2"
+# some use "cli", some use "cli" and "server", pbs-config uses nothing
+proxmox-router = { version = "1.3.0", default_features = false }
+# everything but pbs-config and pbs-client ues "api-macro"
+proxmox-schema = "1.3.1"
+proxmox-section-config = "1"
+proxmox-serde = "0.1.1"
+proxmox-shared-memory = "0.2"
+proxmox-subscription = { version = "0.3", features = [ "api-types" ] }
+proxmox-sys = "0.4.1"
+proxmox-tfa = { version = "2.1", features = [ "api", "api-types" ] }
+proxmox-time = "1.1.2"
+proxmox-uuid = "1"
+
+# other proxmox crates
+pathpatterns = "0.1.2"
+proxmox-acme-rs = "0.4"
+proxmox-apt = "0.9.0"
+proxmox-openid = "0.9.0"
+pxar = "0.10.2"
+
+# PBS workspace
+pbs-api-types = { path = "pbs-api-types" }
+pbs-buildcfg = { path = "pbs-buildcfg" }
+pbs-client = { path = "pbs-client" }
+pbs-config = { path = "pbs-config" }
+pbs-datastore = { path = "pbs-datastore" }
+pbs-fuse-loop = { path = "pbs-fuse-loop" }
+pbs-pxar-fuse = { path = "pbs-pxar-fuse" }
+pbs-tape = { path = "pbs-tape" }
+pbs-tools = { path = "pbs-tools" }
+proxmox-rrd = { path = "proxmox-rrd" }
+
[dependencies]
apt-pkg-native = "0.3.2"
base64 = "0.13"
# Used only by examples currently:
zstd = { version = "0.6", features = [ "bindgen" ] }
-pathpatterns = "0.1.2"
-pxar = { version = "0.10.2", features = [ "tokio-io" ] }
-
-proxmox-http = { version = "0.7", features = [ "client", "client-trait", "http-helpers", "proxmox-async", "websocket" ] }
-proxmox-io = "1"
-proxmox-lang = "1.1"
-proxmox-metrics = "0.2"
-proxmox-router = { version = "1.3.0", features = [ "cli" ] }
-proxmox-schema = { version = "1.3.1", features = [ "api-macro" ] }
-proxmox-section-config = "1"
-proxmox-tfa = { version = "2.1", features = [ "api", "api-types" ] }
-proxmox-time = "1.1.2"
-proxmox-uuid = "1"
-proxmox-serde = { version = "0.1.1", features = [ "serde_json" ] }
-proxmox-shared-memory = "0.2"
-proxmox-subscription = { version = "0.3", features = [ "api-types" ] }
-proxmox-sys = { version = "0.4.1", features = [ "sortable-macro", "timer" ] }
-proxmox-compression = "0.1"
-proxmox-rest-server = "0.2"
-
-
-proxmox-acme-rs = "0.4"
-proxmox-apt = "0.9.0"
-proxmox-async = "0.4"
-proxmox-openid = "0.9.0"
-
-pbs-api-types = { path = "pbs-api-types" }
-pbs-buildcfg = { path = "pbs-buildcfg" }
-pbs-client = { path = "pbs-client" }
-pbs-config = { path = "pbs-config" }
-pbs-datastore = { path = "pbs-datastore" }
-proxmox-rrd = { path = "proxmox-rrd" }
-pbs-tools = { path = "pbs-tools" }
-pbs-tape = { path = "pbs-tape" }
+proxmox-async.workspace = true
+proxmox-compression.workspace = true
+proxmox-http = { workspace = true, features = [ "client-trait", "proxmox-async" ] } # pbs-client doesn't use these
+proxmox-io.workspace = true
+proxmox-lang.workspace = true
+proxmox-metrics.workspace = true
+proxmox-rest-server.workspace = true
+proxmox-router = { workspace = true, features = [ "cli", "server"] }
+proxmox-schema = { workspace = true, features = [ "api-macro" ] }
+proxmox-section-config.workspace = true
+proxmox-serde = { workspace = true, features = [ "serde_json" ] }
+proxmox-shared-memory.workspace = true
+proxmox-subscription.workspace = true
+proxmox-sys = { workspace = true, features = [ "sortable-macro", "timer" ] }
+proxmox-tfa.workspace = true
+proxmox-time.workspace = true
+proxmox-uuid.workspace = true
+
+pathpatterns.workspace = true
+proxmox-acme-rs.workspace = true
+proxmox-apt.workspace = true
+proxmox-openid.workspace = true
+pxar.workspace = true
+
+pbs-api-types.workspace = true
+pbs-buildcfg.workspace = true
+pbs-client.workspace = true
+pbs-config.workspace = true
+pbs-datastore.workspace = true
+proxmox-rrd.workspace = true
+pbs-tools.workspace = true
+pbs-tape.workspace = true
# Local path overrides
# NOTE: You must run `cargo update` after changing this for it to take effect!
serde = { version = "1.0", features = ["derive"] }
serde_plain = "1"
-proxmox-lang = "1.0.0"
-proxmox-schema = { version = "1.2.1", features = [ "api-macro" ] }
-proxmox-serde = "0.1"
-proxmox-time = "1.1.1"
-proxmox-uuid = { version = "1.0.0", features = [ "serde" ] }
+proxmox-lang.workspace=true
+proxmox-schema = { workspace = true, features = [ "api-macro" ] }
+proxmox-serde.workspace = true
+proxmox-time.workspace = true
+proxmox-uuid = { workspace = true, features = [ "serde" ] }
xdg = "2.2"
tar = "0.4"
-pathpatterns = "0.1.2"
+pathpatterns.workspace = true
-proxmox-async = "0.4"
-proxmox-compression = "0.1.1"
-proxmox-http = { version = "0.7", features = [ "client", "http-helpers", "websocket" ] }
-proxmox-io = { version = "1.0.1", features = [ "tokio" ] }
-proxmox-lang = "1.1"
-proxmox-router = { version = "1.3.0", features = [ "cli" ] }
-proxmox-schema = "1.3.1"
-proxmox-time = "1"
-proxmox-sys = "0.4.1"
+proxmox-async.workspace = true
+proxmox-compression.workspace = true
+proxmox-http.workspace = true
+proxmox-io = { workspace = true, features = [ "tokio" ] }
+proxmox-lang.workspace = true
+proxmox-router = { workspace = true, features = [ "cli", "server" ] }
+proxmox-schema.workspace = true
+proxmox-time.workspace = true
+proxmox-sys.workspace = true
-pxar = { version = "0.10.2", features = [ "tokio-io" ] }
+pxar.workspace = true
-pbs-api-types = { path = "../pbs-api-types" }
-pbs-buildcfg = { path = "../pbs-buildcfg" }
-pbs-datastore = { path = "../pbs-datastore" }
-pbs-tools = { path = "../pbs-tools" }
+pbs-api-types.workspace = true
+pbs-buildcfg.workspace = true
+pbs-datastore.workspace = true
+pbs-tools.workspace = true
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
-proxmox-lang = "1.1"
-proxmox-router = { version = "1.3.0", default-features = false }
-proxmox-schema = "1.3.1"
-proxmox-section-config = "1"
-proxmox-time = "1"
-proxmox-serde = "0.1"
-proxmox-shared-memory = "0.2"
-proxmox-sys = { version = "0.4.1", features = [ "acl", "crypt", "timer" ] }
-proxmox-metrics = "0.2"
+proxmox-lang.workspace=true
+proxmox-metrics.workspace = true
+proxmox-router = { workspace = true, default-features = false }
+proxmox-schema.workspace = true
+proxmox-section-config.workspace = true
+proxmox-serde.workspace = true
+proxmox-shared-memory.workspace = true
+proxmox-sys = { workspace = true, features = [ "acl", "crypt", "timer" ] }
+proxmox-time.workspace = true
-pbs-api-types = { path = "../pbs-api-types" }
-pbs-buildcfg = { path = "../pbs-buildcfg" }
-pbs-tools = { path = "../pbs-tools" }
+pbs-api-types.workspace = true
+pbs-buildcfg.workspace = true
+pbs-tools.workspace = true
walkdir = "2"
zstd = { version = "0.6", features = [ "bindgen" ] }
-pathpatterns = "0.1.2"
-pxar = "0.10.2"
+pathpatterns.workspace = true
+pxar.workspace = true
-proxmox-borrow = "1"
-proxmox-io = "1"
-proxmox-lang = "1.1"
-proxmox-schema = { version = "1.3.1", features = [ "api-macro" ] }
-proxmox-serde = { version = "0.1.1", features = [ "serde_json" ] }
-proxmox-time = "1"
-proxmox-uuid = "1"
-proxmox-sys = "0.4.1"
+proxmox-borrow.workspace = true
+proxmox-io.workspace = true
+proxmox-lang.workspace=true
+proxmox-schema = { workspace = true, features = [ "api-macro" ] }
+proxmox-serde = { workspace = true, features = [ "serde_json" ] }
+proxmox-time.workspace = true
+proxmox-uuid.workspace = true
+proxmox-sys.workspace = true
-pbs-api-types = { path = "../pbs-api-types" }
-pbs-buildcfg = { path = "../pbs-buildcfg" }
-pbs-tools = { path = "../pbs-tools" }
-pbs-config = { path = "../pbs-config" }
+pbs-api-types.workspace = true
+pbs-buildcfg.workspace = true
+pbs-tools.workspace = true
+pbs-config.workspace = true
regex = "1.5"
tokio = { version = "1.6", features = ["io-util"] }
-proxmox-time = "1"
-proxmox-fuse = "0.1.3"
-proxmox-sys = "0.4.1"
+proxmox-time.workspace = true
+proxmox-fuse.workspace = true
+proxmox-sys.workspace = true
log = "0.4"
tokio = "1.6"
-proxmox-fuse = "0.1.3"
-proxmox-io = "1.0.1"
-proxmox-lang = "1.1"
-proxmox-sys = "0.4.1"
+proxmox-fuse.workspace = true
+proxmox-io.workspace = true
+proxmox-lang.workspace=true
+proxmox-sys.workspace = true
-pxar = { version = "0.10.2", features = [ "tokio-io" ] }
+pxar.workspace = true
regex = "1.5"
udev = "0.4"
-proxmox-io = "1"
-proxmox-lang = "1.1"
+proxmox-io.workspace = true
+proxmox-lang.workspace=true
# api-macro is only used by the binaries, so maybe we should split them out
-proxmox-schema = { version = "1.3.1", features = [ "api-macro" ] }
-proxmox-time = "1"
-proxmox-uuid = "1"
+proxmox-schema = { workspace = true, features = [ "api-macro" ] }
+proxmox-time.workspace = true
+proxmox-uuid.workspace = true
# router::cli is only used by binaries, so maybe we should split them out
-proxmox-router = "1.3.0"
-proxmox-sys = "0.4.1"
+proxmox-router = { workspace = true, features = ["cli", "server"] }
+proxmox-sys.workspace = true
-pbs-api-types = { path = "../pbs-api-types" }
-pbs-config = { path = "../pbs-config" }
+pbs-api-types.workspace = true
+pbs-config.workspace = true
zstd = { version = "0.6", features = [ "bindgen" ] }
#proxmox = { version = "0.15.3", default-features = false, features = [ "tokio" ] }
-proxmox-async = "0.4"
-proxmox-io = { version = "1", features = [ "tokio" ] }
-proxmox-lang = { version = "1.1" }
-proxmox-time = { version = "1" }
-proxmox-sys = "0.4.1"
+proxmox-async.workspace = true
+proxmox-io= { workspace = true, features = [ "tokio" ] }
+proxmox-lang.workspace=true
+proxmox-time.workspace = true
+proxmox-sys.workspace = true
-pbs-buildcfg = { path = "../pbs-buildcfg" }
-pbs-api-types = { path = "../pbs-api-types" }
+pbs-buildcfg.workspace = true
+pbs-api-types.workspace = true
[dev-dependencies]
tokio = { version = "1.6", features = [ "macros" ] }
xdg = "2.2"
zstd = { version = "0.6", features = [ "bindgen" ] }
-pathpatterns = "0.1.2"
-pxar = { version = "0.10.2", features = [ "tokio-io" ] }
+pathpatterns.workspace = true
+pxar.workspace = true
-proxmox-async = "0.4"
-proxmox-fuse = "0.1.3"
-proxmox-io = "1.0.1"
-proxmox-router = { version = "1.3.0", features = [ "cli" ] }
-proxmox-schema = { version = "1.3.1", features = [ "api-macro" ] }
-proxmox-sys = { version = "0.4.1", features = [ "sortable-macro" ] }
-proxmox-time = "1"
+proxmox-async.workspace = true
+proxmox-fuse.workspace = true
+proxmox-io.workspace = true
+proxmox-router = { workspace = true, features = [ "cli" ] }
+proxmox-schema = { workspace = true, features = [ "api-macro" ] }
+proxmox-sys = { workspace = true, features = [ "sortable-macro" ] }
+proxmox-time.workspace = true
-pbs-api-types = { path = "../pbs-api-types" }
-pbs-buildcfg = { path = "../pbs-buildcfg" }
-pbs-client = { path = "../pbs-client" }
-pbs-config = { path = "../pbs-config" }
-pbs-datastore = { path = "../pbs-datastore" }
-pbs-fuse-loop = { path = "../pbs-fuse-loop" }
-pbs-pxar-fuse = { path = "../pbs-pxar-fuse" }
-pbs-tools = { path = "../pbs-tools" }
+pbs-api-types.workspace = true
+pbs-buildcfg.workspace = true
+pbs-client.workspace = true
+pbs-config.workspace = true
+pbs-datastore.workspace = true
+pbs-fuse-loop.workspace = true
+pbs-pxar-fuse.workspace = true
+pbs-tools.workspace = true
tokio = { version = "1.6", features = [ "io-std", "rt", "rt-multi-thread", "time" ] }
tokio-util = { version = "0.7", features = ["io"] }
-pxar = { version = "0.10.2", features = [ "tokio-io" ] }
+pxar.workspace = true
#proxmox = { version = "0.15.3" }
-proxmox-async = "0.4"
-proxmox-lang = "1.1"
-proxmox-router = { version = "1.3.0", features = [ "cli" ] }
-proxmox-schema = { version = "1.3.1", features = [ "api-macro" ] }
-proxmox-time = "1"
-proxmox-uuid = "1"
-proxmox-sys = { version = "0.4.1", features = [ "logrotate" ] }
-proxmox-compression = "0.1"
+proxmox-async.workspace = true
+proxmox-lang.workspace=true
+proxmox-router = { workspace = true, features = [ "cli" ] }
+proxmox-schema = { workspace = true, features = [ "api-macro" ] }
+proxmox-time.workspace = true
+proxmox-uuid.workspace = true
+proxmox-sys = { workspace = true, features = [ "logrotate" ] }
+proxmox-compression.workspace = true
-pbs-api-types = { path = "../pbs-api-types" }
-pbs-buildcfg = { path = "../pbs-buildcfg" }
-pbs-config = { path = "../pbs-config" }
-pbs-client = { path = "../pbs-client" }
-pbs-datastore = { path = "../pbs-datastore" }
-pbs-tools = { path = "../pbs-tools" }
+pbs-api-types.workspace = true
+pbs-buildcfg.workspace = true
+pbs-config.workspace = true
+pbs-client.workspace = true
+pbs-datastore.workspace = true
+pbs-tools.workspace = true
tokio-stream = "0.1.0"
tokio-util = { version = "0.7", features = [ "codec", "io" ] }
-pathpatterns = "0.1.2"
-pxar = { version = "0.10.2", features = [ "tokio-io" ] }
+pathpatterns.workspace = true
+pxar.workspace = true
-proxmox-async = "0.4"
-proxmox-compression = "0.1.1"
-proxmox-rest-server = "0.2"
-proxmox-router = { version = "1.3.0", features = [ "cli", "server" ] }
-proxmox-schema = { version = "1.3.1", features = [ "api-macro" ] }
-proxmox-time = "1"
-proxmox-sys = { version = "0.4.1", features = [ "sortable-macro" ] }
+proxmox-async.workspace = true
+proxmox-compression.workspace = true
+proxmox-rest-server.workspace = true
+proxmox-router = { workspace = true, features = [ "cli", "server" ] }
+proxmox-schema = { workspace = true, features = [ "api-macro" ] }
+proxmox-time.workspace = true
+proxmox-sys = { workspace = true, features = [ "sortable-macro" ] }
-pbs-api-types = { path = "../pbs-api-types" }
-pbs-tools = { path = "../pbs-tools" }
-pbs-datastore = { path = "../pbs-datastore" }
-pbs-client = { path = "../pbs-client" }
+pbs-api-types.workspace = true
+pbs-tools.workspace = true
+pbs-datastore.workspace = true
+pbs-client.workspace = true
description = "Simple RRD database implementation."
[dev-dependencies]
-proxmox-router = "1.2.4"
+proxmox-router = { workspace = true, features = ["cli", "server"] }
[dependencies]
anyhow = "1.0"
serde_cbor = "0.11.1"
#proxmox = { version = "0.15.3" }
-proxmox-time = "1"
-proxmox-schema = { version = "1.3.1", features = [ "api-macro" ] }
-proxmox-sys = "0.4.1"
+proxmox-time.workspace = true
+proxmox-schema = { workspace = true, features = [ "api-macro" ] }
+proxmox-sys.workspace = true
serde_json = "1.0"
tokio = { version = "1.6", features = [ "rt", "rt-multi-thread" ] }
-pathpatterns = "0.1.2"
-pxar = { version = "0.10.2", features = [ "tokio-io" ] }
+pathpatterns.workspace = true
+pxar.workspace = true
-proxmox-async = "0.4"
-proxmox-router = "1.3.0"
-proxmox-schema = { version = "1.3.1", features = [ "api-macro" ] }
-proxmox-sys = "0.4.1"
+proxmox-async.workspace = true
+proxmox-router = { workspace = true, features = ["cli", "server"] }
+proxmox-schema = { workspace = true, features = [ "api-macro" ] }
+proxmox-sys.workspace = true
-pbs-client = { path = "../pbs-client" }
-pbs-pxar-fuse = { path = "../pbs-pxar-fuse" }
-pbs-tools = { path = "../pbs-tools" }
+pbs-client.workspace = true
+pbs-pxar-fuse.workspace = true
+pbs-tools.workspace = true