-
Notifications
You must be signed in to change notification settings - Fork 82
/
Cargo.toml
291 lines (276 loc) · 13.3 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
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
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
cargo-features = ["edition2024"]
[workspace]
members = [
"apps/hash-graph/bins/cli",
"apps/hash-graph/libs/*",
"libs/@blockprotocol/type-system/rust",
"libs/@local/codec",
"libs/@local/tracing",
"libs/@local/status/rust",
"libs/@local/hash-authorization",
"libs/@local/hash-graph-types/rust",
"libs/@local/hash-validation",
"libs/@local/repo-chores/rust",
"libs/@local/temporal-client",
"libs/@local/temporal-versioning",
"tests/hash-graph-benches",
"tests/hash-graph-integration",
"tests/hash-graph-test-data/rust",
"libs/@local/harpc/wire-protocol",
"libs/@local/harpc/types",
"libs/@local/harpc/net",
"libs/@local/harpc/tower",
"libs/@local/hql/*",
"libs/antsi",
"libs/deer",
"libs/deer/desert",
"libs/deer/json",
"libs/deer/macros",
"libs/error-stack",
"libs/error-stack/macros",
"libs/sarif",
]
default-members = [
"apps/hash-graph/bins/*",
]
resolver = "3"
[workspace.package]
authors = ["HASH"]
version = "0.0.0"
edition = "2024"
license = "AGPL-3"
publish = false
[workspace.dependencies]
# Workspace members
authorization.path = "libs/@local/hash-authorization"
codec.path = "libs/@local/codec"
graph-api.path = "apps/hash-graph/libs/api"
graph-test-data.path = "tests/hash-graph-test-data/rust"
graph-types.path = "libs/@local/hash-graph-types/rust"
graph-type-defs.path = "apps/hash-graph/libs/type-defs"
graph.path = "apps/hash-graph/libs/graph"
harpc-net.path = "libs/@local/harpc/net"
harpc-types.path = "libs/@local/harpc/types"
harpc-wire-protocol.path = "libs/@local/harpc/wire-protocol"
hash-graph-store.path = "apps/hash-graph/libs/store"
hash-status.path = "libs/@local/status/rust"
hash-tracing.path = "libs/@local/tracing"
hql-cst.path = "libs/@local/hql/cst"
hql-diagnostics.path = "libs/@local/hql/diagnostics"
hql-span.path = "libs/@local/hql/span"
repo-chores.path = "libs/@local/repo-chores/rust"
temporal-client.path = "libs/@local/temporal-client"
temporal-versioning.path = "libs/@local/temporal-versioning"
test-server.path = "apps/hash-graph/libs/test-server"
type-fetcher.path = "apps/hash-graph/libs/type-fetcher"
type-system.path = "libs/@blockprotocol/type-system/rust"
validation.path = "libs/@local/hash-validation"
# Pinned workspace members
error-stack = { path = "./libs/error-stack", default-features = false }
# Public dependencies
ahash = { version = "=0.8.11", default-features = false }
ariadne = { version = "=0.4.1", default-features = false }
aws-types = { version = "=1.3.3", default-features = false }
axum = "0.7.5"
axum-core = "0.4.3"
bumpalo = { version = "=3.16.0", default-features = false }
bytes = "1.6.0"
clap_builder = { version = "=4.5.18", default-features = false, features = ["std"] }
criterion = { version = "=0.5.1" }
deadpool = { version = "=0.12.1", default-features = false }
deadpool-postgres = { version = "=0.14.0", default-features = false }
ecow = { version = "=0.2.2", default-features = false }
email_address = { version = "=0.2.9", default-features = false }
enumflags2 = { version = "=0.7.10", default-features = false }
erased-serde = { version = "=0.4.5", default-features = false }
futures-core = { version = "=0.3.30", default-features = false }
futures-io = { version = "=0.3.30", default-features = false }
futures-sink = { version = "=0.3.30", default-features = false }
futures-util = { version = "=0.3.30", default-features = false }
hashbrown = { version = "=0.14.5", features = ["nightly"] }
http = { version = "=1.1.0", default-features = false }
inferno = { version = "=0.11.21", default-features = false }
iso8601-duration = { version = "=0.2.0", default-features = false }
json-number = { version = "=0.4.8", default-features = false }
jsonptr = { version = "=0.6.1", default-features = false }
multiaddr = { version = "=0.18.2", default-features = false }
multistream-select = { version = "=0.13.0", default-features = false }
libp2p-core = { version = "=0.42.0", default-features = false }
libp2p-identity = { version = "=0.2.9", default-features = false }
libp2p-ping = { version = "=0.45.0", default-features = false }
libp2p-swarm = { version = "=0.45.1", default-features = false }
libp2p-yamux = { version = "=0.46.0", default-features = false }
prometheus-client = { version = "=0.22.3", default-features = false }
postgres-types = { version = "=0.2.8", default-features = false }
reqwest = { version = "=0.12.7", default-features = false, features = ["rustls-tls"] }
regex = { version = "=1.10.6", default-features = false, features = ["perf", "unicode"] }
semver = { version = "=1.0.23", default-features = false }
sentry-types = { version = "=0.34.0", default-features = false }
serde = { version = "=1.0.210", default-features = false }
serde_json = { version = "=1.0.128" }
text-size = { version = "=1.1.1", default-features = false }
tokio = { version = "=1.40.0", default-features = false }
tokio-util = { version = "=0.7.12", default-features = false }
tower-layer = { version = "=0.3.3", default-features = false }
tower-service = { version = "=0.3.3", default-features = false }
tracing-appender = { version = "=0.2.3", default-features = false }
tracing-core = { version = "=0.1.32", default-features = false }
tracing-subscriber = { version = "=0.3.18", default-features = false }
url = { version = "=2.5.2", default-features = false }
utoipa = { version = "=4.2.3", default-features = false }
uuid = { version = "=1.10.0", default-features = false }
time = { version = "=0.3.36", default-features = false }
tokio-postgres = { version = "=0.7.12", default-features = false }
tower-http = { version = "=0.6.1", features = ["trace"] }
# Shared third-party dependencies
ansi-to-html = { version = "=0.2.1", default-features = false }
anstyle = { version = "=1.0.8", default-features = false }
anstyle-yansi = { version = "=2.0.1", default-features = false }
approx = { version = "=0.5.1", default-features = false }
async-scoped = { version = "=0.9.0", default-features = false }
async-trait = { version = "=0.1.83", default-features = false }
aws-config = { version = "=1.5.7" }
aws-sdk-s3 = { version = "=1.52.0", default-features = false }
base64 = { version = "=0.22.1", default-features = false }
bitvec = { version = "=1.0.1", default-features = false }
bytes-utils = { version = "=0.1.4", default-features = false }
chrono = { version = "=0.4.38", default-features = false }
clap = { version = "=4.5.18", features = ["std", "color", "help", "usage", "error-context", "suggestions"] }
clap_complete = { version = "=4.5.29", default-features = false }
coverage-helper = { version = "=0.2.2", default-features = false }
criterion-macro = { version = "=0.4.0", default-features = false }
derive-where = { version = "=1.2.7", default-features = false, features = ["nightly"] }
dotenv-flow = { version = "=0.16.2", default-features = false }
expect-test = { version = "=1.5.0", default-features = false }
futures = { version = "=0.3.30", default-features = false }
hifijson = { version = "=0.2.2", default-features = false }
http-body-util = { version = "=0.1.2", default-features = false }
humansize = { version = "=2.1.3", default-features = false }
hyper = { version = "=1.4.1", default-features = false }
include_dir = { version = "=0.7.4", default-features = false }
insta = { version = "=1.40.0", default-features = false }
jsonschema = { version = "=0.20.0", default-features = false }
justjson = { version = "=0.3.0", default-features = false }
lexical = { version = "=7.0.2", default-features = false }
libp2p = { version = "=0.54.1", default-features = false }
libp2p-stream = { version = "=0.2.0-alpha", default-features = false }
logos = { version = "=0.14.2", default-features = false }
memchr = { version = "=2.7.4", default-features = false }
mimalloc = { version = "=0.1.43", default-features = false }
mime = { version = "=0.3.17", default-features = false }
num-traits = { version = "=0.2.19", default-features = false }
once_cell = { version = "=1.20.0", default-features = false }
opentelemetry = { version = "=0.23.0", default-features = false }
opentelemetry-otlp = { version = "=0.16.0", default-features = false }
opentelemetry_sdk = { version = "=0.23.0", default-features = false }
orx-concurrent-vec = { version = "=3.0.1", default-features = false }
owo-colors = { version = "=4.1.0", default-features = false }
paste = { version = "=1.0.15", default-features = false }
pin-project = { version = "=1.1.5", default-features = false }
pin-project-lite = { version = "=0.2.14", default-features = false }
postgres-protocol = { version = "=0.6.7", default-features = false }
pretty_assertions = { version = "=1.4.1", default-features = false, features = ["alloc"] }
proptest = { version = "=1.5.0", default-features = false, features = ["alloc"] }
rand = { version = "=0.8.5", default-features = false }
refinery = { version = "=0.8.14", default-features = false }
rustc_version = { version = "=0.4.1", default-features = false }
scc = { version = "=2.1.17", default-features = false }
sentry = { version = "=0.34.0", default-features = false, features = ["backtrace", "contexts", "debug-images", "panic", "reqwest", "rustls", "tracing", "tower-http"] }
seq-macro = { version = "=0.3.5", default-features = false }
serde-value = { version = "=0.7.0", default-features = false }
serde_plain = { version = "=1.0.2", default-features = false }
serde_with = { version = "=3.9.0", default-features = false }
similar-asserts = { version = "=1.6.0", default-features = false }
spin = { version = "=0.9", default-features = false }
supports-color = { version = "=3.0.1", default-features = false }
supports-unicode = { version = "=3.0.0", default-features = false }
sval = { version = "=2.13.1", default-features = false }
syn = { version = "=2.0.79", default-features = false }
tachyonix = { version = "=0.3.1", default-features = false }
tarpc = { version = "=0.33", default-features = false }
temporal-io-client = { git = "https://github.com/temporalio/sdk-core", rev = "7e3c23f" }
temporal-io-sdk-core-protos = { git = "https://github.com/temporalio/sdk-core", rev = "7e3c23f" }
test-fuzz = { version = "=6.0.0", default-features = false }
test-log = { version = "=0.2.16", default-features = false }
test-strategy = { version = "=0.4.0", default-features = false }
thiserror = { version = "=1.0.64", default-features = false }
tokio-stream = { version = "=0.1.16", default-features = false }
tokio-test = { version = "=0.4.4", default-features = false }
tower = { version = "=0.5.1", default-features = false }
tower-test = { version = "=0.4.0", default-features = false }
tracing = { version = "=0.1.40", default-features = false }
tracing-error = { version = "=0.2.0", default-features = false }
tracing-flame = { version = "=0.2.0", default-features = false }
tracing-opentelemetry = { version = "=0.24.0", default-features = false }
trybuild = { version = "=1.0.99", default-features = false }
tsify = { version = "=0.4.5", default-features = false }
unicode-ident = { version = "=1.0.13", default-features = false }
virtue = { version = "=0.0.17", default-features = false }
walkdir = { version = "=2.5.0", default-features = false }
winnow = { version = "=0.6.20", default-features = false }
[profile.production]
inherits = "release"
lto = "fat"
strip = "none"
[workspace.lints.rust]
nonstandard_style = { level = "warn", priority = -1 }
future_incompatible = { level = "warn", priority = -1 }
unsafe_code = "deny"
unreachable_pub = "warn"
[workspace.lints.cargo]
[workspace.lints.clippy]
all = { level = "warn", priority = -1 }
nursery = { level = "warn", priority = -1 }
pedantic = { level = "warn", priority = -1 }
restriction = { level = "warn", priority = -1 }
# Should be enabled:
absolute_paths = "allow"
allow_attributes_without_reason = "allow"
arithmetic_side_effects = "allow"
as_conversions = "allow"
else_if_without_else = "allow"
enum_variant_names = "allow"
expect_used = "allow"
indexing_slicing = "allow"
let_underscore_must_use = "allow"
missing_assert_message = "allow"
multiple_inherent_impl = "allow"
panic = "allow"
partial_pub_fields = "allow"
unwrap_in_result = "allow"
wildcard_enum_match_arm = "allow"
# Consider enabling:
default_numeric_fallback = "allow"
impl_trait_in_params = "allow"
iter_over_hash_type = "allow"
multiple_unsafe_ops_per_block = "allow"
pattern_type_mismatch = "allow"
shadow_unrelated = "allow"
single_call_fn = "allow"
single_char_lifetime_names = "allow"
tests_outside_test_module = "allow"
unimplemented = "allow"
unreachable = "allow"
# Does not apply to us:
blanket_clippy_restriction_lints = "allow"
exhaustive_enums = "allow"
exhaustive_structs = "allow"
implicit_return = "allow"
missing_docs_in_private_items = "allow"
missing_inline_in_public_items = "allow"
missing_trait_methods = "allow" # Should be enabled per `impl` instead of globally
mod_module_files = "allow" # opposite of `clippy::self_named_module_files`
module_name_repetitions = "allow"
pub_use = "allow"
pub_with_shorthand = "allow" # # opposite of `clippy::pub_without_shorthand`
question_mark_used = "allow"
ref_patterns = "allow"
redundant_pub_crate = "allow" # opposite of `unreachable_pub`
semicolon_outside_block = "allow" # opposite of `clippy::semicolon_inside_block`
separated_literal_suffix = "allow" # opposite of `clippy::unseparated_literal_suffix`
shadow_reuse = "allow"
shadow_same = "allow"
unneeded_field_pattern = "allow" # Actually, the opposite would be a great lint
[workspace.metadata.cargo-shear]
# We use the `futures` crate but the dependencies are required for public dependencies
ignored = ["futures-core", "futures-io", "futures-sink"]