X-Git-Url: http://git.bitcoin.ninja/index.cgi?a=blobdiff_plain;f=Cargo.toml;h=ec9edb3ac33076af7833898f9c5347db4f34fda5;hb=01814dcef28fd13e98223cb1fbc1d2d6abe3776d;hp=850d05f95df4f9c54bb5e1e0878257f0f4e6548c;hpb=c564f9fd59e68f1e5695705988a6fad3dcbc0c3f;p=rust-lightning diff --git a/Cargo.toml b/Cargo.toml index 850d05f9..ec9edb3a 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,29 +1,44 @@ -[package] -name = "lightning" -version = "0.0.3" -authors = ["Matt Corallo"] -license = "Apache-2.0" -repository = "https://github.com/TheBlueMatt/rust-lightning/" -description = """ -A Bitcoin Lightning implementation in Rust. -Still super-early code-dump quality and is missing large chunks. See README in git repo 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 finish building it to even try. -""" -build = "build.rs" +[workspace] +resolver = "2" -[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"] +members = [ + "lightning", + "lightning-block-sync", + "lightning-invoice", + "lightning-net-tokio", + "lightning-persister", + "lightning-background-processor", + "lightning-rapid-gossip-sync", + "lightning-custom-message", + "lightning-transaction-sync", + "possiblyrandom", +] -[dependencies] -bitcoin = "0.13" -rust-crypto = "0.2" -rand = "0.4" -secp256k1 = "0.9" +exclude = [ + "no-std-check", + "msrv-no-dev-deps-check", + "bench", +] -[build-dependencies] -gcc = "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 -[dev-dependencies.bitcoin] -version = "0.13" -features = ["bitcoinconsensus"] +# 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"