inherit shared, external dependencies

noteworthy changes:
- proxmox-http had a default_features_false dep on hyper, which is dropped (the
  default feature is empty anyway)
- hyper, libc, nix, tokio and url versions are unified
- missing (cosmetic) bindgen feature on zstd enabled everywhere

Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
This commit is contained in:
Fabian Grünbichler 2022-12-06 13:43:42 +01:00
parent 64959d9ae0
commit 4189221470
19 changed files with 144 additions and 117 deletions

View File

@ -30,3 +30,30 @@ edition = "2021"
license = "AGPL-3"
repository = "https://git.proxmox.com/?p=proxmox.git"
exclude = [ "debian" ]
[workspace.dependencies]
# any features enabled here are enabled on all members using 'workspace = true'!
# external dependencies
anyhow = "1.0"
base64 = "0.13"
endian_trait = "0.6"
futures = "0.3"
hex = "0.4"
http = "0.2"
hyper = "0.14.5"
lazy_static = "1.4"
libc = "0.2.107"
log = "0.4.17"
nix = "0.24.1"
openssl = "0.10"
percent-encoding = "2.1"
proc-macro2 = "1.0"
quote = "1.0"
serde = "1.0"
serde_json = "1.0"
syn = { version = "1.0", features = [ "full", "visit-mut" ] }
tokio = "1.6"
tokio-openssl = "0.6.1"
url = "2.2"
zstd = { version = "0.6", features = [ "bindgen" ] }

View File

@ -13,15 +13,15 @@ exclude.workspace = true
proc-macro = true
[dependencies]
anyhow = "1.0"
proc-macro2 = "1.0"
quote = "1.0"
syn = { version = "1.0", features = [ "extra-traits", "full", "visit-mut" ] }
anyhow.workspace = true
proc-macro2.workspace = true
quote.workspace = true
syn = { workspace = true , features = [ "extra-traits" ] }
[dev-dependencies]
futures = "0.3"
serde = { version = "1.0", features = [ "derive" ] }
serde_json = "1.0"
futures.workspace = true
serde = { workspace = true, features = [ "derive" ] }
serde_json.workspace = true
[dev-dependencies.proxmox-schema]
version = "1.0.0"

View File

@ -10,14 +10,14 @@ description = "Proxmox async/tokio helpers"
exclude.workspace = true
[dependencies]
anyhow = "1.0"
futures = "0.3"
lazy_static = "1.4"
anyhow.workspace = true
futures.workspace = true
lazy_static.workspace = true
pin-utils = "0.1.0"
tokio = { version = "1.0", features = [ "net", "rt", "rt-multi-thread", "sync"] }
tokio = { workspace = true, features = [ "net", "rt", "rt-multi-thread", "sync"] }
proxmox-io = { path = "../proxmox-io", version = "1", features = [ "tokio" ] }
proxmox-lang = { path = "../proxmox-lang", version = "1.1" }
[dev-dependencies]
tokio = { version = "1.6", features = [ "macros" ] }
tokio = { workspace = true, features = [ "macros" ] }

View File

@ -10,22 +10,22 @@ description = "contains compression utilitites (such as an Zip Encoder for async
exclude.workspace = true
[dependencies]
anyhow = "1.0"
anyhow.workspace = true
bytes = "1.0"
crc32fast = "1"
endian_trait = { version = "0.6" }
endian_trait.workspace = true
flate2 = "1.0"
futures = "0.3"
libc = "0.2"
tokio = { version = "1.6", features = [ "fs", "io-util"] }
futures.workspace = true
libc.workspace = true
tokio = { workspace = true, features = [ "fs", "io-util"] }
walkdir = "2"
tar = "0.4"
zstd = { version = "0.6", features = []}
zstd.workspace = true
proxmox-time = { path = "../proxmox-time", version = "1" }
proxmox-io = { path = "../proxmox-io", version = "1", features = [ "tokio" ] }
proxmox-lang = { path = "../proxmox-lang", version = "1.1" }
[dev-dependencies]
tokio = { version = "1.6", features = [ "macros" ] }
tokio = { workspace = true, features = [ "macros" ] }

