-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathCargo.toml
More file actions
103 lines (93 loc) · 3.65 KB
/
Copy pathCargo.toml
File metadata and controls
103 lines (93 loc) · 3.65 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
[workspace]
resolver = "2"
members = [
"crates/escurel-md",
"crates/escurel-obs",
"crates/escurel-storage",
"crates/escurel-index",
"crates/escurel-embed",
"crates/escurel-auth",
"crates/escurel-quota",
"crates/escurel-types",
"crates/escurel-admin",
"crates/escurel-server",
"crates/escurel-cli",
"crates/escurel-client",
"crates/escurel-tui",
"crates/escurel-demo-agent",
"crates/escurel-explore-bff",
"crates/escurel-crdt",
"crates/escurel-test-support",
"crates/escurel-runner-core",
"crates/escurel-runner-harness",
"crates/escurel-runner-workflow",
"crates/escurel-runner",
"crates/escurel-loader",
"crates/escurel-eval",
"examples/echo-app",
]
[workspace.package]
edition = "2024"
# Bumped 1.88 -> 1.91 to admit the `kreuzberg` document extractor crate
# (4.9.9 declares rust-version 1.91). Built toolchains + the substrate golden
# image must be >= 1.91. See docs/notes/discovered/2026-06-21-kreuzberg-msrv-191.md.
rust-version = "1.91"
version = "1.0.0"
license = "BUSL-1.1"
authors = ["DataZoo GmbH <hello@data-zoo.de>"]
repository = "https://github.com/DataZooDE/escurel"
homepage = "https://github.com/DataZooDE/escurel"
[workspace.lints.rust]
unsafe_code = "forbid"
unused_must_use = "deny"
[workspace.lints.clippy]
all = { level = "warn", priority = -1 }
[profile.release]
lto = "thin"
codegen-units = 1
strip = "symbols"
# Disk discipline. This workspace links ~287 test/bin executables (172
# `tests/*.rs` files, each its own crate + binary). Under the default
# `debug = 2`, every one of them embedded a full copy of the DWARF for the
# whole dependency graph: a sampled test binary was 704 MB, of which 569 MB
# (81%) was `.debug_*` sections. One built worktree cost ~78 GB, and the
# agent fan-out multiplied that by the number of worktrees.
#
# `line-tables-only` keeps the file:line mapping that makes a test-failure
# backtrace useful and drops the variable/type DWARF that only an
# interactive debugger consumes. Dependencies get no debuginfo at all —
# their symbol *names* survive (that's the symtab, not debuginfo), so
# backtraces through dep frames still read fine, they just lose file:line.
#
# Need a real debugger? `cargo test --profile dev-debug` (below). See
# docs/notes/discovered/2026-08-02-cargo-target-disk-blowup.md.
[profile.dev]
debug = "line-tables-only"
[profile.dev.package."*"]
debug = false
# Opt-in escape hatch: full debuginfo for gdb/lldb sessions. Builds into a
# separate `target/dev-debug/` dir, so it costs disk only while you use it —
# `cargo clean --profile dev-debug` when done.
[profile.dev-debug]
inherits = "dev"
debug = 2
[profile.dev-debug.package."*"]
debug = true
# The test harness pays for a 2048-bit RSA keypair on every
# `EscurelProcess::spawn` with `AuthMode::TestIssuer` (163 call sites) —
# `escurel-test-support`'s in-process OIDC issuer signs its JWTs with a
# freshly generated key. At the default dev opt-level of 0, `rsa` +
# `num-bigint-dig` run their bignum arithmetic unoptimized, and that keygen
# measures a mean of 4.88s (median 3.01s, max 9.73s). At opt-level 3 the
# same keygen is a mean of 0.23s — a ~21x difference, and it was the single
# largest line item in the suite's CPU time.
#
# Only these two packages are lifted, not the whole dependency graph: they
# are pure-computation crates well outside the code under test, so
# optimizing them costs a one-off compile and changes nothing a test can
# observe. Our own crates stay at opt-level 0 — debuggable backtraces and
# fast incremental rebuilds are worth more there than throughput.
[profile.dev.package.rsa]
opt-level = 3
[profile.dev.package.num-bigint-dig]
opt-level = 3