Skip to content

Commit cc7e216

Browse files
docs: update readme for 2.2.0 release
1 parent 4836a3f commit cc7e216

File tree

1 file changed

+21
-78
lines changed

1 file changed

+21
-78
lines changed

README.md

Lines changed: 21 additions & 78 deletions
Original file line numberDiff line numberDiff line change
@@ -1,52 +1,43 @@
1-
# Language bindings for BDK
1+
# Language Bindings for BDK
22

33
<p>
4-
<a href="https://github.com/bitcoindevkit/bdk-ffi/blob/master/LICENSE"><img alt="MIT or Apache-2.0 Licensed" src="https://img.shields.io/badge/license-MIT%2FApache--2.0-blue.svg"/></a>
5-
<a href="https://github.com/bitcoindevkit/bdk-ffi/actions?query=workflow%3ACI"><img alt="CI Status" src="https://github.com/bitcoindevkit/bdk-ffi/workflows/CI/badge.svg"></a>
6-
<a href="https://blog.rust-lang.org/2022/05/19/Rust-1.61.0.html"><img alt="Rustc Version 1.61.0+" src="https://img.shields.io/badge/rustc-1.61.0%2B-lightgrey.svg"/></a>
7-
<a href="https://discord.gg/d7NkDKm"><img alt="Chat on Discord" src="https://img.shields.io/discord/753336465005608961?logo=discord"></a>
4+
<a href="https://github.com/bitcoindevkit/bdk-ffi/blob/master/LICENSE"><img alt="MIT or Apache-2.0 Licensed" src="https://img.shields.io/badge/license-MIT%2FApache--2.0-blue.svg"/></a>
5+
<a href="https://discord.gg/d7NkDKm"><img alt="Chat on Discord" src="https://img.shields.io/discord/753336465005608961?logo=discord"></a>
86
</p>
97

10-
## Readme
8+
The code in this repository creates a library ready for export to other languages using [uniffi-rs] for the Rust-based [bdk_wallet] library from the [Bitcoin Dev Kit] project.
119

12-
The workspace in this repository creates the `libbdkffi` multi-language library for the Rust-based
13-
[bdk] library from the [Bitcoin Dev Kit] project.
14-
15-
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.
10+
Each supported language (Kotlin for Android and Swift for iOS) and the platforms 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_wallet] library to expose its APIs in a uniform way using the [mozilla/uniffi-rs] bindings generator for each supported target language.
1611

1712
## Supported target languages and platforms
1813

19-
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.
14+
The below directories include instructions for building and using the language binding for [bdk_wallet] supported by this project.
2015

2116
| Language | Platform | Published Package | Building Documentation | API Docs |
2217
| -------- |-----------------------|-------------------|------------------------|-----------------------|
23-
| Kotlin | JVM | [bdk-jvm] | [Readme bdk-jvm] | [Kotlin JVM API Docs] |
2418
| Kotlin | Android | [bdk-android] | [Readme bdk-android] | [Android API Docs] |
2519
| Swift | iOS, macOS | [bdk-swift] | [Readme bdk-swift] | |
2620

2721
## Other supported languages maintained in separate repositories
2822

2923
The `bdk-ffi` codebase in this repository can be used to produce language bindings for more than Swift and Kotlin. Some of these require the use of uniffi 3rd party plugins and some not. Below are some of the libraries that use the bdk-ffi API, but are maintained separately. Refer to their individual READMEs for information on their state of production-readiness.
3024

31-
| Language | Platform | Published Package | Building Documentation | API Docs |
32-
| -------- |-----------------------|-------------------|------------------------|-----------------------|
33-
| Python | Linux, macOS, Windows | [bdkpython] | [Readme bdkpython] | |
25+
| Language | Platform | Published Package | Repository | API Docs |
26+
| -------- |-----------------------|---------------------------|--------------|-----------------------|
27+
| Kotlin | JVM | [bdk-jvm (Maven Central)] | [bdk-jvm] | |
28+
| Python | Linux, macOS, Windows | [bdk-python (PyPI)] | [bdk-python] | |
3429

3530
## Building and testing the libraries
3631

