tools/ contains utilities for focused development and measurement tasks. For
normal builds, tests, and releases, use the npm commands in the root
package.json.
| Directory | Purpose |
|---|---|
bindgen/ |
Generates UniFFI bindings for check:bindings |
android-prover-spike/ |
Builds and tests the local prover on an Android device |
ios-local-prover/ |
Builds a temporary Expo app and tests the prover in an iOS simulator |
circuit-size-bench/ |
Generates and measures one synthetic circuit size per process |
mobile-prover-instrumentation/ |
Applies temporary profiling patches for measurements on a mobile device |
The Android and iOS tools write under target/ and generated native build
directories. The instrumentation tool is different: it changes the working tree
temporarily. Follow its README and restore the tree after every run.
Prepare and verify the pinned public prover files before using either platform tool:
node tools/android-prover-spike/scripts/prepare-artifacts.mjsFor Android:
- Set
ANDROID_HOMEorANDROID_SDK_ROOT. - Install Gradle 9 or set
GRADLEto its executable. - Connect an arm64 Android device.
- Run:
GRADLE=/path/to/gradle node tools/android-prover-spike/scripts/build.mjs
node tools/android-prover-spike/scripts/run-device.mjsFor iOS, choose an installed simulator:
IOS_PROVER_SIMULATOR_UDID=<simulator-udid> \
node tools/ios-local-prover/scripts/run-simulator.mjsUse xcrun simctl list devices to find a simulator UDID.