Uses the Rust Dalek
library to implement a performant scalarmult function.
Installing curve25519-scalarmult-neon requires a supported version of Node and Rust.
You can install the project with npm. In the project directory, run:
$ npm install
This fully installs the project, including installing any dependencies and running the build.
If you have already installed the project and only want to run the build, run:
$ npm run build
This command uses the cargo-cp-artifact utility to run the Rust build and copy the built library into ./index.node
.
In the project directory, you can run:
Installs the project, including running npm run build
.
Builds the Node addon (index.node
) from source.
Additional cargo build
arguments may be passed to npm build
and npm build-*
commands. For example, to enable a cargo feature:
npm run build -- --feature=beetle
Alias for npm build
.
Same as npm build
but, builds the module with the release
profile. Release builds will compile slower, but run faster.
Runs the unit tests by calling cargo test
. You can learn more about adding tests to your Rust code from the Rust book.
Make sure you have the cross-compilation targets supported:
rustup target add arm-linux-android
rustup target add aarch64-linux-android
rustup target add x86_64-linux-android
Use Android NDK version 24 or higher by ensuring you have the env var ANDROID_NDK_HOME
pointed at the NDK 24 directory. If you get a compilation error about -lgcc
, you might have to apply this hack deep in your NDK.
npx prebuild-for-nodejs-mobile android-arm --sdk31 --verbose
npx prebuild-for-nodejs-mobile android-arm64 --sdk31 --verbose
npx prebuild-for-nodejs-mobile android-x64 --sdk31 --verbose
Make sure you have the cross-compilation targets supported:
rustup target add x86_64-apple-ios
rustup target add aarch64-apple-ios
Then compile the prebuilds:
npx prebuild-for-nodejs-mobile ios-arm64 --verbose
npx prebuild-for-nodejs-mobile ios-x64 --verbose