Skip to main content

ape-cairo: A compiler plugin for the cairo programming language

Project description

Quick Start

Ape compiler plugin around the Cairo language.

Dependencies

Installation

via pip

You can install the latest release via pip:

pip install ape-cairo

via setuptools

You can clone the repository and use setuptools for the most up-to-date version:

git clone https://github.com/ApeWorX/ape-cairo.git
cd ape-cairo
python3 setup.py install

Quick Usage

First, you will need to tell ape-cairo how to use the Cairo compiler. There are two ways to do this:

  1. Configure your Cairo manifest path in your ape-config.yaml.
  2. Build or add Cairo compiler binaries to your $PATH.

Both options require cloning the Cairo compiler source code:

git clone git@github.com:starkware-libs/cairo.git
cd cairo
git fetch --all
git checkout <tag>  # e.g. v1.0.0-alpha.6

To do the first option, add the following to your ape-config.yaml file:

cairo:
  manifest: /Users/home/path/to/cairo/Cargo.toml

Now, when compiling, Ape will use the command cargo run --bin <BIN> --manifest-path <CAIRO-MANIFEST>. To do the second option instead, build the release binaries for your OS:

cargo build --release

NOTE: This requires being in the same directory as Cairo.

After the build completes, add the target path to your global $PATH variable. (You may want to add this to your .zshrc / .bashrc file):

export PATH=$PATH:$HOME/path/to/cairo/target/release

Verify you have sierra-compile in your $PATH by doing:

which sierra-compile

WARN: Note that when using Cairo-lang the python package, it will add conflicting binaries with the same name. You will need to ensure you are using the correct binaries if you have cairo-lang the Python package installed.

which starknet-compile

Alternatively, the first approach avoids this problem.

Using the Compiler

In a project directory where there are .cairo files in your contracts/ directory, run the compile command:

ape compile

It should create ContractType objects in your .build/ folder containing the necessary Sierra code for contract declaration.

Development

This project is in development and should be considered a beta. Things might not be in their final state and breaking changes may occur. Comments, questions, criticisms and pull requests are welcomed.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ape-cairo-0.6.1.tar.gz (20.3 kB view details)

Uploaded Source

Built Distribution

ape_cairo-0.6.1-py3-none-any.whl (11.4 kB view details)

Uploaded Python 3

File details

Details for the file ape-cairo-0.6.1.tar.gz.

File metadata

  • Download URL: ape-cairo-0.6.1.tar.gz
  • Upload date:
  • Size: 20.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.16

File hashes

Hashes for ape-cairo-0.6.1.tar.gz
Algorithm Hash digest
SHA256 f6820045c0d70907f407433bab1812b44f7863a0cb4544469a2165643ee6b1db
MD5 7bdddf37de8f78f7fb9c3d8867781131
BLAKE2b-256 be4249ff4501c4c55b2dc80cb7f62b47d3910e921a03e2d4f06a58cbf3a9ea2f

See more details on using hashes here.

File details

Details for the file ape_cairo-0.6.1-py3-none-any.whl.

File metadata

  • Download URL: ape_cairo-0.6.1-py3-none-any.whl
  • Upload date:
  • Size: 11.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.16

File hashes

Hashes for ape_cairo-0.6.1-py3-none-any.whl
Algorithm Hash digest
SHA256 18a79481534cd39c626bb003052d7b25c769ae40bf299213eb7d34233217e45e
MD5 c10c5f86f6333a669d8470d9720209c3
BLAKE2b-256 b27bccf9fa024619351cfcfc819f3dcaddc65f6d5d65ec1ac2dfbacc95e98ec7

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page