Project Organization
Within the bitcoindevkit GitHub organization, the BDK team maintains a suite of Rust crates which provide both easy-to-use high level APIs and powerful lower level components to use when building more advanced bitcoin software.
Source Code
The core project is split up into several crates in the bdk/crates directory:
bdk_wallet: Contains the central high levelWallettype that is built from the low-level mechanisms provided by the other components.bdk_chain: Tools for storing and indexing chain data.bdk_file_store: A persistence backend for storing chain data in a single file.bdk_sqlite: A simple SQLite relational database client for persisting bdk_chain data.bdk_esplora: Extends theesplora-clientcrate with methods to fetch chain data from an esplora HTTP server in the form thatbdk_chainandWalletcan consume.bdk_electrum: Extends theelectrum-clientcrate with methods to fetch chain data from an electrum server in the form thatbdk_chainandWalletcan consume.bdk_bitcoind_rpc: For extracting and emitting blockchain data frombitcoindRPC interface.