bitcoindevkit / bitcoindevkit/bdk-ffi

Naming conventions for bindings

Open
#962 2 comments 0 reactions 0 assignees View on GitHub
Dominant language
Rust
Stars
127
Forks
81
Avg merge
1d 2h
Merged PRs (30d)
5

Description

## Naming Convention

- In `bdk-ffi`, Kotlin is currently named by target/platform (`bdk-android`, `bdk-jvm`) rather than by language.
- That makes sense because Android and JVM are distinct targets, but it breaks what I might have as language-first mental model (`bdk-`).
- There is also historical nuance: `bdk-kotlin` exists (archived/moved to `bdk-ffi`) and historically published both `bdk-jvm` and `bdk-android`.
- External precedent is mixed too (for example LDK Node has a `bindings/kotlin` directory but publishes `ldk-node-jvm` and `ldk-node-android`, Cashu has `cdk-kotlin`, UniFFI generally uses the term “bindings” for foreign-language generated code).

Wondering about documenting a short naming convention for BDK bindings going forward (repo/module/directory names vs published artifact/package names) that makes sense and cleanly lines up? Not proposing an immediate rename here, mainly thinking thru for a clear rule so future naming is consistent, and also a place to document discussion.

### Current BDK binding names

- `bdk-android` (module/directory inside `bdk-ffi`, Maven artifact `bdk-android`)
- `bdk-jvm` (repo + Maven artifact `bdk-jvm`)
- `bdk-swift` (repo + SPM package `bdk-swift`; Swift module/framework `BitcoinDevKit`)
- `bdk-python` (repo, PyPI package `bdkpython`)
- `bdk-rn` (repo + npm package `bdk-rn`)
- `bdk-dart` (repo, pub package `bdk_dart`)
- `bdk-wasm` (repo, publishes npm packages `bdk-wallet-web` and `bdk-wallet-node`)
- `bdk-kotlin` (archived repo; moved to `bdk-ffi`; historically published `bdk-jvm` and `bdk-android`?)

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.