View File

@ -10,17 +10,17 @@ description = "Proxmox HTTP library"
exclude.workspace = true
[dependencies]
anyhow = "1.0"
base64 = { version = "0.13", optional = true }
futures = { version = "0.3", optional = true }
http = { version = "0.2", optional = true }
hyper = { version = "0.14", default_features = false, optional = true }
anyhow.workspace = true
base64 = { workspace = true, optional = true }
futures = { workspace = true, optional = true }
http = { workspace = true, optional = true }
hyper = { workspace = true, optional = true }
openssl = { version = "0.10", optional = true }
serde_json = { version = "1.0", optional = true }
tokio = { version = "1.0", features = [], optional = true }
tokio-openssl = { version = "0.6.1", optional = true }
serde_json = { workspace = true, optional = true }
tokio = { workspace = true, features = [], optional = true }
tokio-openssl = { workspace = true, optional = true }
ureq = { version = "2.4", features = ["native-certs"], optional = true }
url = { version = "2", optional = true }
url = { workspace = true, optional = true }
proxmox-async = { path = "../proxmox-async", optional = true, version = "0.4.1" }
proxmox-sys = { path = "../proxmox-sys", optional = true, version = "0.4" }

View File

@ -10,6 +10,6 @@ description = "extension traits for Read and Write"
exclude.workspace = true
[dependencies]
endian_trait = { version = "0.6", features = ["arrays"] }
endian_trait = { workspace = true, features = ["arrays"] }
# this is also the feature name:
tokio = { version = "1.0", features = [ "io-util" ], optional = true }
tokio = { workspace = true, features = [ "io-util" ], optional = true }

View File

@ -10,14 +10,14 @@ description = "Metrics Server export utilitites"
exclude.workspace = true
[dependencies]
anyhow = "1.0"
futures = "0.3"
http = "0.2"
hyper = "0.14"
openssl = "0.10"
serde = "1.0"
serde_json = "1.0"
tokio = { version = "1.0", features = [ "net", "sync" ] }
anyhow.workspace = true
futures.workspace = true
http.workspace = true
hyper.workspace = true
openssl.workspace = true
serde.workspace = true
serde_json.workspace = true
tokio = { workspace = true, features = [ "net", "sync" ] }
proxmox-async = { path = "../proxmox-async", features = [], version = "0.4" }
proxmox-http = { path = "../proxmox-http", features = [ "client" ], version = "0.7" }

View File

@ -11,28 +11,28 @@ exclude.workspace = true
[dev-dependencies]
proxmox-schema = { version = "1.3.1", features = [ "api-macro" ] }
tokio = { version = "1.6", features = [ "rt-multi-thread", "signal", "process" ] }
tokio = { workspace = true, features = [ "rt-multi-thread", "signal", "process" ] }
[dependencies]
anyhow = "1.0"
futures = "0.3"
anyhow.workspace = true
futures.workspace = true
handlebars = "3.0"
http = "0.2"
hyper = { version = "0.14.5", features = [ "full" ] }
lazy_static = "1.4"
libc = "0.2"
log = "0.4.17"
nix = "0.24"
http.workspace = true
hyper = { workspace = true, features = [ "full" ] }
lazy_static.workspace = true
libc.workspace = true
log.workspace = true
nix.workspace = true
once_cell = "1.3.1"
percent-encoding = "2.1"
percent-encoding.workspace = true
regex = "1.5"
serde = { version = "1.0", features = [ "derive" ] }
serde_json = "1.0"
tokio = { version = "1.6", features = ["signal", "process"] }
tokio-openssl = "0.6.1"
serde = { workspace = true, features = [ "derive" ] }
serde_json.workspace = true
tokio = { workspace = true, features = ["signal", "process"] }
tokio-openssl.workspace = true
tokio-stream = "0.1.0"
tower-service = "0.3.0"
url = "2.1"
url.workspace = true
#proxmox = "0.15.3"
proxmox-async = "0.4"

