The Future of ZK Development is Here: Announcing the Noir 1.0 Pre-Release

Developers
Noir
December 5, 2024
4
MIN READ
Blog
>
Noir
>
Developers
>
The Future of ZK Development is Here: Announcing the Noir 1.0 Pre-Release
|

It’s been a big year for Noir, the universal language for zero-knowledge. 

We made things official with GitHub and became an official coding language, cozied up with Vitalik at the inaugural NoirCon0 in Thailand, and now we’re making zero-knowledge proofs more accessible and powerful for developers worldwide with the Noir 1.0 pre-release. 

Noir is an open-source, proving-system-agnostic language designed specifically for zk applications, which marks a significant advancement in zk app development.

Noir has quickly emerged as a developer favorite in the zk space, boasting over 600 GitHub projects, 900 stars, and 2,000+ VS Code extension installations. Its growing popularity stems from an emphasis on developer experience, featuring an intuitive Rust-inspired syntax that makes zk programming more accessible than ever. Leading projects like zkEmail, zkPassport, zkLogin, and Aztec Network are already leveraging Noir's capabilities to create innovative zk applications. 

Unlocking the Future of Zero-Knowledge

Noir was built with a clear vision: to be the most developer-friendly and versatile language for zero-knowledge applications. As a public good, it empowers developers to build on-chain and off-chain applications with confidence. Its proving system agnostic design means you have complete flexibility to use Noir with supported proving systems like Barretenberg, Halo2, Plonky2, or Groth16. 

With privacy baked into Noir as a default, developers have full control over which aspects they want to expose with a simple pub keyword. No underlying knowledge of cryptography or complicated mathematics is required, and we’re starting to see more and more developers turn to Noir to build their privacy-focused applications such as AnonCast

Built with Noir

Language Features That Put Developers First

The 1.0 pre-release brings a comprehensive set of language features that make writing ZK circuits feel natural and intuitive:

Rich Type System

  • Full support for primitive types (integers, booleans, strings)
  • Complex data structures including arrays, tuples, vectors (including bounded vectors), and hashmaps
  • Advanced features like Options and custom structs
  • Generic type support for flexible, reusable code

Modern Development Experience

  • Familiar control flow with if-else statements and for loops
  • First-class support for comments and logging
  • Variable mutability and shadowing
  • Unconstrained functions for efficient computation
  • Powerful metaprogramming capabilities
  • Sophisticated visibility system for better code organization
  • Support for recursive proofs and proof folding

Comprehensive Library

We’ve already seen many incredible libraries developed by the community, but Noir also ships with its extensive library that includes:

Cryptographic Primitives

  • Multiple hash functions (SHA256, Blake2s, Blake3, Pedersen, Keccak256, Poseidon/Poseidon2, MiMC)
  • Signature schemes (ECDSA, EdDSA, Schnorr, RSA, PLUME)
  • AES128 encryption
  • Advanced curve operations

Data Handling

  • BigNum and BigCurve for arbitrary-precision arithmetic
  • Base64 encoding/decoding
  • JSON parsing capabilities

Professional-Grade Tooling

The feedback is in – developers love Noir! 

We’ve been relentlessly focused on delivering a world-class developer experience with an emphasis on providing tooling to speed up and simplify the development process. 

Development Environment

  • Full Language Server Protocol support
  • VS Code extension and Neovim plugin
  • Integrated debugger
  • Performance analysis with flamegraph support

Package Management

  • Modern package management with Nargo
  • Support for workspaces and dependencies
  • Modular code organization

Cross-Platform Integration

  • NoirJS for JavaScript/TypeScript integration
  • Native bindings for Rust, Swift, and Kotlin/Java
  • Mobile proving capabilities

Multiple Proving Backends

Noir supports integration with different proving systems to cater for varying development needs in e.g. proving times, memory footprint, proof sizes for different applications:

  • UltraHonk and MegaHonk
  • Groth16
  • Marlin
  • Plonky2/3
  • Halo2
  • Nova and HyperNova

What's Next

This pre-release marks the beginning of Noir's journey to 1.0 and we're committed to ensuring stability and security through comprehensive audits before the full release. 

Noir is more than just a language—it's a community-driven effort to make zero-knowledge proofs accessible to every developer. We invite you to:

The future of ZK development is here, and it speaks Noir.

Check Circle 1 Streamline Icon: https://streamlinehq.com
Oops! Something went wrong. Please retry
By subscribing you agree to with our Privacy Policy and provide consent to receive updates from Aztec.