/cairo

Cairo is the first Turing-complete language for creating provable programs for general computation.

Primary LanguageRustApache License 2.0Apache-2.0

Cairo 🐺

⚡ Супер ⚡ быстрый ⚡ компилятор для Cairo, написанный на 🦀 Rust 🦀


Сообщить о баге - Предложить улучшение - Задать вопрос

GitHub Workflow Status Project license Pull Requests welcome

Содержание

О проекте

Cairo - это первый полноценный по Тьюрингу язык для создания доказуемых программ для общих вычислений Cairo is the first Turing-complete language for creating provable programs for general computation.

Начало

Подготовка

  • Установка Rust
  • Установим Rust:
rustup override set stable && rustup update

Убедитесь, что rust установлен корректно путем выполнения следующей команды:

cargo test

Компиляция и запуск файлов Cairo

Скомпилируем Cairo в Sierra:

cargo run --bin cairo-compile -- --single-file /path/to/input.cairo /path/to/output.sierra --replace-ids

Скомпилируем Sierra в casm (Cairo assembly):

cargo run --bin sierra-compile -- /path/to/input.sierra /path/to/output.casm

Запустим код Cairo напрямую:

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

Больше информации здесь. Более того, вы можете найти примеры на Cairo в директории examples .

Для запуска специфических тестов, смотрите здесь: cairo-test

Компиляция контрактов Starknet

Скомпилирует контракт Starknet в ContractClass Sierra:

cargo run --bin starknet-compile -- --single-file /path/to/input.cairo /path/to/output.json

Или укажем путь к контракту, если множество контрактов определены в одном и том же проекте:

cargo run --bin starknet-compile -- /path/to/input/crate /path/to/output.json --contract-path path::to::contract

Скомпилируем ContractClass, относящийся к CompiledClass'у:

cargo run --bin starknet-sierra-compile -- /path/to/input.json /path/to/output.casm

Разработка

Установка языкового сервера

Следуйте инструкциям в vscode-cairo.

Дорожная карта

Следующей целью является достижение паритета по возможностям со старой версией Cairo. Вы можете отслеживать точный прогресс здесь.

Поддержка

Помощь проекту

Если вы хотите поблагодарить и/или поддержать активную разработку Cairo:

  • Поставьте звезду GitHub проекту.
  • Сделайте твит о вашей разработке на Cairo.
  • Пишите интересные статьи о проекте на Dev.to, Medium или в вашем личном блоге.

Вместе мы можем сделать Cairo лучше!

Вклад

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.

See LICENSE for more information.