X-Git-Url: http://git.bitcoin.ninja/index.cgi?a=blobdiff_plain;f=Cargo.toml;h=afc0092c72da50a1a9fecbf8bfb2edf5daa04104;hb=refs%2Fheads%2F2023-04-dont-ban-cln;hp=63251c618cdb69352283a847bf68b2acaaee3ca3;hpb=02feaebc3c1bc8165c495b80bf1e5c5f4e97e5da;p=rust-lightning diff --git a/Cargo.toml b/Cargo.toml index 63251c61..afc0092c 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,38 +1,42 @@ -[package] -name = "lightning" -version = "0.0.9" -authors = ["Matt Corallo"] -license = "Apache-2.0" -repository = "https://github.com/rust-bitcoin/rust-lightning/" -description = """ -A Bitcoin Lightning library in Rust. -Does most of the hard work, without implying a specific runtime, requiring clients implement basic network logic, chain interactions and disk storage. -Still missing tons of error-handling. See GitHub issues for suggested projects if you want to contribute. Don't have to bother telling you not to use this for anything serious, because you'd have to build a client around it to even try. -""" +[workspace] -[features] -# Supports tracking channels with a non-bitcoin chain hashes. Currently enables all kinds of fun DoS attacks. -non_bitcoin_chain_hash_routing = [] -fuzztarget = ["secp256k1/fuzztarget", "bitcoin/fuzztarget", "bitcoin_hashes/fuzztarget"] -# Unlog messages superior at targeted level. -max_level_off = [] -max_level_error = [] -max_level_warn = [] -max_level_info = [] -max_level_debug = [] +members = [ + "lightning", + "lightning-block-sync", + "lightning-invoice", + "lightning-net-tokio", + "lightning-persister", + "lightning-background-processor", + "lightning-rapid-gossip-sync" +] -[dependencies] -bitcoin = "0.18" -bitcoin_hashes = "0.3" -rand = "0.4" -secp256k1 = "0.12" +exclude = [ + "lightning-custom-message", + "lightning-transaction-sync", + "no-std-check", +] -[dev-dependencies.bitcoin] -version = "0.18" -features = ["bitcoinconsensus"] - -[dev-dependencies] -hex = "0.3" +# 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