Skip to content
This repository has been archived by the owner on Dec 7, 2023. It is now read-only.

Commit

Permalink
deprecated
Browse files Browse the repository at this point in the history
  • Loading branch information
Bartosz Nowak committed Dec 7, 2023
1 parent ecd9386 commit 94fe79f
Showing 1 changed file with 2 additions and 67 deletions.
69 changes: 2 additions & 67 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,69 +1,4 @@
# `noir_rs`: A Pure Rust Implementation of the Noir zkSNARK Proving Scheme

Welcome to `noir_rs`, a Rust-centric package designed for users seeking a straightforward, lightweight interface to generate and verify zkSNARK proofs without any WebAssembly (WASM) dependency.

![GitHub Workflow Status ArcRunner](https://github.com/visoftsolutions/noir_rs/actions/workflows/build&[email protected]/badge.svg)
![GitHub Workflow Status Ubuntu](https://github.com/visoftsolutions/noir_rs/actions/workflows/build&[email protected]/badge.svg)
![GitHub Workflow Status Macos](https://github.com/visoftsolutions/noir_rs/actions/workflows/build&[email protected]/badge.svg)
![Version](https://img.shields.io/badge/version-0.1.0-blue)

## Key Highlights:

- **Pure Rust**: Capitalize on the safety and concurrency features Rust offers with this entire implementation.
- **Barretenberg Backend**: Leverages an up-to-date Barretenberg backend optimized for Rust bindings.
- **Native FFI Bindings**: Provides foreign function interface (FFI) bindings to the compiled library for a seamless interaction with the Barretenberg backend.
- **Proof Generation & Verification**: Enables zkSNARK proof generation and verification using the Barretenberg backend.
- **ACVM Integration**: Incorporates the ACVM (Arbitrary Computation Virtual Machine) package, allowing execution of circuits and solving for witnesses.

## Motivation:

zkSNARKs are rapidly gaining traction in the tech world, opening doors to various applications. The core motivations behind `noir_rs` include:

- **Rust-centric Design**: With Rust's performance, safety, and concurrency features, it provides a robust foundation for a zkSNARK platform.
- **Mobile Compatibility**: By avoiding WASM and creating a Rust-native solution, `noir_rs` is optimized for mobile devices.
- **Ease of Use**: Our goal is to offer developers a straightforward toolset for generating and verifying zkSNARK proofs without intricate configurations or dependencies.

## How it Works:

1. **Barretenberg Backend**: `noir_rs` employs a Barretenberg backend adjusted for Rust bindings, crucial for zkSNARK proof generation, verification, and as the ACVM's blackbox solver.
2. **FFI Bindings**: Through FFI, the project binds to the Barretenberg library, ensuring a seamless and efficient interaction.
3. **ACVM Integration**: The ACVM package is fundamental to `noir_rs`, facilitating circuit execution and witness solving, streamlining zkSNARK proof generation.

## Future Work:

**Swift Bridge for Darwin-based Systems**: An upcoming enhancement for `noir_rs` is crafting a Swift bridge, allowing developers to generate and verify zkSNARK proofs within their apps, broadening support to macOS, iOS, and other Darwin-based systems.

## Development Commands:

### Clone repository:
#### Repository uses aztec-packages as a submodule after cloning it initialize submodules:
```
git submodule update --init --recursive
```

### Building the Project:
```
cargo build
```

### Running Tests:
```
cargo test
```

### Building with Specific Target:

Rust supports a wide range of platforms and architectures. Below are some of the commonly used target triplets:

- **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`

To build for a specific target, use:
```
cargo build --target TARGET_TRIPLET
```
Replace `TARGET_TRIPLET` with your desired target from the list above or consult the [official Rust documentation](https://doc.rust-lang.org/beta/rustc/platform-support.html) for more available targets.
# This repository is depricated
# Codebase moved here: [noir_rs](https://github.com/visoftsolutions/noir_rs)

0 comments on commit 94fe79f

Please sign in to comment.