bitcoindevkit / bitcoindevkit/bdk-ffi
Adding clients as separate libraries
- Dominant language
- Rust
- Stars
- 127
- Forks
- 81
- Avg merge
- 1d 2h
- Merged PRs (30d)
- 5
Description
This is a brainstorm issue outlining how we could go about ensuring this library works with clients not shipped as part of the lib.
The current boundaries between the `Wallet` and the Esplora and Electrum clients is basically the `SyncRequest`/`FullScanRequest` types (with these two probably merging into one in 4.0), and the `Update` type.
If those were serializable in some way (CBOR, JSON), then they could just be passed back and forth with other libraries.
## Upside
**"New" clients:** This could potentially allow clients to be made and maintained by other teams at low cost for us (only requiring we provide the serialization format).
**Current clients:** Cutting clients _entirely_ from the library is a bit crazy (see downside below) but would reduce library size and allow users to pick only the clients they need (see #969).
## Downside
The really big downside to this is that it forces the clients to ship their own bindings libraries, which we know are a lot of work (CI, tests, releases, etc.). This includes all downstream users of the current bdk-ffi repo, so that's a lot of work for a lot of repos/languages.
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.