Skip to content

Feat: Prebuilt Binaries - #23

Open
Psycarlo wants to merge 2 commits into
bitcoindevkit:masterfrom
Psycarlo:feat/prebuilt-binaries
Open

Feat: Prebuilt Binaries#23
Psycarlo wants to merge 2 commits into
bitcoindevkit:masterfrom
Psycarlo:feat/prebuilt-binaries

Conversation

@Psycarlo

@Psycarlo Psycarlo commented Aug 5, 2026

Copy link
Copy Markdown

Prebuilt native binaries + Expo support

Makes bdk-rn installable with a plain npm install / npx expo install. No Rust toolchain, no manual tarball download.

How it works

  • Release workflow (.github/workflows/release.yml): pushing a v* tag builds the Rust binaries (Android: arm64-v8a, armeabi-v7a, x86, x86_64 · iOS: device + arm64/x86_64 simulators), attaches them as zips to a GitHub Release with SHA-256 checksums and build provenance attestation, then publishes to npm via trusted publishing. Checksums are injected into the published package.json; binaries are stripped so the tarball stays small.
  • Postinstall (scripts/postinstall.js): downloads the zips for the matching release, verifies checksums, extracts them into place. Supports BDK_RN_SKIP_POSTINSTALL, BDK_RN_BINARY_BASE_URL (mirror), and BDK_RN_ARTIFACTS_DIR (offline installs).
  • Expo config plugin (app.plugin.js): fails prebuild with a clear error if the New Architecture is disabled; sets required gradle properties.

Before the first release

  • npm access to the bdk-rn package name
  • Configure this repo as a trusted publisher on npmjs.com
  • Bump the version (the v1.0.0 tag already exists; the workflow refuses existing releases)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant