Repository navigation
Expand file tree
/
Copy pathCargo.toml
More file actions
61 lines (54 loc) · 2.1 KB
/
Copy pathCargo.toml
File metadata and controls
61 lines (54 loc) · 2.1 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
[workspace]
resolver = "2"
members = [
"packages/core-rust",
"packages/server-rust",
]
[workspace.package]
version = "2.0.0"
edition = "2021"
license = "Apache-2.0"
repository = "https://github.com/topgunbuild/topgun"
[workspace.lints.clippy]
# The groups sit one priority below the individual entries, so an entry that names
# a single lint (the two `deny` lines below) overrides the group it belongs to.
all = { level = "warn", priority = -1 }
pedantic = { level = "warn", priority = -1 }
# Adopted per project lint-strictness policy; rationale in CONTRIBUTING.md
# § Lint strictness policy (clippy). All three guard against unfinished /
# debug-leftover code reaching production paths; zero existing fires in
# production code at adoption time.
dbg_macro = "warn"
todo = "warn"
unimplemented = "warn"
# Denied explicitly, so the rule depends neither on group membership nor on
# `-D warnings`: a lock guard alive across an `.await` can block a runtime worker
# thread, and one blocked worker can stop the whole server. The guard types
# `await_holding_invalid_type` looks for are listed in the root `clippy.toml`.
# Rationale and measured limits in CONTRIBUTING.md § Lint strictness policy.
await_holding_lock = "deny"
await_holding_invalid_type = "deny"
[workspace.lints.rust]
unsafe_code = "forbid"
[workspace.dependencies]
madsim = "0.2.34"
[profile.release]
lto = true
codegen-units = 1
strip = true
# opt-level defaults to 3 for release — kept explicit-by-omission to protect
# the load-harness perf gates (p99 < 500 ms, ops/sec baselines). Do NOT switch
# to opt-level "z"/"s" or panic = "abort".
[profile.release-with-debug]
inherits = "release"
debug = true
# Inherit release LTO/codegen settings but keep debug symbols for flamegraph
# profiling; strip = false ensures debug info is not stripped away.
strip = false
# Faster builds for simulation runs: opt-level=1 reduces compile time vs release
# while still being fast enough for large test suites. debug-assertions=true
# catches invariant violations that release mode would silently skip.
[profile.ci-sim]
inherits = "dev"
opt-level = 1
debug-assertions = true