-
Notifications
You must be signed in to change notification settings - Fork 31
/
Cargo.toml
201 lines (196 loc) · 6.59 KB
/
Cargo.toml
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
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
[workspace]
resolver = "2"
members = [
# meteroid
"modules/meteroid",
"modules/meteroid/crates/meteroid-grpc",
"modules/meteroid/crates/stripe-client",
"modules/meteroid/crates/diesel-models",
"modules/meteroid/crates/meteroid-store",
"modules/meteroid/crates/meteroid-invoicing",
# metering
"modules/metering",
"modules/metering/crates/metering-grpc",
# adapters
"modules/adapters/openstack",
"modules/adapters/slurm-collector",
# shared
"crates/kafka",
"crates/common-build-info",
"crates/common-config",
"crates/common-domain",
"crates/common-eventbus",
"crates/common-grpc",
"crates/common-grpc-error-as-tonic-macros",
"crates/common-grpc-error-as-tonic-macros-impl",
"crates/common-logging",
"crates/common-utils",
"crates/distributed-lock",
# extra
"extra/generator",
]
[workspace.package]
license = "AGPL-3.0-only"
edition = "2021"
rust-version = "1.83"
repository = "https://github.com/meteroid-oss/meteroid"
[workspace.dependencies]
anyhow = "1.0.75"
argon2 = "0.5.2"
async-trait = "0.1.74"
axum = { version = "0.7.7", features = ["json", "query", "tower-log", "http1"] }
backon = "1.2.0"
base62 = "2.0.2"
base64 = "0.22.0"
bigdecimal = "0.4.3"
blake3 = "1.5.0"
build-info = "0.0.39"
build-info-build = "0.0.39"
bytes = "1.5.0"
cached = "0.54.0"
chacha20poly1305 = "0.10.1"
chrono = { version = "0.4.31", default-features = false }
chrono-tz = { version = "0.8.5" }
clap = "4.5.16"
clickhouse-rs = "1.1.0-alpha.1"
deadpool-postgres = "0.14.0"
diesel = { version = "2.1.0", features = ["chrono", "uuid", "serde_json", "numeric"] }
diesel-async = { version = "0.5.0", features = ["postgres", "deadpool"] }
diesel-derive-enum = { version = "2.1.0", features = ["postgres"] }
diesel_migrations = { version = "2.2.0", features = ["postgres"] }
dotenvy = "0.15.7"
env_logger = "0.11.5"
envconfig = "0.11.0"
error-stack = "0.5.0"
fake = "3.0.0"
fang = { version = "0.10.4", default-features = false }
fastrand = "2.0.1"
fluent = "0.16"
fluent-static = "0.4.0"
fluent-static-codegen = "0.5.0"
futures = "0.3.28"
futures-lite = "2.3.0"
futures-util = { version = "0.3.29", features = [] }
headers = "0.4.0"
hex = "0.4.3"
hmac = "0.12.1"
hmac-sha256 = "1.1.7"
http = { version = "1.1.0" }
http-body = "1.0.1"
http-types = "2.12.0"
humantime = { version = "2.1.0" }
hyper = { version = "1.4.1", default-features = false }
image = "0.25.2"
init-tracing-opentelemetry = { version = "0.24.1", features = ["tracing_subscriber_ext"] }
itertools = "0.13.0"
jsonwebtoken = "9.2.0"
lapin = "2.5.0"
lazy_static = "1"
log = "0.4.20"
maud = "0.26.0"
miette = { version = "7.0.0", default-features = false }
mockito = "1.2.0"
moka = { version = "0.12.3", features = ["log", "logging", "sync"] }
nanoid = "0.4.0"
ndarray = "0.15.6"
ndarray-interp = "0.4.1"
o2o = "0.5.0"
object_store = { version = "0.11.0", default-features = false }
once_cell = "1.18.0"
opentelemetry = { version = "0.27.0", features = ["metrics", "trace", "logs"] }
opentelemetry-otlp = { version = "0.27.0", features = ["trace", "metrics", "logs"] }
opentelemetry_sdk = { version = "0.27.0", features = ["trace", "metrics", "rt-tokio", "rt-tokio-current-thread"] }
pbjson-build = "0.7.0"
pin-project = "1.1.3"
postgres = "0.19.7"
postgres-types = { version = "0.2.6", default-features = false }
proc-macro2 = { version = "1.0.78" }
prost = "0.13.3"
prost-build = "0.13.3"
prost-types = "0.13.3"
quick_cache = "0.6.2"
quote = "1.0.35"
rand = "0.8.5"
rand_chacha = "0.3.1"
rand_distr = "0.4.3"
rdkafka = "0.37.0"
regex = "1"
reqwest = { version = "0.12.5", default-features = false }
reqwest-middleware = "0.4.0"
reqwest-retry = "0.7.0"
ring = "0.17.8"
rstest = "0.23.0"
rust_decimal = "1.32.0"
rust_decimal_macros = "1.32.0"
rustls = { version = "0.23.12", default-features = false }
rusty-money = "0.4.1"
secrecy = "0.8.0" # https://github.com/iqlusioninc/crates/issues/1234
segment = { version = "0.2.3" }
serde = { version = "1.0.189", default-features = false }
serde_json = "1.0.107"
serde_path_to_error = "0.1.14"
serde_with = "3.11.0"
serde_qs = "0.13.0"
serde_yaml = "0.9.30"
sha2 = "0.10.8"
shellexpand = "3.1.0"
svix = { version = "1.42.0", default-features = false }
syn = "2.0.52"
strum = { version = "0.26", default-features = false }
tap = "1.0.1"
tempfile = "3.12.0"
testcontainers = "0.23.1"
testcontainers-modules = { version = "0.11.2", default-features = false }
thiserror = "2.0.3"
time = "0.3.36"
tokio = { version = "1.33.0", default-features = false }
tokio-postgres = { version = "0.7.7", default-features = false }
tokio-postgres-rustls = "0.13.0"
tokio-stream = "0.1.14"
tokio-test = { version = "0.4.3" }
tokio-util = "0.7.10"
tonic = "0.12.3"
tonic-build = "0.12.3"
tonic-health = "0.12.3"
tonic-reflection = "0.12.3"
tonic-tracing-opentelemetry = "0.24.0"
tonic-types = "0.12.2"
tonic-web = "0.12.3"
tower = { version = "0.5.0" }
tower-http = { version = "0.6.1", features = ["full"] }
tower-layer = { version = "0.3.3" }
tower-service = { version = "0.3.3" }
tracing = { version = "0.1.39", features = ["log"] }
tracing-futures = "0.2.5"
tracing-log = "0.2.0"
tracing-opentelemetry = { version = "0.28.0" }
tracing-subscriber = { version = "0.3.18", features = ["registry", "tracing-log", "fmt", "env-filter", "json"] }
typetag = "0.2.13"
unic-langid = "0.9"
url = "2.4.1"
uuid = "1.4.1"
uuid7 = "1.0.0"
utoipa = { version = "5.2.0", features = ["axum_extras", "uuid", "debug"] }
utoipa-axum = { version = "0.1.2" }
utoipa-swagger-ui = { version = "8.0.3", features = ["axum"] }
utoipa-redoc = { version = "5.0.0", features = ["axum"] }
utoipa-rapidoc = { version = "5.0.0", features = ["axum"] }
utoipa-scalar = { version = "0.2.0", features = ["axum"] }
# TODO prefix it all
common-build-info = { path = "crates/common-build-info" }
common-domain = { path = "crates/common-domain" }
common-config = { path = "crates/common-config" }
common-eventbus = { path = "crates/common-eventbus" }
common-logging = { path = "crates/common-logging" }
common-grpc = { path = "crates/common-grpc" }
common-grpc-error-as-tonic-macros = { path = "crates/common-grpc-error-as-tonic-macros" }
common-grpc-error-as-tonic-macros-impl = { path = "crates/common-grpc-error-as-tonic-macros-impl" }
metering-grpc = { path = "modules/metering/crates/metering-grpc" }
meteroid-grpc = { path = "modules/meteroid/crates/meteroid-grpc" }
common-utils = { path = "crates/common-utils" }
distributed-lock = { path = "crates/distributed-lock" }
kafka = { path = "crates/kafka" }
metering = { path = "modules/metering" }
diesel-models = { path = "modules/meteroid/crates/diesel-models" }
meteroid-store = { path = "modules/meteroid/crates/meteroid-store" }
meteroid-invoicing = { path = "modules/meteroid/crates/meteroid-invoicing" }