View File

@ -10,20 +10,20 @@ description = "proxmox API Router and CLI utilities"
exclude.workspace = true
[dependencies]
anyhow = "1.0"
anyhow.workspace = true
env_logger = { version = "0.9", optional = true }
http = { version = "0.2", optional = true }
hyper = { version = "0.14", features = [ "full" ], optional = true }
nix = "0.24.1"
percent-encoding = "2.1"
serde_json = "1.0"
serde = "1.0"
http = { workspace = true, optional = true }
hyper = { workspace = true, features = [ "full" ], optional = true }
nix.workspace = true
percent-encoding.workspace = true
serde_json.workspace = true
serde.workspace = true
unicode-width ="0.1.8"
# cli:
tokio = { version = "1.0", features = [], optional = true }
tokio = { workspace = true, features = [], optional = true }
rustyline = { version = "9", optional = true }
libc = { version = "0.2", optional = true }
libc = { workspace = true, optional = true }
proxmox-lang = { path = "../proxmox-lang", version = "1.1" }
proxmox-schema = { path = "../proxmox-schema", version = "1.1" }

View File

@ -10,22 +10,22 @@ description = "proxmox api schema and validation"
exclude.workspace = true
[dependencies]
anyhow = "1.0"
lazy_static = "1.4"
anyhow.workspace = true
lazy_static.workspace = true
regex = "1.5"
serde = "1.0"
serde_json = "1.0"
serde.workspace = true
serde_json.workspace = true
textwrap = "0.16"
# the upid type needs this for 'getpid'
libc = { version = "0.2", optional = true }
nix = { version = "0.24.1", optional = true }
libc = { workspace = true, optional = true }
nix = { workspace = true, optional = true }
proxmox-api-macro = { path = "../proxmox-api-macro", optional = true, version = "1.0.3" }
[dev-dependencies]
url = "2.1"
serde = { version = "1.0", features = [ "derive" ] }
url.workspace = true
serde = { workspace = true, features = [ "derive" ] }
proxmox-api-macro = { path = "../proxmox-api-macro", version = "1.0.3" }
[features]

View File

@ -10,10 +10,10 @@ description = "proxmox schema based section config format parsing"
exclude.workspace = true
[dependencies]
anyhow = "1.0"
hex = "0.4"
serde = "1.0"
serde_json = "1.0"
anyhow.workspace = true
hex.workspace = true
serde.workspace = true
serde_json.workspace = true
proxmox-schema = { path = "../proxmox-schema", version = "1.1" }
# FIXME: remove!

View File

@ -10,12 +10,12 @@ description = "Serde formatting tools"
exclude.workspace = true
[dependencies]
anyhow = "1.0"
base64 = "0.13"
serde = { version = "1.0", features = ["derive"] }
serde_json = { version = "1.0", optional = true }
anyhow.workspace = true
base64.workspace = true
serde = { workspace = true, features = ["derive"] }
serde_json = { workspace = true, optional = true }
proxmox-time = { path = "../proxmox-time", version = "1.0.0" }
[dev-dependencies]
serde_json = "1.0"
serde_json.workspace = true

View File

@ -10,8 +10,8 @@ description = "Shared memory helpers and shared mutex implementation"
exclude.workspace = true
[dependencies]
anyhow = "1.0"
libc = "0.2.107"
nix = "0.24.1"
anyhow.workspace = true
libc.workspace = true
nix.workspace = true
proxmox-sys = { path = "../proxmox-sys", version = "0.4" }

View File

