33 releases (20 breaking)

0.46.0 May 21, 2024
0.44.0 Apr 24, 2024
0.41.0 Mar 11, 2024
0.27.0 Sep 20, 2023
0.21.0 Jul 26, 2023

#1237 in Algorithms

Download history 18/week @ 2025-10-20 123/week @ 2025-10-27 44/week @ 2025-11-03 64/week @ 2025-11-10 107/week @ 2025-11-17 6/week @ 2025-11-24 20/week @ 2025-12-15 9/week @ 2025-12-22

2,314 downloads per month
Used in 2 crates (via acvm)

MIT/Apache

550KB
11K SLoC

C++ 6K SLoC Rust 4.5K SLoC // 0.1% comments

Brillig VM

The Brillig VM is a general purpose virtual machine that is designed to execute the Brillig bytecode. It serves as the runtime environment for Brillig, which is a bytecode format used within the Noir ecosystem.

This VM provides a lightweight execution environment for running computational tasks that may be difficult or inefficient to express directly in circuit constraints. This enables Noir programs to perform complex computations outside of the constraint system while still being able to interact with constrained code.

The VM supports various operations including arithmetic operations over fields and integers, memory management, conditional execution, and foreign function calls that can interact with external systems. The VM processes opcodes sequentially, manages memory, and handles control flow, providing the foundation for executing Brillig bytecode generated from Noir programs.

Documentation

For detailed documentation, visit https://noir-lang.github.io/noir/docs/brillig_vm/index.html.

Dependencies

~9MB
~182K SLoC