-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathCargo.toml
More file actions
46 lines (35 loc) · 1.65 KB
/
Copy pathCargo.toml
File metadata and controls
46 lines (35 loc) · 1.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
[workspace]
resolver = "3"
members = ["odorobo", "odoroboctl"]
[workspace.package]
rust-version = "1.95.0"
[workspace.dependencies]
stable-eyre = "0.2"
clap = { version = "4", features = ["derive", "env"] }
tokio = { version = "1" }
reqwest = { version = "0.13", features = ["json"] }
serde_json = "1.0"
serde = { version = "1.0", features = ["derive"] }
tracing = "0.1"
tracing-subscriber = { version = "0.3", features = [
"env-filter",
"fmt",
"json",
] }
ulid = { version = "1.2", features = ["serde", "uuid"] }
bytesize = { version = "2.3", features = ["serde"] }
# our crates
odorobo = { path = "odorobo" }
# these are for performance optimizations, based on https://nnethercote.github.io/perf-book/build-configuration.html#optimization-level
# these options can take a while to compile (up to 5-10 minutes), so its really only necessary for production binaries.
# also look in .cargo/config.toml for info on microarchitecture optimizations.
[profile.release-optimized]
inherits = "release"
opt-level = 3
lto = "fat"
codegen-units = 1
# we are specifically NOT using panic = "abort" because we need to use catch_unwind for kameo actors on_panic.
# for any crates using kameo actors on_panic, this would literally break the binary.
# For specific crates/binaries this might be something we do, but I (caleb) doubt it.
strip = "symbols" # TODO: this we should talk about doing this, because it makes debugging harder, so if we have a panic in production, the backtrace will likely not be as useful.
incremental = false # this is just to get reproducible builds. incremental compiles aren't consistent and can sometimes be broken when combined with optimizations