Architectures
Platform Support
Different platforms use different architectures. This section will guide you in selecting the appropriate architecture for your target platform.
iOS
| Current support target | Description | Examples | 
|---|---|---|
aarch64-apple-ios | 64-bit iOS devices (iPhone/iPad) | iPhone 11+, iPad Pro | 
aarch64-apple-ios-sim | ARM64 iOS simulator on Apple Silicon Macs | Simulator on M1/M2 Mac | 
x86_64-apple-ios | x86_64 iOS simulator on Intel Macs | Simulator on Intel Mac | 
Android
| Current support target | Description | Examples | 
|---|---|---|
x86_64-linux-android | 64-bit Android emulators (x86_64 architecture) | Emulator on x86_64 host | 
i686-linux-android | 32-bit Android emulators (x86 architecture, legacy) | Legacy Android Emulator | 
armv7-linux-androideabi | 32-bit ARM devices (older Android smartphones/tablets) | Nexus 7, Galaxy S5 | 
aarch64-linux-androids | 64-bit ARM devices (modern Android smartphones/tablets) | Pixel 6, Galaxy S22 | 
Web (WASM)
| Current support target | Description | Examples | 
|---|---|---|
wasm32-unknown-unknown | Bare WebAssembly target | Browser apps | 
Proving Systems Currently Supported
| Current support target | Circom (rust-witness arkworks)  | Circom (witnesscalc rapidsnark)  | Halo2 (Plonkish)  | Noir (barretenberg)  | 
|---|---|---|---|---|
aarch64-apple-ios | ✅ | ✅ | ✅ | ✅ | 
aarch64-apple-ios-sim | ✅ | ✅ | ✅ | ✅ | 
x86_64-apple-ios | ✅ | ✅ | ✅ | ✅ | 
x86_64-linux-android | ✅ | ✅ | ✅ | ✅ | 
i686-linux-android | ✅ | ❌ | ✅ | ❌ | 
armv7-linux-androideabi | ✅ | ❌ | ✅ | ❌ | 
aarch64-linux-androids | ✅ | ✅ | ✅ | ✅ | 
wasm32-unknown-unknown	 | rust-witness ❌ / ark-works ✅ | ❌ | ✅ | ❌1 | 
Footnotes
- 
The current Mopro stack doesn't support compiling Barretenberg directly to WebAssembly. However, you can still use @aztec/bb.js to generate proofs in the browser. Similar to the Circom prover, you can use snarkjs to generate a witness directly in the browser. ↩