bitcoindevkit / bitcoindevkit/bdk-ffi
Naming conventions for bindings
- 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.