[package] name = "bdk" version = "0.3.1-dev" edition = "2018" authors = ["Alekos Filini ", "Riccardo Casatta "] homepage = "https://bitcoindevkit.org" repository = "https://github.com/bitcoindevkit/bdk" documentation = "https://docs.rs/bdk" description = "A modern, lightweight, descriptor-based wallet library" keywords = ["bitcoin", "wallet", "descriptor", "psbt"] readme = "README.md" license = "MIT" [dependencies] bdk-macros = { path = "./macros" } log = "^0.4" miniscript = "4.0" bitcoin = { version = "^0.25.2", features = ["use-serde"] } serde = { version = "^1.0", features = ["derive"] } serde_json = { version = "^1.0" } rand = "^0.7" # Optional dependencies sled = { version = "0.34", optional = true } electrum-client = { version = "0.5.0-beta.1", optional = true } reqwest = { version = "0.11", optional = true, features = ["json"] } futures = { version = "0.3", optional = true } async-trait = { version = "0.1", optional = true } rocksdb = { version = "0.14", optional = true } # pin cc version to 1.0.62 because 1.0.63 break rocksdb build cc = { version = "=1.0.62", optional = true } socks = { version = "0.3", optional = true } lazy_static = { version = "1.4", optional = true } tiny-bip39 = { version = "^0.8", optional = true } # Platform-specific dependencies [target.'cfg(not(target_arch = "wasm32"))'.dependencies] tokio = { version = "1.0", features = ["rt"] } [target.'cfg(target_arch = "wasm32")'.dependencies] async-trait = "0.1" js-sys = "0.3" rand = { version = "^0.7", features = ["wasm-bindgen"] } [features] minimal = [] compiler = ["miniscript/compiler"] default = ["key-value-db", "electrum"] electrum = ["electrum-client"] esplora = ["reqwest", "futures"] compact_filters = ["rocksdb", "socks", "lazy_static", "cc"] key-value-db = ["sled"] async-interface = ["async-trait"] all-keys = ["keys-bip39"] keys-bip39 = ["tiny-bip39"] # Debug/Test features debug-proc-macros = ["bdk-macros/debug", "bdk-testutils-macros/debug"] test-electrum = ["electrum"] test-md-docs = ["electrum"] [dev-dependencies] bdk-testutils = { path = "./testutils" } bdk-testutils-macros = { path = "./testutils-macros" } serial_test = "0.4" lazy_static = "1.4" env_logger = "0.7" base64 = "^0.11" clap = "2.33" [[example]] name = "parse_descriptor" [[example]] name = "address_validator" [[example]] name = "miniscriptc" path = "examples/compiler.rs" required-features = ["compiler"] [workspace] members = ["macros", "testutils", "testutils-macros"] # Generate docs with nightly to add the "features required" badge # https://stackoverflow.com/questions/61417452/how-to-get-a-feature-requirement-tag-in-the-documentation-generated-by-cargo-do [package.metadata.docs.rs] features = ["compiler", "electrum", "esplora", "compact_filters", "key-value-db", "all-keys"] # defines the configuration attribute `docsrs` rustdoc-args = ["--cfg", "docsrs"]