rust-lightning/Cargo.toml
Matt Corallo 4624caf5a2 Move Payment{Hash,Preimage,Secret} into a new crate
`lightning-invoice` currently has a dependency on the entire
`lightning` crate just because it wants to use some of the useful
types from it. This is obviously backwards and leads to some
awkwardness like the BOLT 11 invoice signing API in the `lightning`
crate taking a `[u5]` rather than a `Bolt11Invoice`.

This is the first step towards fixing that - moving the common
types we need into a new `lightning-types` crate which both can
depend on.

Since we're using a new crate and can't depend on the existing
`lightning` hex utility to implement `Display`, we also take this
opportunity to switch to the new `Display` impl macro in
`hex_conservative`.
2024-08-13 12:54:59 +00:00

67 lines
1.7 KiB
TOML

[workspace]
resolver = "2"
members = [
"lightning",
"lightning-types",
"lightning-block-sync",
"lightning-invoice",
"lightning-net-tokio",
"lightning-persister",
"lightning-background-processor",
"lightning-rapid-gossip-sync",
"lightning-custom-message",
"lightning-transaction-sync",
"possiblyrandom",
]
exclude = [
"no-std-check",
"msrv-no-dev-deps-check",
"bench",
]
# 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"
[patch.crates-io.possiblyrandom]
path = "possiblyrandom"
[workspace.lints.rust.unexpected_cfgs]
level = "forbid"
# When adding a new cfg attribute, ensure that it is added to this list.
#
# Note that Cargo automatically declares corresponding cfgs for every feature
# defined in the member-level [features] tables as "expected".
check-cfg = [
"cfg(fuzzing)",
"cfg(secp256k1_fuzz)",
"cfg(hashes_fuzz)",
"cfg(test)",
"cfg(debug_assertions)",
"cfg(c_bindings)",
"cfg(ldk_bench)",
"cfg(taproot)",
"cfg(async_signing)",
"cfg(require_route_graph_test)",
"cfg(dual_funding)",
"cfg(splicing)",
"cfg(async_payments)",
]