bitcoindevkit / bitcoindevkit/bdk-ffi

Adding clients as separate libraries

Open
#970 0 comments 0 reactions 0 assignees View on GitHub
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.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.