The Leo Programming Language

Leo is a functional, statically-typed programming language built for writing private applications. ## Table of Contents * [1. Overview 🍎](#1-overview) * [2. Build Guide ⚙️️](#2-build-guide) * [2.1 Install Rust 🦀](#21-install-rust) * [2.2 Build from Source Code 🐙](#22-build-from-source-code) * [3. Quick Start 🚀](#3-quick-start) * [4. Troubleshooting 🧰](#4-troubleshooting) * [5. Documentation 📖](#5-documentation) * [6. Contributing 🤝](#6-contributing) * [7. Contributors ❤️](#7-contributors) * [8. License 🛡️](#8-license) ## 1. Overview 🍎 Welcome to the Leo programming language. Leo provides a high-level language that abstracts low-level cryptographic concepts and makes it easy to integrate private applications into your stack. Leo compiles to circuits making zero-knowledge proofs practical. The syntax of Leo is influenced by traditional programming languages like JavaScript, Scala, and Rust, with a strong emphasis on readability and ease-of-use. Leo offers developers with tools to sanity check circuits including unit tests, integration tests, and console functions. Leo is one part of a greater ecosystem for building private applications on [Aleo](https://aleo.org/). The language is currently in an alpha stage and is subject to breaking changes. ## 2. Build Guide ⚙️️ ### 2.1 Install Rust 🦀 We recommend installing Rust using [rustup](https://www.rustup.rs/). You can install `rustup` as follows: - macOS or Linux: ```bash curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh ``` - Windows (64-bit): Download the [Windows 64-bit executable](https://win.rustup.rs/x86_64) and follow the on-screen instructions. - Windows (32-bit): Download the [Windows 32-bit executable](https://win.rustup.rs/i686) and follow the on-screen instructions. ### 2.2 Build from Source Code 🐙 We recommend installing Leo by building from the source code as follows: ```bash # Download the source code git clone https://github.com/AleoHQ/leo cd leo # Install 'leo' $ cargo install --path . ``` Now to use leo, in your terminal, run: ```bash leo ``` ## 3. Quick Start 🚀 Use the Leo CLI to create a new project ```bash # create a new `hello-world` Leo project leo new helloworld cd helloworld # build & setup & prove & verify leo run ``` The `leo new` command creates a new Leo project with a given name. The `leo run` command will compile the program into Aleo instructions and run it. Congratulations! You've just run your first Leo program. ## 4. Troubleshooting 🧰 If you are having trouble installing and using Leo, please check out our [guide](docs/troubleshooting.md). If the issue still persists, please [open an issue](https://github.com/AleoHQ/leo/issues/new/choose). ## 5. Documentation 📖 * [Hello World - Next Steps](https://developer.aleo.org/leo/hello) * [Leo Language Documentation](https://developer.aleo.org/leo/language) * [Leo ABNF Grammar](./docs/grammar/abnf-grammar.txt) * [Homepage](https://developer.aleo.org/overview/) ## 6. Contributing 🤝 Please see our guidelines in the [developer documentation](./CONTRIBUTING.md) ## 7. Contributors ❤️ Thank you for helping make Leo better! [What do the emojis mean?🧐](https://allcontributors.org/docs/en/emoji-key)
d0cd
d0cd

💻 🚧 💬 👀
Collin Chin
Collin Chin

💻 📖 🚧 👀
Howard Wu
Howard Wu

🤔 🚧 🔬 👀
Alessandro Coglio
Alessandro Coglio

📖 🔬 💬 👀
Eric McCarthy
Eric McCarthy

📖 🔬 💬 👀
Raymond Chu
Raymond Chu

🤔 💻 🔬
ljedrz
ljedrz

🐛 💻 💬
Add your contributions
## 8. License 🛡️ [![License: GPL v3](https://img.shields.io/badge/License-GPLv3-blue.svg)](./LICENSE.md)