2021-10-13 01:45:22 +05:30
2021-09-28 17:03:25 -07:00
2021-10-12 10:27:33 -07:00
2021-10-12 10:27:33 -07:00
2021-10-12 10:27:33 -07:00
2021-10-12 10:27:33 -07:00
2021-09-28 17:03:25 -07:00

UniFFI

  1. cargo install uniffi_bindgen
  2. cargo build
  3. uniffi-bindgen generate --no-format --out-dir kotlin src/bdk.udl --language kotlin

Setup Android build environment

  1. Add Android rust targets
rustup target add x86_64-apple-darwin x86_64-unknown-linux-gnu x86_64-linux-android aarch64-linux-android armv7-linux-androideabi i686-linux-android
  1. Set ANDROID_NDK_HOME
export ANDROID_NDK_HOME=/home/<user>/Android/Sdk/ndk/<NDK version, ie. 21.4.7075529>

Setup Swift build environment

  1. Install Swift, see "Download Swift" page

Adding new structs and functions

  1. Create C safe Rust structs and related functions using safer-ffi

  2. Test generated library and bdk_ffi.h file with c language tests in cc/bdk_ffi_test.c

  3. Use build.sh and test.sh to build c test program and verify functionality and memory de-allocation via valgrind

  4. Update the kotlin native interface LibJna.kt in the bdk-kotlin jvm module to match bdk_ffi.h

  5. Create kotlin wrapper classes and interfaces as needed

  6. Add tests to bdk-kotlin test-fixtures module

  7. Use build.sh and test.sh to build and test bdk-kotlin jvm and android modules

Description
Frost experimentation on bdk-ffi
Readme 22 MiB
Languages
Rust 64.6%
Kotlin 18.1%
Swift 9.5%
Python 4.6%
Shell 2.2%
Other 1%