[package] name = "bitcoin" version = "0.33.0-alpha.0" authors = ["Andrew Poelstra "] license = "CC0-1.0" repository = "https://github.com/rust-bitcoin/rust-bitcoin/" documentation = "https://docs.rs/bitcoin/" description = "General purpose library for using and interoperating with Bitcoin." categories = ["cryptography::cryptocurrencies"] keywords = [ "crypto", "bitcoin" ] readme = "../README.md" edition = "2021" rust-version = "1.63.0" exclude = ["tests", "contrib"] # If you change features or optional dependencies in any way please update the "# Cargo features" section in lib.rs as well. [features] default = [ "std", "secp-recovery" ] std = ["base58/std", "bech32/std", "hashes/std", "hex/std", "internals/std", "io/std", "primitives/std", "secp256k1/std", "units/std", "base64?/std", "bitcoinconsensus?/std"] rand-std = ["secp256k1/rand", "std"] rand = ["secp256k1/rand"] serde = ["base64", "dep:serde", "hashes/serde", "internals/serde", "primitives/serde", "secp256k1/serde", "units/serde"] secp-lowmemory = ["secp256k1/lowmemory"] secp-recovery = ["secp256k1/recovery"] arbitrary = ["dep:arbitrary", "units/arbitrary", "primitives/arbitrary"] [dependencies] base58 = { package = "base58ck", path = "../base58", default-features = false, features = ["alloc"] } bech32 = { version = "0.11.0", default-features = false, features = ["alloc"] } hashes = { package = "bitcoin_hashes", path = "../hashes", default-features = false, features = ["alloc", "hex"] } hex = { package = "hex-conservative", version = "0.3.0", default-features = false, features = ["alloc"] } internals = { package = "bitcoin-internals", path = "../internals", features = ["alloc", "hex"] } io = { package = "bitcoin-io", path = "../io", default-features = false, features = ["alloc", "hashes"] } primitives = { package = "bitcoin-primitives", path = "../primitives", default-features = false, features = ["alloc", "hex"] } secp256k1 = { version = "0.30.0", default-features = false, features = ["hashes", "alloc", "rand"] } units = { package = "bitcoin-units", path = "../units", default-features = false, features = ["alloc"] } arbitrary = { version = "1.4", optional = true } base64 = { version = "0.22.0", optional = true, default-features = false, features = ["alloc"] } # `bitcoinconsensus` version includes metadata which indicates the version of Core. Use `cargo tree` to see it. bitcoinconsensus = { version = "0.106.0", default-features = false, optional = true } serde = { version = "1.0.103", default-features = false, features = [ "derive", "alloc" ], optional = true } [dev-dependencies] internals = { package = "bitcoin-internals", path = "../internals", features = ["test-serde"] } serde_json = "1.0.0" serde_test = "1.0.19" bincode = "1.3.1" hex_lit = "0.1.1" [package.metadata.docs.rs] all-features = true rustdoc-args = ["--cfg", "docsrs"] [[example]] name = "bip32" [[example]] name = "handshake" required-features = ["rand-std"] [[example]] name = "ecdsa-psbt" required-features = ["std", "bitcoinconsensus"] [[example]] name = "ecdsa-psbt-simple" required-features = ["rand-std"] [[example]] name = "create-p2wpkh-address" required-features = ["rand-std"] [[example]] name = "sign-tx-segwit-v0" required-features = ["rand-std"] [[example]] name = "sign-tx-taproot" required-features = ["rand-std"] [[example]] name = "taproot-psbt" required-features = ["rand-std", "bitcoinconsensus"] [[example]] name = "taproot-psbt-simple" required-features = ["rand-std"] [[example]] name = "sighash" [[example]] name = "io" required-features = ["std"] [[example]] name = "script" required-features = ["std"] [lints.rust] unexpected_cfgs = { level = "deny", check-cfg = ['cfg(bench)', 'cfg(fuzzing)', 'cfg(kani)'] }