74 releases (33 stable)

2.9.0-dev.0 Oct 20, 2024
2.8.4 Oct 7, 2024
2.7.0-rc.3 Jul 16, 2024
2.6.3 Mar 12, 2024
0.1.0 Jan 4, 2023

#4 in #stark-net

Download history 6057/week @ 2024-07-29 5666/week @ 2024-08-05 6704/week @ 2024-08-12 4673/week @ 2024-08-19 4100/week @ 2024-08-26 4813/week @ 2024-09-02 5029/week @ 2024-09-09 7430/week @ 2024-09-16 5950/week @ 2024-09-23 4693/week @ 2024-09-30 6878/week @ 2024-10-07 4780/week @ 2024-10-14 3590/week @ 2024-10-21 5815/week @ 2024-10-28 5806/week @ 2024-11-04 5735/week @ 2024-11-11

21,368 downloads per month
Used in 13 crates (6 directly)

Custom license

4.5MB
58K SLoC

Compiling and running cairo files

cargo run --bin cairo-run -- --single-file /path/to/file.cairo

If we want to run code that is gas tested:

cargo run --bin cairo-run -- --single-file /path/to/file.cairo --available-gas 200

We currently only run the main function with no arguments beside implicits.

Example

// Calculates fib...
fn main() -> u128 {
    fib(1_u128, 1_u128, 100_u128)
}

fn fib(a: u128, b: u128, n: u128) -> u128 {
    if n == 0 {
        a
    } else {
        fib(b, a + b, n - 1_u128)
    }
}

Additional Information

  • When compiling with --available-gas, if there are cycles in the code, calls to withdraw_gas_all will be automatically added.
  • Functions with calls to withdraw_gas_all will not compile without --available-gas value.
  • Functions without calls to withdraw_gas_all will not compile with --available-gas value.
  • When running functions returning arrays --print-full-memory should probably be used, to actually see the values contained in the array.

Dependencies

~27–38MB
~627K SLoC