7ab84be9c747fd73fc5d1bd0706e7027a66aadb5 Better no-std support (Steve Myers) Pull request description: This replaces #893 ### Description Carrying over relevant maintenance changes from release 0.27.2 to bdk `master`. - Use `default-features = false` for `miniscript` and `bitcoin` - Introduce `std` features for `bdk`, `bdk_chain` and `bdk_esplora` ### Notes to the reviewers The `default-features = false`for `bitcoin` and `miniscript` is to let `bdk` be unbiased for things like no-std. ### Changelog notice - Set default-features = false for rust-bitcoin and rust-miniscript #894 - Introduce `std` features for `bdk`, `bdk_chain` and `bdk_esplora` ### Checklists #### All Submissions: * [x] I've signed all my commits * [x] I followed the [contribution guidelines](https://github.com/bitcoindevkit/bdk/blob/master/CONTRIBUTING.md) * [x] I ran `cargo fmt` and `cargo clippy` before committing ACKs for top commit: notmandatory: ACK 7ab84be9c747fd73fc5d1bd0706e7027a66aadb5 Tree-SHA512: 217e0ebc04cd59898d4de1c4f8cc6c87de2561659e277cc6e0d969c8bc61142ca62c8bda86643d55676dce39da25891b516a901005a03a31404dae118a5fce76
The Bitcoin Dev Kit
BDK

A modern, lightweight, descriptor-based wallet library written in Rust!
Project Homepage | Documentation
About
The bdk
libraries aims to provide well engineered and reviewed components for Bitcoin based applications.
It is built upon the excellent rust-bitcoin
and rust-miniscript
crates.
⚠ The Bitcoin Dev Kit developers are in the process of releasing a
v1.0
which is a fundamental re-write of how the library works. See for some background on this project: https://bitcoindevkit.org/blog/road-to-bdk-1/ (ignore the timeline 😁) For a release timeline see thebdk_core_staging
repo where a lot of the component work is being done. The plan is that everything in thebdk_core_staging
repo will be moved into thecrates
directory here.
Architecture
The project is split up into several crates in the /crates
directory:
bdk
: Contains the central high levelWallet
type that is built from the low-level mechanisms provided by the other componentschain
: Tools for storing and indexing chain datafile_store
: A (experimental) persistence backend for storing chain data in a single file.esplora
: Extends theesplora-client
crate with methods to fetch chain data from an esplora HTTP server in the form that [bdk_chain
] andWallet
can consume.electrum
: Extends theelectrum-client
crate with methods to fetch chain data from an electrum server in the form that [bdk_chain
] andWallet
can consume.
Fully working examples of how to use these components are in /example-crates