24 releases (breaking)
0.46.0 | May 21, 2024 |
---|---|
0.44.0 | Apr 24, 2024 |
0.42.0 | Mar 25, 2024 |
0.38.0 | Dec 18, 2023 |
0.21.0 | Jul 26, 2023 |
#1463 in Cryptography
40 downloads per month
Used in 5 crates
(4 directly)
440KB
8K
SLoC
The Noir Programming Language
Noir is a Domain Specific Language for SNARK proving systems. It has been designed to use any ACIR compatible proving system.
This implementation is in early development. It has not been reviewed or audited. It is not suitable to be used in production. Expect bugs!
Quick Start
Read the installation section from the Noir docs.
Once you have read through the documentation, you can visit Awesome Noir to run some of the examples that others have created.
Getting Help
Join the Noir forum or Discord
Contributing
See CONTRIBUTING.md.
Future Work
The current focus is to gather as much feedback as possible while in the alpha phase. The main focuses of Noir are safety and developer experience. If you find a feature that does not seem to be in line with these goals, please open an issue!
Minimum Rust version
This workspace's minimum supported rustc version is 1.74.1.
License
Noir is free and open source. It is distributed under a dual license. (MIT/APACHE)
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in this repository by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.
lib.rs
:
This crate provides the implementation of BlackBox functions of ACIR and Brillig. For functions that are backend-dependent, it provides a Trait [BlackBoxFunctionSolver] that must be implemented by the backend. For functions that have a reference implementation, such as [keccak256], this crate exports the reference implementation directly.
Dependencies
~8.5MB
~167K SLoC