]> git.bitcoin.ninja Git - rust-lightning/blob - lightning/Cargo.toml
Merge pull request #2816 from wpaulino/retryable-holder-sigs
[rust-lightning] / lightning / Cargo.toml
1 [package]
2 name = "lightning"
3 version = "0.0.121"
4 authors = ["Matt Corallo"]
5 license = "MIT OR Apache-2.0"
6 repository = "https://github.com/lightningdevkit/rust-lightning/"
7 description = """
8 A Bitcoin Lightning library in Rust.
9 Does most of the hard work, without implying a specific runtime, requiring clients implement basic network logic, chain interactions and disk storage.
10 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.
11 """
12 edition = "2021"
13
14 [package.metadata.docs.rs]
15 features = ["std"]
16 rustdoc-args = ["--cfg", "docsrs"]
17
18 [features]
19 # Internal test utilities exposed to other repo crates
20 _test_utils = ["regex", "bitcoin/bitcoinconsensus"]
21 # Unlog messages superior at targeted level.
22 max_level_off = []
23 max_level_error = []
24 max_level_warn = []
25 max_level_info = []
26 max_level_debug = []
27 max_level_trace = []
28 # Allow signing of local transactions that may have been revoked or will be revoked, for functional testing (e.g. justice tx handling).
29 # This is unsafe to use in production because it may result in the counterparty publishing taking our funds.
30 unsafe_revoked_tx_signing = []
31 # Override signing to not include randomness when generating signatures for test vectors.
32 _test_vectors = []
33
34 no-std = ["hashbrown", "ahash", "bitcoin/no-std", "core2/alloc", "libm"]
35 std = ["bitcoin/std"]
36
37 # Generates low-r bitcoin signatures, which saves 1 byte in 50% of the cases
38 grind_signatures = []
39
40 default = ["std", "grind_signatures"]
41
42 [dependencies]
43 bitcoin = { version = "0.30.2", default-features = false, features = ["secp-recovery"] }
44
45 hashbrown = { version = "0.13", optional = true }
46 ahash = { version = "0.8", optional = true, default-features = false }
47 hex = { package = "hex-conservative", version = "0.1.1", default-features = false }
48 regex = { version = "1.5.6", optional = true }
49 backtrace = { version = "0.3", optional = true }
50
51 core2 = { version = "0.3.0", optional = true, default-features = false }
52 libm = { version = "0.2", optional = true, default-features = false }
53
54 # Because ahash no longer (kinda poorly) does it for us, (roughly) list out the targets that
55 # getrandom supports and turn on ahash's `runtime-rng` feature for them.
56 [target.'cfg(not(any(target_os = "unknown", target_os = "none")))'.dependencies]
57 ahash = { version = "0.8", optional = true, default-features = false, features = ["runtime-rng"] }
58
59 # Not sure what target_os gets set to for sgx, so to be safe always enable runtime-rng for x86_64
60 # platforms (assuming LDK isn't being used on embedded x86-64 running directly on metal).
61 [target.'cfg(target_arch = "x86_64")'.dependencies]
62 ahash = { version = "0.8", optional = true, default-features = false, features = ["runtime-rng"] }
63
64 [dev-dependencies]
65 regex = "1.5.6"
66
67 [dev-dependencies.bitcoin]
68 version = "0.30.2"
69 default-features = false
70 features = ["bitcoinconsensus", "secp-recovery"]
71
72 [target.'cfg(ldk_bench)'.dependencies]
73 criterion = { version = "0.4", optional = true, default-features = false }
74
75 [target.'cfg(taproot)'.dependencies]
76 musig2 = { git = "https://github.com/arik-so/rust-musig2", rev = "cff11e3" }