A minimal template for the Cairo 101 workshop
Before we begin installing Cairo, we first need to make sure we have Rust installed.
Run the following command to check if you already have Rust installed:
cargo --version
If it returns a version number, skip to Step 1. If not, Rust is not present in your system and we need to install it.
We recommend following the instructions for your system, shown in the official Rust docs. After that, rerun the previous command to validate Rust was successfully installed.
For Cairo, since the language is still in active developmment, we recommend compiling Cairo from source like so:
# Make sure we have the latest stable Rust version
$ rustup override set stable && rustup update
# Clone the Cairo compiler to the $HOME directory
$ cd ~ && git clone [email protected]:starkware-libs/cairo.git && cd cairo
# Generate release binaries
$ cargo build --all --release
NOTE: Keeping Cairo up to date
Now that your Cairo compiler is in a cloned repository, all you will need to do is pull the latest changes and rebuild as follows:
$ cd ~/cairo && git fetch && git pull && cargo build --all --release
Now that we have built the Cairo 1.0 binaries, we need to add them to the PATH environment variable.
Add the following in your .bashrc
or .zshrc
:
export PATH="$HOME/cairo/target/release:$PATH"
After that, open a new shell and check that the following command returns a version number:
cairo-compile --version
Scarb is a package manager from Software Mansion for Cairo projects.
The installation process is similar to Cairo:
# Make sure we have the latest stable Rust version
$ rustup override set stable && rustup update
# Clone the Scarb repo to the $HOME directory
$ cd ~ && git clone [email protected]:software-mansion/scarb && cd scarb
# Generate release binaries
$ cargo build --all --release
# Add the Scarb binary to PATH
export PATH="$HOME/scarb/target/release:$PATH"
- Disable previous Cairo 0.x extension if you already had it
- Install the Cairo 1 extension for proper syntax highlighting and code navigation. Just follow the steps indicated here.
From Step 1, the cairo-language-server
binary should be built and executing this command will copy its path into your clipboard.
$ which cairo-language-server | pbcopy
Update the languageServerPath
of the Cairo 1.0 extension by pasting the path.
The Cairo template currently supports building and testing contracts.
Build the project.
$ make build
Run the tests in src/test
:
$ make test
Format the Cairo source code (using Scarb):
$ make fmt
This repo was generated from the auditless template for Cairo 1