-
Notifications
You must be signed in to change notification settings - Fork 25
/
Cargo.toml
179 lines (175 loc) 路 6.05 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
[workspace]
resolver = "2"
members = [
# meteroid
"modules/meteroid",
"modules/meteroid/crates/meteroid-grpc",
"modules/meteroid/crates/meteroid-migrations",
"modules/meteroid/crates/stripe-client",
"modules/meteroid/crates/diesel-models",
"modules/meteroid/crates/meteroid-store",
# metering
"modules/metering",
"modules/metering/crates/metering-grpc",
# 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-repository",
"crates/common-utils",
"crates/distributed-lock",
# extra
"extra/generator",
]
[workspace.package]
license = "AGPL-3.0-only"
edition = "2021"
rust-version = "1.77"
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.6.20", default-features = false }
backon = "0.4.1"
base62 = "2.0.2"
base64 = "0.22.0"
bigdecimal = "0.4.3"
blake3 = "1.5.0"
build-info = "0.0.36"
build-info-build = "0.0.36"
bytes = "1.5.0"
cached = "0.51.1"
chacha20poly1305 = "0.10.1"
chrono = { version = "0.4.31", default-features = false }
chrono-tz = { version = "0.8.5" }
clickhouse-rs = "1.1.0-alpha.1"
deadpool-postgres = "0.13.2"
diesel = { version = "2.1.0", features = ["chrono", "uuid", "serde_json", "numeric"] }
diesel-async = { version = "0.3.2", features = ["postgres", "deadpool"] } # avoid updating while waiting for https://github.com/weiznich/diesel_async/issues/103. This impacts PlanVersion and WebhookOutEndpoint
diesel-derive-enum = { version = "2.1.0", features = ["postgres"] }
dotenvy = "0.15.7"
envconfig = "0.10.0"
error-stack = "0.4.1"
fang = { version = "0.10.4", default-features = false }
fastrand = "2.0.1"
futures = "0.3.28"
futures-util = { version = "0.3.29", features = [] }
headers = "0.3.9"
hex = "0.4.3"
hmac = "0.12.1"
hmac-sha256 = "1.1.7"
http = { version = "0.2.10" }
http-body = "0.4.5"
http-types = "2.12.0"
humantime = { version = "2.1.0" }
hyper = { version = "0.14.27", default-features = false }
init-tracing-opentelemetry = { version = "0.18.0", features = ["tracing_subscriber_ext"] }
itertools = "0.13.0"
jsonwebtoken = "9.2.0"
lazy_static = "1"
log = "0.4.20"
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"
o2o = "0.4.1"
object_store = { version = "0.9.0", default-features = false }
once_cell = "1.18.0"
opentelemetry = { version = "0.22.0", features = ["metrics", "trace", "logs"] }
opentelemetry-otlp = { version = "0.15.0", features = ["trace", "metrics", "logs"] }
opentelemetry_sdk = { version = "0.22.1", features = ["trace", "metrics", "rt-tokio", "rt-tokio-current-thread"] }
pbjson-build = "0.6.2"
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.12.1"
prost-build = "0.12.1"
prost-types = "0.12.1"
quick_cache = "0.5.1"
quote = "1.0.35"
rand = "0.8.5"
rdkafka = "0.36.0"
redis = { version = "0.25.0", default-features = false }
refinery = { version = "0.8.11", default-features = false }
regex = "1"
reqwest = { version = "0.12.3", default-features = false }
reqwest-middleware = "0.3.0"
reqwest-retry = "0.5.0"
ring = "0.17.4"
rstest = "0.19.0"
rust_decimal = "1.32.0"
rust_decimal_macros = "1.32.0"
rustls = { version = "0.23.4", default-features = false }
secrecy = "0.8.0"
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_qs = "0.13.0"
serde_yaml = "0.9.30"
sha2 = "0.10.8"
shellexpand = "3.1.0"
syn = "2.0.52"
tap = "1.0.1"
testcontainers = "0.15.0"
testcontainers-modules = { version = "0.3.2", default-features = false }
thiserror = "1.0.49"
time = "0.3.30"
tokio = { version = "1.33.0", default-features = false }
tokio-postgres = { version = "0.7.7", default-features = false }
tokio-postgres-rustls = "0.12.0"
tokio-stream = "0.1.14"
tokio-test = { version = "0.4.3" }
tokio-util = "0.7.10"
tonic = "0.10.2"
tonic-build = "0.10.2"
tonic-health = "0.10.2"
tonic-reflection = "0.10.2"
tonic-tracing-opentelemetry = "0.14.1" # do not update https://github.com/davidB/tracing-opentelemetry-instrumentation-sdk/issues/122
tonic-types = "0.11.0"
tonic-web = "0.10.2"
tower = { version = "0.4.13" }
tower-http = { version = "0.4.4", features = ["full"] }
tower-layer = { version = "0.3.2" }
tower-service = { version = "0.3.2" }
tracing = "0.1.39"
tracing-futures = "0.2.5"
tracing-log = "0.2.0"
tracing-opentelemetry = { version = "0.23.0" }
tracing-subscriber = { version = "0.3.17", features = ["registry", "tracing-log", "fmt", "env-filter", "json"] }
typetag = "0.2.13"
url = "2.4.1"
uuid = "1.4.1"
uuid7 = "1.0.0"
ndarray = "0.15.6"
ndarray-interp = "0.4.1"
rand_distr = "0.4.3"
fake = "2.9.2"
rand_chacha = "0.3.1"
# 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-repository = { path = "crates/common-repository" }
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" }
meteroid-migrations = { path = "modules/meteroid/crates/meteroid-migrations" }
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" }