@ -13,6 +13,6 @@ exclude.workspace = true
proc-macro = true
[dependencies]
proc-macro2 = "1.0"
quote = "1.0"
syn = { version = "1.0", features = [ "full", "visit-mut" ] }
proc-macro2.workspace = true
quote.workspace = true
syn = { workspace = true }

View File

@ -10,14 +10,14 @@ description = "Proxmox subscription utilitites"
exclude.workspace = true
[dependencies]
anyhow = "1.0"
base64 = "0.13"
hex = "0.4"
lazy_static = "1.4"
openssl = "0.10"
anyhow.workspace = true
base64.workspace = true
hex.workspace = true
lazy_static.workspace = true
openssl.workspace = true
regex = "1.5"
serde = "1.0"
serde_json = "1.0"
serde.workspace = true
serde_json.workspace = true
proxmox-http = { path = "../proxmox-http", version = "0.7", default_features = false, features = ["client-trait", "http-helpers"] }
proxmox-serde = { path = "../proxmox-serde", version = "0.1.1", features = ["serde_json"]}

View File

@ -10,16 +10,16 @@ description = "System tools (using nix)."
exclude.workspace = true
[dependencies]
anyhow = "1.0"
base64 = "0.13"
lazy_static = "1.4"
libc = "0.2.107"
log = "0.4.17"
nix = "0.24.1"
anyhow.workspace = true
base64.workspace = true
lazy_static.workspace = true
libc.workspace = true
log.workspace = true
nix.workspace = true
regex = "1.2"
serde_json = "1.0"
serde = { version = "1.0", features = [ "derive" ] }
zstd = { version = "0.6", features = [ "bindgen" ], optional = true}
serde_json.workspace = true
serde = { workspace = true, features = [ "derive" ] }
zstd = { workspace = true, optional = true}
# Macro crates:
proxmox-sortable-macro = { path = "../proxmox-sortable-macro", optional = true, version = "0.1.2" }

View File

@ -10,17 +10,17 @@ description = "tfa implementation for totp and u2f"
exclude.workspace = true
[dependencies]
anyhow = "1.0"
anyhow.workspace = true
base32 = "0.4"
base64 = "0.13"
hex = "0.4"
openssl = "0.10"
percent-encoding = "2.1"
serde = "1.0"
base64.workspace = true
hex.workspace = true
openssl.workspace = true
percent-encoding.workspace = true
serde.workspace = true
serde_plain = "1.0"
serde_json = { version = "1.0", optional = true }
libc = { version = "0.2", optional = true }
url = "2.2"
serde_json = { workspace = true, optional = true }
libc = { workspace = true, optional = true }
url.workspace = true
proxmox-schema = { version = "1", path = "../proxmox-schema", features = [ "api-macro" ], optional = true }
proxmox-time = { version = "1", path = "../proxmox-time", optional = true }

View File

@ -10,13 +10,13 @@ description = "time utilities and TmEditor"
exclude.workspace = true
[dependencies]
anyhow = "1.0"
anyhow.workspace = true
bitflags = "1.2.1"
lazy_static = "1.4"
lazy_static.workspace = true
nom = "7"
[target.'cfg(not(target_arch="wasm32"))'.dependencies]
libc = { version = "0.2", features = [ "extra_traits" ] }
libc = { workspace = true, features = [ "extra_traits" ] }
[target.'cfg(target_arch="wasm32")'.dependencies]
js-sys = "0.3.55"

View File

@ -10,15 +10,15 @@ description = "bindings for libuuid with optional serde support"
exclude.workspace = true
[dependencies]
libc = "0.2"
serde = { version = "1.0", optional = true }
libc.workspace = true
serde = { workspace = true, optional = true }
[features]
default = []
[dev-dependencies]
serde = "1.0"
serde_json = "1.0"
serde.workspace = true
serde_json.workspace = true
[target.'cfg(target_arch="wasm32")'.dependencies]
js-sys = "0.3.55"