Skip to content
@arkworks-rs

arkworks

An ecosystem for developing and programming with zkSNARKs

arkworks

arkworks is a Rust ecosystem for zkSNARK programming. Libraries in the arkworks ecosystem provide efficient implementations of all components required to implement zkSNARK applications, from generic finite fields to R1CS constraints for common functionalities.

Getting started

Below are some resources for getting started working with arkworks crates:

Getting Involved

We have a Discord community where folks can ask questions and learn about zkSNARK programming. We also have a Twitter where we (infrequently) post updates.

Repo index

Working with SNARKs

  • snark - defines interfaces for a SNARK, for your application to generically use them
  • relations - defines interfaces for relations, e.g. r1cs, AIR

SNARK proving systems

Fully packaged SNARK crates

  • groth16
  • marlin - universal setup SNARK for r1cs
  • gm17
  • gemini - an elastic proof system for streaming inputs
  • ripp -inner pairing product argument system

Circuit building

Algebra

Citation

If you use arkworks libraries in your research projects, please cite them using the following template:

@software{arkworks,
  author = {arkworks contributors},
  title = {\texttt{arkworks} zkSNARK ecosystem},
  url = {https://arkworks.rs},
  year = {2022},
}

Pinned Loading

  1. algebra algebra Public

    Libraries for finite field, elliptic curve, and polynomial arithmetic

    Rust 621 243

  2. groth16 groth16 Public

    A Rust implementation of the Groth16 zkSNARK

    Rust 247 99

  3. r1cs-std r1cs-std Public

    R1CS constraints for bits, fields, and elliptic curves

    Rust 135 59

  4. marlin marlin Public

    A Rust library for the Marlin preprocessing zkSNARK

    Rust 311 85

  5. crypto-primitives crypto-primitives Public

    Interfaces and implementations of cryptographic primitives, along with R1CS constraints for them

    Rust 170 81

  6. sumcheck sumcheck Public

    linear-time sumcheck protocol for multilinear polynomials and related addends

    Rust 51 29

Repositories

Showing 10 of 28 repositories
  • crypto-primitives Public

    Interfaces and implementations of cryptographic primitives, along with R1CS constraints for them

    arkworks-rs/crypto-primitives’s past year of commit activity
    Rust 170 Apache-2.0 81 37 9 Updated Oct 11, 2024
  • algebra Public

    Libraries for finite field, elliptic curve, and polynomial arithmetic

    arkworks-rs/algebra’s past year of commit activity
    Rust 621 Apache-2.0 243 144 (11 issues need help) 22 Updated Oct 7, 2024
  • sumcheck Public

    linear-time sumcheck protocol for multilinear polynomials and related addends

    arkworks-rs/sumcheck’s past year of commit activity
    Rust 51 Apache-2.0 29 4 2 Updated Oct 2, 2024
  • r1cs-std Public

    R1CS constraints for bits, fields, and elliptic curves

    arkworks-rs/r1cs-std’s past year of commit activity
    Rust 135 Apache-2.0 59 22 12 Updated Sep 13, 2024
  • circom-compat Public

    Arkworks bindings to Circom's R1CS, for Groth16 Proof and Witness generation in Rust.

    arkworks-rs/circom-compat’s past year of commit activity
    Rust 232 Apache-2.0 113 21 7 Updated Sep 11, 2024
  • ldt Public

    An `arkworks` library for low-degree testing

    arkworks-rs/ldt’s past year of commit activity
    Rust 20 Apache-2.0 4 1 1 Updated Sep 10, 2024
  • nimue Public

    Fiat-Shamir for the masses.

    arkworks-rs/nimue’s past year of commit activity
    Rust 41 BSD-3-Clause 10 7 1 Updated Sep 9, 2024
  • groth16 Public

    A Rust implementation of the Groth16 zkSNARK

    arkworks-rs/groth16’s past year of commit activity
    Rust 247 Apache-2.0 99 7 4 Updated Aug 26, 2024
  • snark Public

    Interfaces for Relations and SNARKs for these relations

    arkworks-rs/snark’s past year of commit activity
    Rust 785 Apache-2.0 208 29 4 Updated Aug 6, 2024
  • ripp Public

    Argument systems for inner pairing products

    arkworks-rs/ripp’s past year of commit activity
    Rust 41 Apache-2.0 15 3 4 Updated Jul 31, 2024