[package]
edition = "2018"
name = "bitcoin"
version = "0.30.3"
authors = ["Andrew Poelstra <apoelstra@wpsoftware.net>"]
build = "build.rs"
exclude = [
"tests",
"contrib",
]
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "General purpose library for using and interoperating with Bitcoin."
documentation = "https://docs.rs/bitcoin/"
readme = "README.md"
keywords = [
"crypto",
"bitcoin",
]
categories = ["cryptography::cryptocurrencies"]
license = "CC0-1.0"
repository = "https://github.com/rust-bitcoin/rust-bitcoin/"
[package.metadata.docs.rs]
all-features = true
rustdoc-args = [
"--cfg",
"docsrs",
]
[features]
bitcoinconsensus-std = [
"bitcoinconsensus/std",
"std",
]
default = [
"std",
"secp-recovery",
]
no-std = [
"core2",
"bitcoin_hashes/alloc",
"bitcoin_hashes/core2",
"secp256k1/alloc",
]
rand = ["secp256k1/rand"]
rand-std = ["secp256k1/rand-std"]
secp-lowmemory = ["secp256k1/lowmemory"]
secp-recovery = ["secp256k1/recovery"]
serde = [
"actual-serde",
"bitcoin_hashes/serde",
"secp256k1/serde",
]
std = [
"secp256k1/std",
"bitcoin_hashes/std",
"bech32/std",
"bitcoin-internals/std",
]
[lib]
name = "bitcoin"
path = "src/lib.rs"
[[example]]
name = "bip32"
path = "examples/bip32.rs"
[[example]]
name = "ecdsa-psbt"
path = "examples/ecdsa-psbt.rs"
required-features = [
"std",
"bitcoinconsensus",
]
[[example]]
name = "handshake"
path = "examples/handshake.rs"
required-features = [
"std",
"rand-std",
]
[[example]]
name = "taproot-psbt"
path = "examples/taproot-psbt.rs"
required-features = [
"std",
"rand-std",
"bitcoinconsensus",
]
[dependencies.actual-serde]
version = "1.0.103"
features = [
"derive",
"alloc",
]
optional = true
default-features = false
package = "serde"
[dependencies.base64]
version = "0.13.0"
optional = true
[dependencies.bech32]
version = "0.9.0"
default-features = false
[dependencies.bitcoin-internals]
version = "0.1.0"
package = "bitcoin-private"
[dependencies.bitcoin_hashes]
version = "0.12.0"
default-features = false
[dependencies.bitcoinconsensus]
version = "0.20.2-0.5.0"
optional = true
default-features = false
[dependencies.core2]
version = "0.3.0"
features = ["alloc"]
optional = true
default-features = false
[dependencies.hex]
version = "0.2.0"
features = ["alloc"]
default-features = false
package = "hex-conservative"
[dependencies.hex_lit]
version = "0.1.1"
[dependencies.secp256k1]
version = "0.27.0"
features = ["bitcoin_hashes"]
default-features = false
[dev-dependencies.bincode]
version = "1.3.1"
[dev-dependencies.serde_derive]
version = "1.0.103"
[dev-dependencies.serde_json]
version = "1.0.0"
[dev-dependencies.serde_test]
version = "1.0.19"
[lints.clippy]
legacy_numeric_constants = "allow"
manual_range_contains = "allow"
match_like_matches_macro = "allow"
needless_question_mark = "allow"
precedence = "allow"
[lints.rust.unexpected_cfgs]
level = "deny"
priority = 0
check-cfg = [
"cfg(bench)",
"cfg(fuzzing)",
"cfg(kani)",
"cfg(rust_v_1_46)",
"cfg(rust_v_1_53)",
"cfg(rust_v_1_60)",
]