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:
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_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.bdk-ffi: The wrapper library that exposes the Rust APIs to our target language bindings through uniffi.