44 releases (24 breaking)

0.27.0 Sep 20, 2023
0.25.0 Sep 4, 2023
0.21.0 Jul 26, 2023
0.8.1 Mar 30, 2023
0.3.0 Dec 31, 2022

#6 in #acir

MIT license

97KB
2K SLoC

ACIR - Abstract Circuit Intermediate Representation

ACIR is an NP complete language that generalizes R1CS and arithmetic circuits while not losing proving system specific optimizations through the use of black box functions.

ACVM - Abstract Circuit Virtual Machine

This can be seen as the ACIR compiler. It will take an ACIR instance and convert it to the format required by a particular proving system to create a proof.

How to add a new crate to the workspace

  • Create the new crate with the current version of the other crates.
  • In root Cargo.toml, add the new crate to the workspace members list.
  • If you want to import it from multiple packages, you can add it as a dependency in the root Cargo.toml.
  • In release-please-config.json:
    • Add a package entry
    • Add the crate name to the linked-versions plugin list
    • If you added the new crate as a dependency in the root Cargo.toml, add it to the extra-files of the root package.
  • In .release-please-manifest.json, add the new crate with the same version of the others.
  • In publish.yml, add the new crate to the publish job after its dependencies.

Dependencies

~1.7–3MB
~63K SLoC