Repository navigation
Expand file tree
/
Copy pathCargo.toml
More file actions
151 lines (143 loc) · 6.2 KB
/
Copy pathCargo.toml
File metadata and controls
151 lines (143 loc) · 6.2 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
[workspace]
members = ["crates/*"]
resolver = "3"
[workspace.package]
authors = ["Stackable GmbH <info@stackable.de>"]
license = "Apache-2.0"
edition = "2024"
repository = "https://github.com/stackabletech/operator-rs"
[workspace.dependencies]
arc-swap = "1.9.2"
async-trait = "0.1.91"
axum = { version = "0.8.9", features = ["http2"] }
base64 = "0.23"
built = "0.8.1"
clap = { version = "4.6.5", features = ["derive", "cargo", "env"] }
const_format = "0.2.36"
# Pinned to the old RustCrypto generation (const-oid 0.9 / digest 0.10 / signature 2.x / spki 0.7).
# `stackable-certs` builds certificates for both ECDSA and RSA keypairs, so ecdsa/p256 and rsa have
# to agree with x509-cert on the generation of the shared der/spki/signature crates. rsa is the
# laggard: 0.9 is still its only stable release line and it is on the old generation, so const-oid,
# ecdsa, p256, rand_core, sha2, signature and x509-cert all have to stay behind with it. Bumping any
# of them individually splits the dependency graph into two incompatible halves and rsa's key and
# signature types stop satisfying x509-cert's spki traits.
# Unblocked once rsa 0.10 (currently at 0.10.0-rc.18) is released: https://github.com/RustCrypto/RSA
# See also the ecdsa, p256, rand_core, sha2, signature and x509-cert pins below.
const-oid = { version = "0.9.6", features = ["db"] }
convert_case = "0.12.0"
darling = "0.24.0"
delegate = "0.13.5"
dockerfile-parser = "0.9.0"
# Pinned to the old RustCrypto generation, see the const-oid comment above.
ecdsa = { version = "0.16.9", features = ["digest", "pem"] }
educe = { version = "0.8.1", default-features = false, features = ["Clone", "Debug", "Default", "PartialEq", "Eq"] }
either = "1.17.0"
futures = "0.3.33"
futures-util = "0.3.33"
hickory-resolver = "0.26.1"
http = "1.5.0"
humantime = "2.4.0"
indexmap = "2.14.0"
indoc = "2.0.7"
jiff = "0.2.35"
insta = { version = "1.48.0", features = ["glob"] }
hyper = { version = "1.11.0", features = ["full"] }
hyper-util = "0.1.20"
itertools = "0.15.0"
java-properties = "2.0.0"
json-patch = "4.2.0"
k8s-openapi = { version = "0.28.0", default-features = false, features = ["schemars", "v1_36"] }
# We use rustls instead of openssl for easier portability, e.g. so that we can build stackablectl without the need to vendor (build from source) openssl
# We use ring instead of aws-lc-rs, as this currently fails to build in "make run-dev"
kube = { version = "4.2.0", default-features = false, features = ["client", "jsonpatch", "runtime", "derive", "admission", "rustls-tls", "ring"] }
local-ip-address = "0.6.13"
opentelemetry = "0.33.0"
opentelemetry_sdk = { version = "0.33.0", features = ["rt-tokio"] }
opentelemetry-appender-tracing = "0.33.0"
opentelemetry-otlp = "0.33.0"
opentelemetry-semantic-conventions = "0.33.0"
# Pinned to the old RustCrypto generation, see the const-oid comment above.
p256 = { version = "0.13.2", features = ["ecdsa"] }
paste = "1.0.15"
pin-project = "1.1.13"
prettyplease = "0.3.0"
proc-macro2 = "1.0.107"
quote = "1.0.47"
rand = "0.10.2"
# Pinned to the old RustCrypto generation, see the const-oid comment above. This is the rand_core
# that rsa 0.9 and ecdsa 0.16 take their RNG from; it is independent of the `rand` version above,
# which is only used to generate random Secrets in stackable-operator.
rand_core = "0.6.4"
regex = "1.13.1"
rsa = { version = "0.9.10", features = ["sha2"] }
rstest = "0.27.0"
rstest_reuse = "0.7.0"
schemars = { version = "1.2.2", features = ["url2"] }
semver = "1.0.28"
serde = { version = "1.0.229", features = ["derive"] }
serde_json = "1.0.151"
serde_yaml = "0.9.34" # This is the last available version, see https://github.com/dtolnay/serde-yaml/releases/tag/0.9.34 for details
# Pinned to the old RustCrypto generation, see the const-oid comment above. sha2 0.11 uses
# digest 0.11 and signature 3.0, which rsa 0.9 does not support.
sha2 = { version = "0.10.9", features = ["oid"] }
signature = "2.2.0"
similar-asserts = "2.0.0"
snafu = "0.9.2"
stackable-operator-derive = { path = "stackable-operator-derive" }
strum = { version = "0.28.0", features = ["derive"] }
syn = "3.0.3"
sysinfo = "0.39.6"
tempfile = "3.27.0"
time = { version = "0.3.55" }
tokio = { version = "1.53.1", features = ["macros", "rt-multi-thread", "fs"] }
# We use ring instead of aws-lc-rs, as this currently fails to build in "make run-dev"
tokio-rustls = { version = "0.26.4", default-features = false, features = ["ring", "logging", "tls12"] }
tokio-test = "0.4.5"
tower = { version = "0.5.3", features = ["util"] }
tower-http = { version = "0.7.0", features = ["trace"] } # We don't actually use this crate, but we need to enable the `trace` feature
tracing = "0.1.44"
tracing-appender = "0.2.5"
tracing-opentelemetry = "0.34.0"
tracing-subscriber = { version = "0.3.23", features = ["env-filter", "json"] }
trybuild = "1.0.120"
url = { version = "2.5.8", features = ["serde"] }
uuid = "1.24.0"
winnow = "1.0.4"
# Pinned to the old RustCrypto generation, see the const-oid comment above.
x509-cert = { version = "0.2.5", features = ["builder"] }
xml = "1.3.0"
zeroize = "1.9.0"
[workspace.lints.clippy]
# Enable all pedantic lints (with lower priority so individual lints can override)
pedantic = { level = "deny", priority = -1 }
# Pedantic lints we don't enforce (yet)
doc_markdown = "allow"
missing_errors_doc = "allow"
must_use_candidate = "allow"
return_self_not_must_use = "allow"
missing_panics_doc = "allow"
cast_possible_truncation = "allow"
float_cmp = "allow"
cast_sign_loss = "allow"
cast_precision_loss = "allow"
unchecked_time_subtraction = "allow"
# We should be able to deny this, but it lint's on code generated by darling, raised https://github.com/TedDriggs/darling/pull/429
needless_continue = "allow"
# Additional nursery lints we enforce
use_self = "deny"
or_fun_call = "deny"
derive_partial_eq_without_eq = "deny"
unnecessary_struct_initialization = "deny"
# Additional restriction lints we enforce
unwrap_in_result = "deny"
unwrap_used = "deny"
panic = "deny"
# Use O3 in tests to improve the RSA key generation speed in the stackable-certs crate
[profile.test.package]
stackable-certs.opt-level = 3
rsa.opt-level = 3
# Run snapshot testing faster even as a dev dependency.
# See https://insta.rs/docs/quickstart/#optional-faster-runs
[profile.dev.package]
insta.opt-level = 3
similar.opt-level = 3