60 releases (26 stable)

2.6.3 Mar 12, 2024
2.6.0-rc.1 Feb 14, 2024
2.5.0-dev.0 Dec 26, 2023
2.4.0-rc6 Nov 26, 2023
0.1.0 Jan 4, 2023

#1271 in Magic Beans

Download history 5377/week @ 2023-12-21 4085/week @ 2023-12-28 4712/week @ 2024-01-04 5242/week @ 2024-01-11 5822/week @ 2024-01-18 5427/week @ 2024-01-25 6982/week @ 2024-02-01 7412/week @ 2024-02-08 6577/week @ 2024-02-15 4860/week @ 2024-02-22 5661/week @ 2024-02-29 6302/week @ 2024-03-07 6377/week @ 2024-03-14 6208/week @ 2024-03-21 5273/week @ 2024-03-28 4602/week @ 2024-04-04

23,979 downloads per month
Used in 12 crates (5 directly)

Custom license

3.5MB
52K 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

~22–34MB
~520K SLoC