Readme
Table of Contents
About
Cairo is the first Turing-complete language for creating provable programs for general computation.
Getting Started
Prerequisites
Install Rust
Set up Rust:
rustup override set stable && rustup update
Ensure Rust was installed correctly by running the following from the root project directory:
cargo test
Compiling and running Cairo files
Compile Cairo to Sierra:
cargo run -- bin cairo-compile -- --single-file /path/to/input.cairo /path/to/output.sierra --replace-ids
Compile Sierra to casm (Cairo assembly):
cargo run -- bin sierra-compile -- /path/to/input.sierra /path/to/output.casm
Run Cairo code directly:
cargo run -- bin cairo-run -- --single-file /path/to/file.cairo
See more information here . You can also find Cairo examples in the examples directory.
For running tests specifically, see here: cairo-test
Compiling Starknet Contracts
Compile a Starknet Contract to a Sierra ContractClass:
cargo run -- bin starknet-compile -- --single-file /path/to/input.cairo /path/to/output.json
Or specify the contract path if multiple contracts are defined in the same project:
cargo run -- bin starknet-compile -- /path/to/input/crate /path/to/output.json --contract-path path::to::contract
Compile a Sierra ContractClass to a CASM CompiledClass:
cargo run -- bin starknet-sierra-compile -- /path/to/input.json /path/to/output.casm
Roadmap
The next milestone is to reach feature parity with the old Cairo version.
You can track the exact progress here .
Support
Project assistance
If you want to say thank you and/or support active development of Cairo:
Add a GitHub Star to the project.
Tweet about your Cairo work.
Write interesting articles about the project on Dev.to , Medium or your personal blog.
Together, we can make Cairo better !
Contributing
First off, thanks for taking the time to contribute! Contributions are what make the open-source community such an amazing place to learn, inspire, and create. Any contributions you make will benefit everybody else and are greatly appreciated .
Please read our contribution guidelines , and thank you for being involved!
Authors & contributors
For a full list of all authors and contributors, see the contributors page .
Security
Cairo follows good practices of security, but 100% security cannot be assured.
Cairo is provided "as is" without any warranty . Use at your own risk.
For more information and to report security issues, please refer to our security documentation .
License
This project is licensed under the Apache 2.0 license.
See LICENSE for more information.