2020-12-19 05:58:27 +03:00
< p align = "center" >
2021-03-07 23:31:40 +03:00
< img width = "1412" src = "https://cdn.aleo.org/leo/banner.png" >
2020-12-19 05:58:27 +03:00
< / p >
2020-08-19 11:27:47 +03:00
< h1 align = "center" > The Leo Programming Language< / h1 >
2020-06-16 22:55:59 +03:00
2020-08-19 11:09:14 +03:00
< p align = "center" >
2023-07-06 21:07:07 +03:00
< a href = "https://circleci.com/gh/AleoHQ/leo" > < img src = "https://circleci.com/gh/AleoHQ/leo.svg?style=svg&circle-token=00960191919c40be0774e00ce8f7fa1fcaa20c00" > < / a >
2022-07-19 04:28:23 +03:00
< a href = "https://codecov.io/gh/AleoHQ/leo" > < img src = "https://codecov.io/gh/AleoHQ/leo/branch/testnet3/graph/badge.svg?token=S6MWO60SYL" / > < / a >
2024-01-07 08:56:47 +03:00
< a href = "https://discord.gg/aleo" > < img src = "https://img.shields.io/discord/700454073459015690?logo=discord" / > < / a >
2023-11-30 21:43:38 +03:00
< a href = "https://github.com/AleoHQ/leo/blob/testnet3/CONTRIBUTORS.md" > < img src = "https://img.shields.io/badge/contributors-393-ee8449" / > < / a >
2024-01-16 05:17:41 +03:00
< a href = "https://twitter.com/AleoHQ" > < img src = "https://img.shields.io/twitter/follow/AleoHQ?style=social" / > < / a >
2020-08-19 11:09:14 +03:00
< / p >
2023-10-20 10:04:48 +03:00
< div id = "top" > < / div >
2020-08-18 03:21:10 +03:00
Leo is a functional, statically-typed programming language built for writing private applications.
2020-06-30 04:37:52 +03:00
2020-08-18 03:21:10 +03:00
## <a name='TableofContents'></a>Table of Contents
2023-07-07 18:21:01 +03:00
* [🍎 Overview ](#-overview )
* [⚙️️ Build Guide ](#-build-guide )
* [🦀 Install Rust ](#-install-rust )
* [🐙 Build from Source Code ](#-build-from-source-code )
* [🚀 Quick Start ](#-quick-start )
* [🧰 Troubleshooting ](#-troubleshooting )
* [📖 Documentation ](#-documentation )
* [🤝 Contributing ](#-contributing )
* [❤️ Contributors ](#-contributors )
* [🛡️ License ](#-license )
2020-04-24 03:43:58 +03:00
2020-08-18 03:21:10 +03:00
2023-07-07 01:08:15 +03:00
## 🍎 Overview
2021-02-25 07:06:04 +03:00
2020-08-18 03:21:10 +03:00
Welcome to the Leo programming language.
2020-04-24 03:43:58 +03:00
2020-08-19 11:34:50 +03:00
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.
2020-04-24 03:43:58 +03:00
2020-08-19 11:34:50 +03:00
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.
2020-08-18 22:15:14 +03:00
2022-08-19 01:45:30 +03:00
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.
2020-04-24 03:43:58 +03:00
2023-07-07 01:08:15 +03:00
## ⚙️️ Build Guide
2020-05-21 21:03:43 +03:00
2023-07-07 01:08:15 +03:00
### 🦀 Install Rust
2020-08-18 03:21:10 +03:00
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.
2023-07-07 01:08:15 +03:00
### 🐙 Build from Source Code
2020-08-18 03:21:10 +03:00
2022-08-19 01:45:30 +03:00
We recommend installing Leo by building from the source code as follows:
2020-05-21 21:03:43 +03:00
2020-08-18 03:21:10 +03:00
```bash
# Download the source code
git clone https://github.com/AleoHQ/leo
cd leo
2022-08-24 12:42:24 +03:00
# Install 'leo'
$ cargo install --path .
2020-08-18 03:21:10 +03:00
```
2022-08-24 12:46:43 +03:00
Now to use leo, in your terminal, run:
2022-08-24 12:46:13 +03:00
```bash
leo
```
2023-07-07 01:08:15 +03:00
## 🚀 Quick Start
2020-08-18 03:21:10 +03:00
Use the Leo CLI to create a new project
```bash
2021-04-21 00:29:10 +03:00
# create a new `hello-world` Leo project
2022-08-19 01:45:30 +03:00
leo new helloworld
cd helloworld
2020-08-18 06:21:24 +03:00
# build & setup & prove & verify
2023-09-29 20:00:07 +03:00
leo run main 0u32 1u32
2020-08-18 03:21:10 +03:00
```
2020-08-18 06:21:24 +03:00
The `leo new` command creates a new Leo project with a given name.
2022-08-19 01:45:30 +03:00
The `leo run` command will compile the program into Aleo instructions and run it.
2020-08-18 06:21:24 +03:00
Congratulations! You've just run your first Leo program.
2023-07-07 01:08:15 +03:00
## 🧰 Troubleshooting
2023-02-01 15:50:46 +03:00
If you are having trouble installing and using Leo, please check out our [guide ](docs/troubleshooting.md ).
2022-11-03 07:44:32 +03:00
If the issue still persists, please [open an issue ](https://github.com/AleoHQ/leo/issues/new/choose ).
2023-07-07 01:08:15 +03:00
## 📖 Documentation
2020-08-18 06:21:24 +03:00
2023-03-16 03:26:51 +03:00
* [Hello World - Next Steps ](https://developer.aleo.org/leo/hello )
* [Leo Language Documentation ](https://developer.aleo.org/leo/language )
2023-07-11 01:07:30 +03:00
* [Leo ABNF Grammar ](https://github.com/AleoHQ/grammars/blob/master/leo.abnf )
2022-09-06 15:17:50 +03:00
* [Homepage ](https://developer.aleo.org/overview/ )
2020-08-18 06:21:24 +03:00
2023-07-07 01:08:15 +03:00
## 🤝 Contributing
2020-08-18 06:21:24 +03:00
2022-09-06 15:17:50 +03:00
Please see our guidelines in the [developer documentation ](./CONTRIBUTING.md )
2020-08-18 03:21:10 +03:00
2023-07-07 01:08:15 +03:00
## ❤️ Contributors
2023-07-06 09:28:03 +03:00
2023-11-30 04:24:38 +03:00
View all Leo contributors [here ](./CONTRIBUTORS.md ).
2023-07-07 04:11:11 +03:00
2023-07-07 01:08:15 +03:00
## 🛡️ License
2020-08-19 11:09:14 +03:00
[![License: GPL v3 ](https://img.shields.io/badge/License-GPLv3-blue.svg )](./LICENSE.md)
2023-10-20 10:04:48 +03:00
< p align = "right" > < a href = "#top" > 🔼 Back to top< / a > < / p >