Conversation
|
@thunderbiscuit can you look into this? |
|
@Psycarlo I still like what you had in there! We've been swamped with the Red Team stuff but I do plan on merging this, and I am today working on the 3.1 release of bdk-ffi, which should make its way into bdk-rn. Can I consider this PR still good code or did you have a reason to close it that should make me not merge it? |
|
@thunderbiscuit my bad. I deleted head repository by mistake. Please use this code, still good. Not sure how can you reuse this code now and keep me as a contributor. |
|
Note 🤖 Opus 5 (1M context) responding on behalf of bennyhodl Building the binaries in CI is the right call. The ask is to drop the An install script that downloads breaks under npm already covers integrity. The registry stores a sha512 per tarball that every package manager Size: npm's 256 MiB limit is on the compressed tarball, not unpacked ( Three changes, independent of the above: 1. Android currently links a static archive per ABI instead of a linked 2. Gate 40 MB — 27% of every iOS slice — is the bindgen toolchain: uniffi = { version = "=0.31.2", default-features = false }
[features]
uniffi-bindgen = ["uniffi/cli"]
[[bin]]
name = "uniffi-bindgen"
required-features = ["uniffi-bindgen"]Bindgen stays available via 3. Remove Listed but not built — the xcframework has only References —
Measurements and methodology: https://gist.github.com/bennyhodl/559c8b8b96eb6fb455a63669364c573c |
|
Thanks guys for your input, I'm currently drafting something that will pull from both those approaches @Psycarlo @bennyhodl. I'll tag you both there when that's done and we can see if that solves everyone's problems. |
Prebuilt native binaries + Expo support
Makes
bdk-rninstallable with a plainnpm install/npx expo install. No Rust toolchain, no manual tarball download.How it works
.github/workflows/release.yml): pushing av*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 publishedpackage.json; binaries are stripped so the tarball stays small.scripts/postinstall.js): downloads the zips for the matching release, verifies checksums, extracts them into place. SupportsBDK_RN_SKIP_POSTINSTALL,BDK_RN_BINARY_BASE_URL(mirror), andBDK_RN_ARTIFACTS_DIR(offline installs).app.plugin.js): fails prebuild with a clear error if the New Architecture is disabled; sets required gradle properties.Before the first release
bdk-rnpackage namev1.0.0tag already exists; the workflow refuses existing releases)