react-native-rust-module
Boilerplate to create react native modules relying on rust
Instructions
In the Example is a react native project that is configured to automatically consume a react-native-rust module that provides a helloWorld method which will call rust a rust library in both android and ios.
The rust library can be found in the rust/signer/src/lib.rs file
Requirements
Node - tested on 16 Android Toolchain (Android Studio) iOs Toolchain (xCode) Rust Toolchain - Cargo, rustup... (https://rustup.rs/ to get started)
Install Node Modules
-
yarn
ornpm i
cd example
iOs
To Perform changes and run those in ios follow these steps
-
yarn
ornpm i
cd /ios
pod install
Change Rust
- modify lib.rs (if you add extra methods you also have to edit the signer.h file)
-
cd rust/signer
andmake ios
- this will create a new file libsigner.a in the rust/signer directory - replace the old libsigner.a in ios/libs with the generated file
- Run the app (in xcode or with
npm run ios
)
Android
To Perform changes and run those in ios follow these steps
Change Rust
- modify lib.rs (if you add extra methods you also have to edit the signer.h file)
-
cd rust/signer
andmake android
- this will create a new file libsigner.a in the rust/signer directory -
make android
will also have started the scriptcopy_android
which should have copied the rust compilation results into the java project.
(If the make android
command throws an error that is complaining about missing -lgcc look at this issue ) 4. Run the app (in Android studio or with npm run android
)
Kudos
Heavily inspired by
https://github.com/paritytech/parity-signer/tree/legacy-4.5.3 https://robertohuertas.com/2019/10/27/rust-for-android-ios-flutter/