Welcome to noir_rs
, a pure Rust implementation for generating and verifying zkSNARK proofs. This lightweight, Rust-centric library is designed for ease of use, mobile compatibility, and performance, eliminating the need for WebAssembly (WASM) dependencies.
This project is a fork of AztecProtocol/aztec-packages, in order to align with the latest versions.
Explore source code here: noir_rs
.
noir_rs = { git = "https://github.com/visoftsolutions/noir_rs.git", branch = "latest", package = "noir_rs" }
- Rust-centric Design: Leveraging Rust's impressive performance, safety, and concurrency for a robust zkSNARK platform.
- Mobile-Friendly: Optimized for mobile devices, thanks to our Rust-native approach that bypasses WASM.
- User-Friendly: A simple, efficient toolkit for developers to generate and verify zkSNARK proofs.
- Swift Integration: Check out noir_swift
- Java Integration: Check out noir_java
Clone the repository to get started.
To run a specific noir_rs
example, use:
cd noir/tooling/noir_rs/examples/poly_check_circuit
cargo run
- poly_check_circuit
- line_check_circuit (struct serialization example)
Rust's cross-platform compatibility allows you to build for various targets. Here are some common ones:
- Linux (x86_64):
x86_64-unknown-linux-gnu
- Linux (ARMv7):
armv7-unknown-linux-gnueabihf
- Windows (MSVC):
x86_64-pc-windows-msvc
- macOS (x86_64):
x86_64-apple-darwin
- iOS:
aarch64-apple-ios
- Android:
aarch64-linux-android
Build for a specific target with:
cargo build --target TARGET_TRIPLET
Replace TARGET_TRIPLET
with your desired target. For more targets, refer to the Rust documentation.