Note: The roadmap is a continuous work-in-progress and will be updated as we release newer versions of Noir and re-prioritize features.
This describes a general idea of the language’s expected progression and we warmly welcome you on the journey of shaping Noir together.
Quick intro to Noir
Noir is a domain specific language for creating and verifying zero-knowledge proofs. Its design choices are influenced heavily by Rust.
Noir is designed for accessible and flexible development of provable programs. It abstracts away the need for developers to handcraft low-level circuits and aims at supporting different proving backends for different development needs.
Noir compiles to an intermediate language, which itself can be compiled to an arithmetic circuit or a rank-1 constraint system. This allows one to decouple the programming language completely from the backend, so Noir can support arbitrary backends.
Learn more about the language with Noir Docs.
Language
Q2 2023
-
Enable dynamic arrays to make use of RAM/ROM opcodes when supported by the proving backend of choice, heavily optimizing constraint counts hence proving speed of dynamic arrays.
-
Enable recursive proofs when supported by the proving backend of choice, helpful for compressing and aggregating multiple proofs into one.
Q3 2023
-
An abstract interface for types to implement.
-
Public/private smart contract syntaxes MVP.
-
References
Borrow data rather than move or copy it.
-
Conditional Compilation
Adaptive compilation based on field of choice, e.g.
#[cfg(backend = "bn254")]
.
Tooling
Q2 2023
-
Renewed NPM Packages
For compiling & proving Noir programs written with the latest Noir syntaxes in JavaScript / web browser environments.
-
Language recognition and syntax highlighting on GitHub.
WE NEED YOUR HELP: The PR is currently pending for more public Noir repositories on GitHub. Check out this guide to help Noir meet the popularity requirement.
Q3 2023
-
Carrying out Noir actions such as proving and verifying within the Noir VS Code extension.
-
In-browser VS Code
Writing, proving and verifying Noir programs with VS Code in web browsers.
-
Language Server Protocol Support
Enhanced Noir DevEx across IDEs, adding features such as auto complete, go to definition, documentation on hover, etc.
-
Formatter
Automatic formatting of Noir source code.
-
A site for discovering and downloading Noir packages written by different developers.
-
CLI Package Manager
Installing Noir packages in CLI.
More To Come
- Linter
- Debugger
- Resource Guesstimation
- 3rd-party Integrations
Live Roadmap
For more details of each initiatives, you can find the live roadmap available here.
Suggest what you would like to see first / missing from the list!