[Roadmap] Noir Development (as of mid-June)

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

  • Plookup Dynamic Arrays

    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.

  • Recursion

    Enable recursive proofs when supported by the proving backend of choice, helpful for compressing and aggregating multiple proofs into one.

Q3 2023

  • Traits

    An abstract interface for types to implement.

  • Sandbox Noir

    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.

  • Linguist Support

    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

  • VS Code Sidebar

    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.

  • Package Registry

    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

image

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!

13 Likes

Plookup Dynamic Arrays :white_check_mark: PR

4 Likes