members = [
"lightning",
+ "lightning-block-sync",
+ "lightning-invoice",
"lightning-net-tokio",
+ "lightning-persister",
+ "lightning-background-processor",
+ "lightning-rapid-gossip-sync"
]
+
+exclude = [
+ "lightning-custom-message",
+ "lightning-transaction-sync",
+ "no-std-check",
+]
+
+# Our tests do actual crypto and lots of work, the tradeoff for -O2 is well
+# worth it. Note that we only apply optimizations to dependencies, not workspace
+# crates themselves.
+# https://doc.rust-lang.org/cargo/reference/profiles.html#profile-selection
+[profile.dev.package."*"]
+opt-level = 2
+
+# It appears some minimal optimizations are required to inline many std methods
+# and reduce the otherwise-substantial time spent in std self-checks. We do so
+# here but ensure we keep LTO disabled as otherwise we're re-optimizing all our
+# dependencies every time we make any local changes.
+[profile.dev]
+opt-level = 1
+lto = "off"
+
+[profile.release]
+opt-level = 3
+lto = true
+panic = "abort"
+
+[profile.bench]
+opt-level = 3
+codegen-units = 1
+lto = true