Skip to content

Latest commit

 

History

History
141 lines (94 loc) · 3.26 KB

File metadata and controls

141 lines (94 loc) · 3.26 KB

MoPro CLI

What is MoPro?

MoPro stands for Mobile Prover — a framework designed to simplify the development of client-side zero-knowledge (ZK) proof systems on mobile platforms.

👉 Visit zkmopro.org to learn more about using MoPro and MoPro CLI.

Mopro CLI is a developer-friendly command-line tool that simplifies building native mobile apps with mopro-ffi. It streamlines the integration process and offers powerful customization options.

Key Features

  • Modular: Choose one or more adapters from mopro-ffi—currently supporting Circom, Halo2, and Noir. You can also integrate your own Rust crate. See Custom Adapters for details.
  • Versatile: Generate templates for various platforms including Swift (Xcode), Kotlin (Android Studio), React Native, Flutter, and Web.
  • Automated: Skip the tedious setup—mopro CLI automates UniFFI bindings and configures Xcode and Android Studio for you.

Usage

Installation

cargo install mopro-cli
  • Install the latest change on GitHub
git clone https://github.com/zkmopro/mopro
cd mopro/cli
cargo install --path .

Help

mopro --help

or

mopro init --help

to see instructions for each command.

Initialization

mopro init

Build bindings

mopro build

or

mopro build --auto-update

Create templates

mopro create

Update bindings

mopro update

or

mopro update [--src PATH] [--dest PATH] [--no-prompt]

By default mopro update looks for bindings and mobile projects in the current directory. Use --src to point to a bindings directory and --dest to target a specific mobile project located elsewhere. Frequently used destinations can be stored in Config.toml under an update section:

[update]
ios_dest = "../MyiOSApp"
android_dest = "../MyAndroidApp"

Create bindings without Rust project

mopro bindgen

You can customize the bindings generation:

  • Choose a witness generator adapter (default rust-witness):

    mopro bindgen --adapter witnesscalc
  • Specify the output directory for generated bindings:

    mopro bindgen --output-dir ./output

Generate the whole project with one command (experimental)

A simplified command for mopro init, mopro build and mopro create.

mopro construct

Development

After cloning the repository, you can install the CLI locally with your changes by running:

git clone https://github.com/zkmopro/mopro
cd mopro/cli
cargo install --path .

Community

Acknowledgements

This work was initially sponsored by a joint grant from PSE and 0xPARC. It is currently incubated by PSE.