Skip to content
This repository has been archived by the owner on Apr 9, 2024. It is now read-only.

Introduce serde-reflection for ACIR cpp codegen #434

Closed
Savio-Sou opened this issue Jul 13, 2023 · 1 comment
Closed

Introduce serde-reflection for ACIR cpp codegen #434

Savio-Sou opened this issue Jul 13, 2023 · 1 comment
Assignees
Labels
enhancement New feature or request

Comments

@Savio-Sou
Copy link
Contributor

Problem

We have been utilizing largely manual bindings of ACIR --> C++ for interoperation between Noir and barretenberg (Aztec Lab's proving backend written in C++) with the use of e.g. acvm-backend-barretenberg, acir-to-bberg-circuit.

This has been causing growing pain at interoperation and identification of breaking ACIR changes with the continuous changes introduced at both Noir's and barretenberg's ends.

Happy Case

Introduce serde-reflection into the ACVM tech stack for automated codegen of ACIR in C++.

This should also serve useful down the road when there is the need to codegen ACIR in other languages for integrating Noir with other proving backends written in other languages.

Alternatives Considered

We can opt for a proper Interface Definition Language (IDL) for even more robust multilingual codegen, but that would require more explorations and engineering efforts.

For now serde-reflection should be sufficient for what is needed. We can revisit IDL down the road when the need arises.

Additional Context

No response

Would you like to submit a PR for this Issue?

No

Support Needs

No response

@Savio-Sou
Copy link
Contributor Author

The issue is minimally completed at the moment where the serde-reflection codegen is triggered manually when needed (i.e. when there is a change in the Noir <> backend interface).

We can revisit how best to integrate and automate the codegen at builds at a later date.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
enhancement New feature or request
Projects
Archived in project
Development

Successfully merging a pull request may close this issue.

3 participants