-
Notifications
You must be signed in to change notification settings - Fork 54
Expand file tree
/
Copy pathCargo.toml
More file actions
239 lines (234 loc) · 9.35 KB
/
Cargo.toml
File metadata and controls
239 lines (234 loc) · 9.35 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
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
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
[workspace]
resolver = "2"
members = [
# meteroid
"modules/meteroid",
"modules/meteroid/crates/meteroid-grpc",
"modules/meteroid/crates/meteroid-tax",
"modules/meteroid/crates/stripe-client",
"modules/meteroid/crates/hubspot-client",
"modules/meteroid/crates/pennylane-client",
"modules/meteroid/crates/diesel-models",
"modules/meteroid/crates/meteroid-store",
"modules/meteroid/crates/meteroid-store-macros",
"modules/meteroid/crates/meteroid-invoicing",
"modules/meteroid/crates/meteroid-mailer",
"modules/meteroid/crates/meteroid-oauth",
"modules/meteroid/crates/meteroid-seeder",
"modules/meteroid/crates/meteroid-middleware",
# metering
"modules/metering",
"modules/metering/crates/metering-grpc",
# adapters
"modules/adapters/openstack",
"modules/adapters/slurm-collector",
# shared
"crates/kafka",
"crates/golden",
"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 = "2024"
rust-version = "1.94"
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.8.1", features = ["json", "query", "tower-log", "http1"] }
axum-extra = { version = "0.12.5", default-features = false }
axum-valid = "0.24.0"
parquet = { version = "58.0.0", default-features = false }
base62 = "2.2.3"
base64 = "0.22.0"
backon = "1.5.2"
build-info = "0.0.43"
build-info-build = "0.0.43"
bytes = "1.10.1"
cached = "0.59.0"
chacha20poly1305 = "0.10.1"
chrono = { version = "0.4.31", default-features = false }
chrono-tz = { version = "0.10.3" }
clap = "4.5.16"
clickhouse = { version = "0.15.0", default-features = false }
ctor = "0.9.1"
deadpool-postgres = "0.14.1"
deadpool-runtime = "0.3.1"
diesel = { version = "2.3.7", features = ["chrono", "uuid", "serde_json", "numeric"] }
diesel-async = { version = "0.8.0", features = ["postgres", "deadpool"] }
diesel-derive-enum = { version = "2.1.0", features = ["postgres"] }
diesel_migrations = { version = "2.3.1", features = ["postgres"] }
diesel-derive-newtype = { version = "2.1.2" }
dotenvy = "0.15.7"
env_logger = "0.11.5"
encoding_rs = "0.8"
envconfig = "0.11.0"
error-stack = "0.7.0"
ed25519-dalek = { version = "2.1", default-features = false, features = ["pkcs8", "pem", "rand_core"] }
educe = { version = "0.6.0", default-features = false, features = ["Default"] }
fake = "5.1.0"
fastrand = "2.0.1"
fixnum = { version = "0.9.3", default-features = false }
fluent = "0.17"
fluent-static = "0.5.1"
fred = { version = "10.1.0", features = ["enable-rustls"] }
futures = "0.3.28"
futures-lite = "2.3.0"
futures-util = { version = "0.3.29", features = [] }
governor = "0.10.0"
hex = "0.4.3"
hmac = "0.13.0"
hmac-sha256 = "1.1.7"
http = { version = "1.3.1" }
http-body = "1.0.1"
humantime = { version = "2.3.0" }
hyper = { version = "1.7.0", default-features = false }
image = "0.25.2"
ordermap = "1.0.0"
init-tracing-opentelemetry = { version = "0.36.0", features = ["tracing_subscriber_ext"] }
axum-tracing-opentelemetry = { version = "0.33.0" }
insta = { version = "1.43.1", features = ["json"] }
itertools = "0.14.0"
jsonwebtoken = { version = "10.0.0", default-features = false }
lapin = "4.1.0"
lazy_static = "1.5.0"
lettre = { version = "0.11.21", default-features = false }
log = "0.4.20"
mockall = "0.14.0"
moka = { version = "0.12.10", features = ["log", "logging", "sync"] }
nanoid = "0.4.0"
nonzero_ext = { version = "0.3.0", default-features = false }
oauth2 = "5.0.0"
oauth2-reqwest = "0.1.0-alpha.3"
o2o = "0.5.3"
object_store = { version = "0.13.2", default-features = false }
once_cell = "1.18.0"
opentelemetry = { version = "0.31.0", features = ["metrics", "trace", "logs"] }
opentelemetry-otlp = { version = "0.31.0", features = ["trace", "metrics", "logs"] }
opentelemetry_sdk = { version = "0.31.0", features = ["trace", "metrics", "rt-tokio", "rt-tokio-current-thread"] }
opentelemetry-appender-tracing = { version = "0.31.1" }
opentelemetry-resource-detectors = { version = "0.10.0" }
paste = "1.0.15"
pbjson-build = "0.9.0"
pin-project = "1.1.3"
proc-macro2 = { version = "1.0.78" }
prost = "0.14.1"
prost-build = "0.14.1"
prost-types = "0.14.1"
quick_cache = "0.6.2"
quote = "1.0.35"
rand = "0.10.0"
rand_chacha = "0.10.0"
rand_distr = "0.6.0"
rdkafka = "0.39.0"
refinery-core = { version = "0.9.0" }
refinery = { version = "0.9.0", default-features = false }
reqwest = { version = "0.13.2", default-features = false }
reqwest-retry = { version = "0.9.1", default-features = false }
reqwest-middleware = { version = "0.5.1", default-features = false }
rstest = "0.26.1"
rust_decimal = "1.32.0"
rust_decimal_macros = "1.32.0"
rust_iso3166 = "0.1.14"
rustls = { version = "0.23.12", default-features = false }
rusty-money = "0.5.0"
sailfish = "0.10.0"
sealed = "0.6.0"
secrecy = { version = "0.10.3", git = "https://github.com/iqlusioninc/crates", rev = "0e9c9fd6d313381273fa882df07300f2a01c344b", default-features = false } # waiting for release 0.10.4 for pr #1234
segment = { version = "0.2.3" }
serde = { version = "1.0.189", default-features = false }
serde-enum-str = "0.5.0"
serde_json = { version = "1.0.107", features = ["preserve_order"] }
serde_plain = "1.0.2"
serde_path_to_error = "0.1.14"
serde_with = "3.11.0"
serde_qs = "1.0.0"
serde_html_form = "0.4.0"
serde_yaml = "0.9.30"
sha2 = "0.11.0"
shellexpand = "3.1.0"
svix = { version = "1.90.0", default-features = false }
syn = "2.0.52"
strum = { version = "0.28", default-features = false }
tap = "1.0.1"
testcontainers = { version = "0.27.1", features = ["watchdog"] }
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-util = "0.7.10"
tonic = "0.14.2"
tonic-health = "0.14.2"
tonic-reflection = "0.14.2"
tonic-tracing-opentelemetry = "0.32.0"
tonic-web = "0.14.2"
tonic-prost = "0.14.2"
tonic-prost-build = "0.14.2"
tower = { version = "0.5.0" }
tower-http = { version = "0.6.1", features = ["full"] }
tower-layer = { version = "0.3.3" }
tracing = { version = "0.1.39", features = ["log"] }
tracing-log = "0.2.0"
tracing-subscriber = { version = "0.3.18", features = ["registry", "tracing-log", "fmt", "env-filter", "json"] }
typetag = "0.2.13"
# this is transitive of typst-pdf, newer version fails the compilation https://github.com/meteroid-oss/meteroid/actions/runs/18858382946/job/54917356068
subsetter = "=0.2.3"
# ecow 0.2.7 adds extra AsRef<_> impls on EcoString, making `self.as_ref().repr()` in
# typst-library 0.14.x ambiguous (E0282) under Rust 1.94. Pin to the last working release.
ecow = "=0.2.6"
typst = { version = "0.14.1" }
typst-pdf = { version = "0.14.1" }
typst-svg = { version = "0.14.1" }
typst-as-lib = { version = "0.15.0", features = [] }
derive_typst_intoval = { version = "0.6.0", features = [] }
unic-langid = "0.9"
url = "2.5"
urlencoding = "2.1"
uuid = "1.18"
utoipa = { version = "5.4.0", git = "https://github.com/meteroid-oss/utoipa", rev = "1010b31ae7f8d6010778382c74ec4bd7ff207265", features = ["axum_extras", "uuid", "debug", "chrono", "decimal", "tagged_discriminator"] }
utoipa-axum = { version = "0.2.0", git = "https://github.com/meteroid-oss/utoipa", rev = "1010b31ae7f8d6010778382c74ec4bd7ff207265" }
utoipa-scalar = { version = "0.3.0", git = "https://github.com/meteroid-oss/utoipa", rev = "1010b31ae7f8d6010778382c74ec4bd7ff207265", features = ["axum"] }
validator = { version = "0.20.0" }
# TODO prefix it all
golden = { path = "crates/golden" }
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-store-macros = { path = "modules/meteroid/crates/meteroid-store-macros" }
meteroid-invoicing = { path = "modules/meteroid/crates/meteroid-invoicing" }
meteroid-mailer = { path = "modules/meteroid/crates/meteroid-mailer" }
meteroid-middleware = { path = "modules/meteroid/crates/meteroid-middleware" }
stripe-client = { path = "modules/meteroid/crates/stripe-client" }
meteroid-oauth = { path = "modules/meteroid/crates/meteroid-oauth" }
meteroid-seeder = { path = "modules/meteroid/crates/meteroid-seeder" }
hubspot-client = { path = "modules/meteroid/crates/hubspot-client" }
pennylane-client = { path = "modules/meteroid/crates/pennylane-client" }
meteroid-tax = { path = "modules/meteroid/crates/meteroid-tax" }
[patch.crates-io]
# add patches here