37-
If you are familiar with the build tools for the specific languages you wish to build the libraries for, you can use their normal build/test workflows. We also include some [just](https://just.systems/) files to simplify the work across different languages. If you have the just tool installed on your system, you can simply call the commands defined in the `justfile`s, for example:
32+
If you are familiar with the build tools for the specific languages you wish to build the libraries for, you can use their normal build/test workflows. We also include some [just](https://just.systems/) files to simplify the work across different languages. If you have the `just` tool installed on your system, you can simply call the commands defined in the justfiles, for example:
33+
3834
```sh
3935
cd bdk-android
40-
4136
just build
42-
just offlinetests
43-
just publishlocal
37+
just test
38+
just publish-local
4439
```
4540

46-
## Minimum Supported Rust Version (MSRV)
47-
48-
This library should compile with any combination of features with Rust 1.85.1.
49-
5041
## Contributing
5142

5243
To add new structs and functions, see the [UniFFI User Guide](https://mozilla.github.io/uniffi-rs/) and the [uniffi-examples](https://thunderbiscuit.github.io/uniffi-examples/) repository.
@@ -59,48 +50,6 @@ To add new structs and functions, see the [UniFFI User Guide](https://mozilla.gi
5950
4. Contributing should be easy
6051
5. Get it right, then automate
6152

62-
## Using the libraries
63-
64-
### bdk-android
65-
66-
```kotlin
67-
// build.gradle.kts
68-
repositories {
69-
mavenCentral()
70-
}
71-
dependencies {
72-
implementation("org.bitcoindevkit:bdk-android:<version>")
73-
}
74-
```
75-
76-
### bdk-jvm
77-
78-
```kotlin
79-
// build.gradle.kts
80-
repositories {
81-
mavenCentral()
82-
}
83-
dependencies {
84-
implementation("org.bitcoindevkit:bdk-jvm:<version>")
85-
}
86-
```
87-
88-
_Note:_ We also publish snapshot versions of bdk-jvm and bdk-android. See the specific readmes for instructions on how to use those.
89-
90-
### bdkpython
91-
92-
```shell
93-
pip3 install bdkpython
94-
```
95-
96-
### BitcoinDevKit (Swift)
97-
98-
Add `BitcoinDevKit` to your dependencies in XCode.
99-
100-
## Developing language bindings using uniffi-rs
101-
102-
If you are interested in better understanding the base structure we use here in order to build your own Rust-to-Kotlin/Swift/Python language bindings, check out the [uniffi-bindings-template](https://github.com/thunderbiscuit/uniffi-bindings-template) repository. We maintain it as an example and starting point for other projects that wish to leverage the tech stack used in producing the BDK language bindings.
103-
10453
## Verifying Signatures
10554

10655
Both libraries and all their corresponding artifacts are signed with a PGP key you can find in the
@@ -151,22 +100,16 @@ Email: `[email protected]`
151100

152101
This project is made possible thanks to the wonderful work by the [mozilla/uniffi-rs] team.
153102

154-
[Kotlin]: https://kotlinlang.org/
155-
[Android Studio]: https://developer.android.com/studio/
156-
[`bdk`]: https://github.com/bitcoindevkit/bdk
157-
[`bdk-ffi`]: https://github.com/bitcoindevkit/bdk-ffi
158-
["Getting Started (Developer)"]: https://github.com/bitcoindevkit/bdk-ffi#getting-started-developer
159-
[bdk-jvm]: https://central.sonatype.com/artifact/org.bitcoindevkit/bdk-jvm/
103+
[bdk-jvm]: https://github.com/bitcoindevkit/bdk-jvm
104+
[bdk-jvm (Maven Central)]: https://central.sonatype.com/artifact/org.bitcoindevkit/bdk-jvm/
160105
[bdk-android]: https://central.sonatype.com/artifact/org.bitcoindevkit/bdk-android/
161106
[bdk-swift]: https://github.com/bitcoindevkit/bdk-swift
162-
[bdkpython]: https://pypi.org/project/bdkpython/
107+
[bdk-python]: https://github.com/bitcoindevkit/bdk-python
108+
[bdk-python (PyPI)]: https://pypi.org/project/bdk-python
163109
[mozilla/uniffi-rs]: https://github.com/mozilla/uniffi-rs
164-
[bdk]: https://github.com/bitcoindevkit/bdk
110+
[bdk_wallet]: https://github.com/bitcoindevkit/bdk_wallet
165111
[Bitcoin Dev Kit]: https://github.com/bitcoindevkit
166112
[uniffi-rs]: https://github.com/mozilla/uniffi-rs
167-
[Readme bdk-jvm]: https://github.com/bitcoindevkit/bdk-ffi/tree/master/bdk-jvm
168113
[Readme bdk-android]: https://github.com/bitcoindevkit/bdk-ffi/tree/master/bdk-android
169-
[Readme bdk-swift]: https://github.com/bitcoindevkit/bdk-swift
170-
[Readme bdkpython]: https://github.com/bitcoindevkit/bdkpython
171-
[Kotlin JVM API Docs]: https://bitcoindevkit.org/jvm/
172-
[Android API Docs]: https://bitcoindevkit.org/android/
114+
[Readme bdk-swift]: https://github.com/bitcoindevkit/bdk-swift
115+
[Android API Docs]: https://bitcoindevkit.org/android

0 commit comments

Comments
 (0)