[package] name = "bitcoin" version = "0.29.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 = "2018" exclude = ["tests", "contrib"] # Please don't forget to add relevant features to docs.rs below [features] default = [ "std", "secp-recovery" ] rand-std = ["secp256k1/rand-std"] rand = ["secp256k1/rand"] serde = ["actual-serde", "bitcoin_hashes/serde", "secp256k1/serde"] secp-lowmemory = ["secp256k1/lowmemory"] secp-recovery = ["secp256k1/recovery"] bitcoinconsensus-std = ["bitcoinconsensus/std", "std"] # At least one of std, no-std must be enabled. # # The no-std feature doesn't disable std - you need to turn off the std feature for that by disabling default. # Instead no-std enables additional features required for this crate to be usable without std. # As a result, both can be enabled without conflict. std = ["secp256k1/std", "bitcoin_hashes/std", "bech32/std", "bitcoin-internals/std"] no-std = ["core2/alloc", "bitcoin_hashes/alloc", "secp256k1/alloc"] [package.metadata.docs.rs] features = [ "std", "secp-recovery", "base64", "rand", "serde", "bitcoinconsensus" ] rustdoc-args = ["--cfg", "docsrs"] [dependencies] bitcoin-internals = { path = "../internals" } bech32 = { version = "0.9.0", default-features = false } bitcoin_hashes = { version = "0.11.0", default-features = false } secp256k1 = { version = "0.25.0", default-features = false, features = ["bitcoin_hashes"] } core2 = { version = "0.3.0", optional = true, default-features = false } base64 = { version = "0.13.0", optional = true } bitcoinconsensus = { version = "0.20.2-0.5.0", optional = true, default-features = false } # Do NOT use this as a feature! Use the `serde` feature instead. actual-serde = { package = "serde", version = "1.0.103", default-features = false, features = [ "derive", "alloc" ], optional = true } [dev-dependencies] serde_json = "1.0.0" serde_test = "1.0.19" serde_derive = "1.0.103" secp256k1 = { version = "0.25.0", features = ["recovery"] } bincode = "1.3.1" [target.'cfg(mutate)'.dev-dependencies] mutagen = { git = "https://github.com/llogiq/mutagen" } [[example]] name = "bip32" [[example]] name = "handshake" required-features = ["std", "rand-std"] [[example]] name = "ecdsa-psbt" required-features = ["std", "bitcoinconsensus"] [[example]] name = "taproot-psbt" required-features = ["std", "rand-std", "bitcoinconsensus"]