diff --git a/README.md b/README.md index 0590472e..f24146cf 100644 --- a/README.md +++ b/README.md @@ -9,7 +9,7 @@ To learn more about mopro, please refer to the documentation at [zkmopro](https: ## Getting started - Make sure you've installed the [prerequisites](https://zkmopro.org/docs/prerequisites). -- Getting started with this [tutorial](https://zkmopro.org/docs/getting-started/rust-setup). +- Getting started with this [tutorial](https://zkmopro.org/docs/getting-started). ## Run tests diff --git a/docs/docs/adapters/circom.md b/docs/docs/adapters/circom.md index 1d0607b8..1bded5d8 100644 --- a/docs/docs/adapters/circom.md +++ b/docs/docs/adapters/circom.md @@ -8,7 +8,7 @@ Explore how the Circom adapter is implemented by checking out this sample projec ## Setup the rust project -You can follow the instructions in the [Rust Setup](/getting-started/rust-setup.md) guide to create a new Rust project that builds this library with Circom proofs. +You can follow the instructions in the [Rust Setup](/setup/rust-setup.md) guide to create a new Rust project that builds this library with Circom proofs. In your `Cargo.toml` file, ensure the `circom` feature is activated for `mopro-ffi`: diff --git a/docs/docs/adapters/halo2.md b/docs/docs/adapters/halo2.md index 18a806a2..a35418e6 100644 --- a/docs/docs/adapters/halo2.md +++ b/docs/docs/adapters/halo2.md @@ -8,7 +8,7 @@ Explore how the Halo2 adapter is implemented by checking out this [Sample Mopro ## Setting Up the Rust Project -You can start by following the general instructions in the [Rust Setup Guide](/getting-started/rust-setup.md) to create a new Rust project for building libraries with Circom proofs. However, you will need to perform these specific adjustments for Halo2: +You can start by following the general instructions in the [Rust Setup Guide](/setup/rust-setup.md) to create a new Rust project for building libraries with Circom proofs. However, you will need to perform these specific adjustments for Halo2: In your `Cargo.toml` file, ensure the `halo2` feature is activated for `mopro-ffi`: diff --git a/docs/docs/getting-started.md b/docs/docs/getting-started.md new file mode 100644 index 00000000..ad72bb3e --- /dev/null +++ b/docs/docs/getting-started.md @@ -0,0 +1,64 @@ +# Getting started + +This tutorial guides you through building a static library with the Circom/Halo2 adapter for Android and iOS and creating example templates for mobile development. + +## 0. Prerequisites + +Make sure you've installed the [prerequisites](/docs/prerequisites). + +## 1. Install CLI + +Clone the `mopro` repository and install the `mopro` CLI tool. + +```sh +git clone https://github.com/zkmopro/mopro +cd mopro/cli +cargo install --path . +cd ../.. +``` + +## 2. Initialize adapters + +Navigate to the folder where you want to build the app. Select the adapters using the `mopro` CLI. + +```sh +mopro init +``` + +## 3. Build bindings + +Navigate to your project directory. (e.g. `cd mopro-example-app`)
+Build bindings for specific targets (iOS, Android). + +```sh +mopro build +``` + +:::warning +The process of building bindings may take a few minutes. +::: + +:::info +Running your project in `release` mode significantly enhances performance compared to `debug` mode. This is because the Rust compiler applies optimizations that improve runtime speed and reduce binary size, making your application more efficient. + +::: + +## 4. Create templates + +Create templates for developing your mobile app. + +```sh +mopro create +``` + +Follow the instructions to open development tools + +For iOS: +```sh +open ios/MoproApp.xcodeproj +``` + +For Android +```sh +open android -a Android\ Studio +``` \ No newline at end of file diff --git a/docs/docs/intro.md b/docs/docs/intro.md index 837f149b..a22d2242 100644 --- a/docs/docs/intro.md +++ b/docs/docs/intro.md @@ -12,7 +12,7 @@ How? Mopro connects different adapters with different platforms. You can think o Note that above is a work in progress, and the dashed lines indicate things that are still experimental and/or in an an early stage. -If you just want to get started using mopro, see [getting started](getting-started/rust-setup). +If you just want to get started using mopro, see [getting started](getting-started). ## Overview diff --git a/docs/docs/getting-started/android-setup.md b/docs/docs/setup/android-setup.md similarity index 97% rename from docs/docs/getting-started/android-setup.md rename to docs/docs/setup/android-setup.md index 4249d327..5737f3fc 100644 --- a/docs/docs/getting-started/android-setup.md +++ b/docs/docs/setup/android-setup.md @@ -1,6 +1,6 @@ # Android Setup -After you've completed the [Rust setup](docs/getting-started/rust-setup.md) you should be able to run `cargo run --bin android`. This will create a new folder called `MoproAndroidBindings`. It should look like the structure +After you've completed the [Rust setup](docs/setup/rust-setup.md) you should be able to run `cargo run --bin android`. This will create a new folder called `MoproAndroidBindings`. It should look like the structure ```sh MoproAndroidBindings diff --git a/docs/docs/getting-started/ios-setup.md b/docs/docs/setup/ios-setup.md similarity index 92% rename from docs/docs/getting-started/ios-setup.md rename to docs/docs/setup/ios-setup.md index d0aadd1f..0872aa77 100644 --- a/docs/docs/getting-started/ios-setup.md +++ b/docs/docs/setup/ios-setup.md @@ -1,7 +1,7 @@ # iOS Setup -Once you've completed the [Rust setup](docs/getting-started/rust-setup.md) you should be able to run `cargo run --bin ios`. This will create a new folder called `MoproiOSBindings`. Inside this folder there should be a file named `mopro.swift` and a folder named `MoproBindings.xcframework`. +Once you've completed the [Rust setup](docs/setup/rust-setup.md) you should be able to run `cargo run --bin ios`. This will create a new folder called `MoproiOSBindings`. Inside this folder there should be a file named `mopro.swift` and a folder named `MoproBindings.xcframework`. ## Demo video of this tutorial diff --git a/docs/docs/getting-started/react-native-setup.md b/docs/docs/setup/react-native-setup.md similarity index 100% rename from docs/docs/getting-started/react-native-setup.md rename to docs/docs/setup/react-native-setup.md diff --git a/docs/docs/getting-started/rust-setup.md b/docs/docs/setup/rust-setup.md similarity index 100% rename from docs/docs/getting-started/rust-setup.md rename to docs/docs/setup/rust-setup.md diff --git a/docs/sidebars.ts b/docs/sidebars.ts index 7c5ead4b..92c33f61 100644 --- a/docs/sidebars.ts +++ b/docs/sidebars.ts @@ -13,13 +13,18 @@ const sidebars: SidebarsConfig = { id: 'prerequisites', }, { - type: 'category', + type: 'doc', label: 'Getting Started', + id: 'getting-started', + }, + { + type: 'category', + label: 'Setup', items: [ - 'getting-started/rust-setup', - 'getting-started/ios-setup', - 'getting-started/android-setup', - 'getting-started/react-native-setup' + 'setup/rust-setup', + 'setup/ios-setup', + 'setup/android-setup', + 'setup/react-native-setup' ] }, { diff --git a/docs/versioned_docs/version-0.1.0/adapters/circom.md b/docs/versioned_docs/version-0.1.0/adapters/circom.md index 1d0607b8..1bded5d8 100644 --- a/docs/versioned_docs/version-0.1.0/adapters/circom.md +++ b/docs/versioned_docs/version-0.1.0/adapters/circom.md @@ -8,7 +8,7 @@ Explore how the Circom adapter is implemented by checking out this sample projec ## Setup the rust project -You can follow the instructions in the [Rust Setup](/getting-started/rust-setup.md) guide to create a new Rust project that builds this library with Circom proofs. +You can follow the instructions in the [Rust Setup](/setup/rust-setup.md) guide to create a new Rust project that builds this library with Circom proofs. In your `Cargo.toml` file, ensure the `circom` feature is activated for `mopro-ffi`: diff --git a/docs/versioned_docs/version-0.1.0/adapters/halo2.md b/docs/versioned_docs/version-0.1.0/adapters/halo2.md index ee0f3f0e..96f358a5 100644 --- a/docs/versioned_docs/version-0.1.0/adapters/halo2.md +++ b/docs/versioned_docs/version-0.1.0/adapters/halo2.md @@ -8,7 +8,7 @@ Explore how the Halo2 adapter is implemented by checking out this [Sample Mopro ## Setting Up the Rust Project -You can start by following the general instructions in the [Rust Setup Guide](/getting-started/rust-setup.md) to create a new Rust project for building libraries with Circom proofs. However, you will need to perform these specific adjustments for Halo2: +You can start by following the general instructions in the [Rust Setup Guide](/setup/rust-setup.md) to create a new Rust project for building libraries with Circom proofs. However, you will need to perform these specific adjustments for Halo2: In your `Cargo.toml` file, ensure the `halo2` feature is activated for `mopro-ffi`: diff --git a/docs/versioned_docs/version-0.1.0/getting-started.md b/docs/versioned_docs/version-0.1.0/getting-started.md new file mode 100644 index 00000000..ad72bb3e --- /dev/null +++ b/docs/versioned_docs/version-0.1.0/getting-started.md @@ -0,0 +1,64 @@ +# Getting started + +This tutorial guides you through building a static library with the Circom/Halo2 adapter for Android and iOS and creating example templates for mobile development. + +## 0. Prerequisites + +Make sure you've installed the [prerequisites](/docs/prerequisites). + +## 1. Install CLI + +Clone the `mopro` repository and install the `mopro` CLI tool. + +```sh +git clone https://github.com/zkmopro/mopro +cd mopro/cli +cargo install --path . +cd ../.. +``` + +## 2. Initialize adapters + +Navigate to the folder where you want to build the app. Select the adapters using the `mopro` CLI. + +```sh +mopro init +``` + +## 3. Build bindings + +Navigate to your project directory. (e.g. `cd mopro-example-app`)
+Build bindings for specific targets (iOS, Android). + +```sh +mopro build +``` + +:::warning +The process of building bindings may take a few minutes. +::: + +:::info +Running your project in `release` mode significantly enhances performance compared to `debug` mode. This is because the Rust compiler applies optimizations that improve runtime speed and reduce binary size, making your application more efficient. + +::: + +## 4. Create templates + +Create templates for developing your mobile app. + +```sh +mopro create +``` + +Follow the instructions to open development tools + +For iOS: +```sh +open ios/MoproApp.xcodeproj +``` + +For Android +```sh +open android -a Android\ Studio +``` \ No newline at end of file diff --git a/docs/versioned_docs/version-0.1.0/intro.md b/docs/versioned_docs/version-0.1.0/intro.md index 837f149b..a22d2242 100644 --- a/docs/versioned_docs/version-0.1.0/intro.md +++ b/docs/versioned_docs/version-0.1.0/intro.md @@ -12,7 +12,7 @@ How? Mopro connects different adapters with different platforms. You can think o Note that above is a work in progress, and the dashed lines indicate things that are still experimental and/or in an an early stage. -If you just want to get started using mopro, see [getting started](getting-started/rust-setup). +If you just want to get started using mopro, see [getting started](getting-started). ## Overview diff --git a/docs/versioned_docs/version-0.1.0/getting-started/android-setup.md b/docs/versioned_docs/version-0.1.0/setup/android-setup.md similarity index 97% rename from docs/versioned_docs/version-0.1.0/getting-started/android-setup.md rename to docs/versioned_docs/version-0.1.0/setup/android-setup.md index 4249d327..5737f3fc 100644 --- a/docs/versioned_docs/version-0.1.0/getting-started/android-setup.md +++ b/docs/versioned_docs/version-0.1.0/setup/android-setup.md @@ -1,6 +1,6 @@ # Android Setup -After you've completed the [Rust setup](docs/getting-started/rust-setup.md) you should be able to run `cargo run --bin android`. This will create a new folder called `MoproAndroidBindings`. It should look like the structure +After you've completed the [Rust setup](docs/setup/rust-setup.md) you should be able to run `cargo run --bin android`. This will create a new folder called `MoproAndroidBindings`. It should look like the structure ```sh MoproAndroidBindings diff --git a/docs/versioned_docs/version-0.1.0/getting-started/ios-setup.md b/docs/versioned_docs/version-0.1.0/setup/ios-setup.md similarity index 92% rename from docs/versioned_docs/version-0.1.0/getting-started/ios-setup.md rename to docs/versioned_docs/version-0.1.0/setup/ios-setup.md index d0aadd1f..0872aa77 100644 --- a/docs/versioned_docs/version-0.1.0/getting-started/ios-setup.md +++ b/docs/versioned_docs/version-0.1.0/setup/ios-setup.md @@ -1,7 +1,7 @@ # iOS Setup -Once you've completed the [Rust setup](docs/getting-started/rust-setup.md) you should be able to run `cargo run --bin ios`. This will create a new folder called `MoproiOSBindings`. Inside this folder there should be a file named `mopro.swift` and a folder named `MoproBindings.xcframework`. +Once you've completed the [Rust setup](docs/setup/rust-setup.md) you should be able to run `cargo run --bin ios`. This will create a new folder called `MoproiOSBindings`. Inside this folder there should be a file named `mopro.swift` and a folder named `MoproBindings.xcframework`. ## Demo video of this tutorial diff --git a/docs/versioned_docs/version-0.1.0/getting-started/react-native-setup.md b/docs/versioned_docs/version-0.1.0/setup/react-native-setup.md similarity index 100% rename from docs/versioned_docs/version-0.1.0/getting-started/react-native-setup.md rename to docs/versioned_docs/version-0.1.0/setup/react-native-setup.md diff --git a/docs/versioned_docs/version-0.1.0/getting-started/rust-setup.md b/docs/versioned_docs/version-0.1.0/setup/rust-setup.md similarity index 100% rename from docs/versioned_docs/version-0.1.0/getting-started/rust-setup.md rename to docs/versioned_docs/version-0.1.0/setup/rust-setup.md diff --git a/docs/versioned_sidebars/version-0.1.0-sidebars.json b/docs/versioned_sidebars/version-0.1.0-sidebars.json index 78c2579f..43b11344 100644 --- a/docs/versioned_sidebars/version-0.1.0-sidebars.json +++ b/docs/versioned_sidebars/version-0.1.0-sidebars.json @@ -11,13 +11,18 @@ "id": "prerequisites" }, { - "type": "category", + "type": "doc", "label": "Getting Started", + "id": "getting-started" + }, + { + "type": "category", + "label": "Setup", "items": [ - "getting-started/rust-setup", - "getting-started/ios-setup", - "getting-started/android-setup", - "getting-started/react-native-setup" + "setup/rust-setup", + "setup/ios-setup", + "setup/android-setup", + "setup/react-native-setup" ] }, { diff --git a/mopro-ffi/README.md b/mopro-ffi/README.md index 7186745f..cffb32c6 100644 --- a/mopro-ffi/README.md +++ b/mopro-ffi/README.md @@ -5,7 +5,7 @@ Mopro is a toolkit for ZK app development on mobile. Mopro makes client-side pro ## Getting started - Make sure you've installed the [prerequisites](https://zkmopro.org/docs/prerequisites). -- Getting started with this [tutorial](https://zkmopro.org/docs/getting-started/rust-setup). +- Getting started with this [tutorial](https://zkmopro.org/docs/getting-started). ## Run tests