# Native language bindings for BDK
## 🚨 Warning 🚨 The `master` branch of this repository is being migrated to the [bdk 1.0 API](https://github.com/bitcoindevkit/bdk) and is incomplete. For production-ready libraries, use the [`0.31.X`](https://github.com/bitcoindevkit/bdk-ffi/tree/release/0.30) releases. ## Readme The workspace in this repository creates the `libbdkffi` multi-language library for the Rust-based [bdk] library from the [Bitcoin Dev Kit] project. Each supported language and the platform(s) it's packaged for has its own directory. The Rust code in this project is in the bdk-ffi directory and is a wrapper around the [bdk] library to expose its APIs in a uniform way using the [mozilla/uniffi-rs] bindings generator for each supported target language. ## Supported target languages and platforms The below directories (a separate repository in the case of bdk-swift) include instructions for using, building, and publishing the native language binding for [bdk] supported by this project. | Language | Platform | Published Package | Building Documentation | API Docs | | -------- |-----------------------|-------------------------------|------------------------|-----------------------| | Kotlin | JVM | [bdk-jvm (Maven Central)] | [Readme bdk-jvm] | [Kotlin JVM API Docs] | | Kotlin | Android | [bdk-android (Maven Central)] | [Readme bdk-android] | [Android API Docs] | | Swift | iOS, macOS | [bdk-swift (GitHub)] | [Readme bdk-swift] | | | Python | linux, macOS, Windows | [bdk-python (PyPI)] | [Readme bdk-python] | | ## Minimum Supported Rust Version (MSRV) This library should compile with any combination of features with Rust 1.73.0. ## Contributing ### Adding new structs and functions See the [UniFFI User Guide](https://mozilla.github.io/uniffi-rs/) ## Goals 1. Language bindings should feel idiomatic in target languages/platforms 2. Adding new targets should be easy 3. Getting up and running should be easy 4. Contributing should be easy 5. Get it right, then automate ## Using the libraries ### bdk-android ```kotlin // build.gradle.kts repositories { mavenCentral() } dependencies { implementation("org.bitcoindevkit:bdk-android: