Skip to content

ankiitagrwal/noirlings

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

59 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

NOIRLINGS

An interactive tutorial to get you up and running with Noir


A hands-on, interactive way to learn Noir programming language through practical exercises. Perfect for both beginners and developers looking to sharpen their Noir skills.

Setup and Run

  1. Clone and enter the repository:
git clone https://github.com/satyambnsal/noirlings.git
cd noirlings

Make sure you have both Rust and Noir installed. If you don't have it installed: Run

./install.sh

If you see any error in terminal, install them separately with following commands

  1. Install Rust and Cargo:
curl https://sh.rustup.rs -sSf | sh -s
  1. Install Noir:
curl -L https://raw.githubusercontent.com/noir-lang/noirup/refs/heads/main/install | bash
noirup
  1. After Installing Rust and Nargo, you are ready to run your exercises. Lets first install the project binary with
cargo install --path .
  1. Now you should have noirlings available as command. You can verify the installation with
noirlings --version

Start Exercises 💻

noirlings watch 

How Noirlings Works

Noirlings is designed to help you learn Noir through hands-on exercises:

  1. Each exercise is a Noir file containing a problem to solve
  2. Run noirlings watch to start - you'll see an error message for the first exercise
  3. Open the exercise file in your editor and start solving
  4. Type hint in watch mode for help, or run noirlings hint exercise_name
  5. Remove the // I AM NOT DONE comment when you've solved an exercise
  6. Watch mode automatically verifies your solution and moves to the next exercise

VSCode Support

For syntax highlighting and language support:

  1. Install the Noir VSCode Extension
  2. Open the project folder in VSCode

Contributing

Adding New Exercises

  1. Create exercise file in ./exercises/<module_name>/<exercise_name>.nr
  2. Add exercise metadata to info.toml:
[[exercises]]
name = "exercise_name"
path = "exercises/module/exercise_name.nr"
mode = "test"
hint = "Your helpful hint here"
  1. Test your exercise:
noirlings run exercise_name
  1. Run test suite
  2. Submit a PR!

Testing

Run specific tests:

cargo test noir

Run all tests:

cargo test

Questions?

If you need any help while doing the exercises, feel free to ask in the Q&A category of the discussions if your question wasn't asked yet 💡

Known Issues

  1. If you get permission denied error when running noirlings watch command. Check permissions of ~/.nargo/github.com and ~/.nargo You can change permission of folder with chmod 777 ~/.nargo

Noir Resources

Credits

TODO

  • [] Add Support for nargo info for each exercise to print ACIR Opcodes count and Brillig Opcode count.

About

An interactive tutorial to get you up and running with Noir

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Noir 55.1%
  • Rust 39.9%
  • Shell 5.0%