🦁 The Leo Programming Language. A Programming Language for Formally Verified, Zero-Knowledge Applications
Go to file
Collin Chin e12b030428
Add all contributors 2 (#2477)
* add more contributors

* add remaining contributors
2023-07-06 12:23:25 -07:00
.cargo one more fix for cargo config 2021-06-16 15:05:29 +03:00
.circleci [Feature] Support ChaCha::rand_* (#2433) 2023-06-28 21:02:50 -07:00
.github remove brew update command from ci (#2445) 2023-07-05 15:45:06 -07:00
.resources chore(leo): bump version for new release 2023-07-05 21:25:34 -07:00
compiler chore(leo): bump version for new release 2023-07-05 21:25:34 -07:00
docs chore(leo): bump version for new release 2023-07-05 21:25:34 -07:00
errors chore(leo): bump version for new release 2023-07-05 21:25:34 -07:00
examples [Feature] Support ChaCha::rand_* (#2433) 2023-06-28 21:02:50 -07:00
leo chore(leo): bump version for new release 2023-07-05 21:25:34 -07:00
tests chore(leo): bump version for new release 2023-07-05 21:25:34 -07:00
.all-contributorsrc Add all contributors 2 (#2477) 2023-07-06 12:23:25 -07:00
.codecov.yml Adds configuration files for tooling 2020-06-07 22:53:45 -07:00
.gitattributes state the input files should be cloned with lf 2022-04-28 12:56:08 -07:00
.gitignore added scalar tests 2022-05-14 20:27:08 -07:00
.rustfmt.toml Update fmt and pre-commit config 2023-03-26 23:16:19 -07:00
.rusty-hook.toml Update fmt and pre-commit config 2023-03-26 23:16:19 -07:00
build.rs Fmts and clippies 2023-03-26 23:18:03 -07:00
Cargo.lock chore(leo): bump version for new release 2023-07-05 21:25:34 -07:00
Cargo.toml chore(leo): bump version for new release 2023-07-05 21:25:34 -07:00
CONTRIBUTING.md prepare for testnet3 as repo branch 2022-07-18 18:28:23 -07:00
DEVELOPMENT.md Adds DEVELOPMENT.md 2021-02-24 20:28:27 -08:00
LICENSE.md Adds LICENSE.md 2021-02-10 22:23:45 -08:00
README.md Add all contributors 2 (#2477) 2023-07-06 12:23:25 -07:00
SECURITY.md Cleanup out dated docs 2022-08-18 15:45:30 -07:00

[![All Contributors](https://img.shields.io/badge/all_contributors-27-orange.svg?style=flat-square)](#contributors-)

The Leo Programming Language

Leo is a functional, statically-typed programming language built for writing private applications.

Table of Contents

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. 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. You can install rustup as follows:

  • macOS or Linux:

    curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
    
  • Windows (64-bit):

    Download the Windows 64-bit executable and follow the on-screen instructions.

  • Windows (32-bit):

    Download the Windows 32-bit executable and follow the on-screen instructions.

2.2 Build from Source Code 🐙

We recommend installing Leo by building from the source code as follows:

# 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:

leo

3. Quick Start 🚀

Use the Leo CLI to create a new project

# 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.

If the issue still persists, please open an issue.

5. Documentation 📖

6. Contributing 🤝

Please see our guidelines in the developer documentation

7. Contributors ❤️

Thank you for helping make Leo better!
What do the emojis mean?🧐

d0cd
d0cd

💻 🚧 💬 👀
Collin Chin
Collin Chin

💻 📖 🚧 👀
Howard Wu
Howard Wu

🤔 🚧 🔬 👀
Alessandro Coglio
Alessandro Coglio

📖 🔬 💬 👀
Eric McCarthy
Eric McCarthy

📖 🔬 💬 👀
Raymond Chu
Raymond Chu

🤔 💻 🔬
ljedrz
ljedrz

🐛 💻 💬
Mazdak Farrokhzad
Mazdak Farrokhzad

💻
Damir Shamanaev
Damir Shamanaev

💻
gluax
gluax

💻
0rphon
0rphon

💻
Max Bruce
Max Bruce

💻
Sergey Isaev
Sergey Isaev

💻
Francisco Strambini
Francisco Strambini

💻
François Garillot
François Garillot

💻
Weikeng Chen
Weikeng Chen

🔬
sptg
sptg

🐛 💻
LouisWT
LouisWT

💻
yuliyu123
yuliyu123

💻
detailyang
detailyang

💻
Tom-OriginStorage
Tom-OriginStorage

💻
omahs
omahs

💻
Haruka
Haruka

🐛 💻
swift-mx
swift-mx

💻
allcontributors[bot]
allcontributors[bot]

📖
actions-user[bot]
actions-user[bot]

📖
Dependabot
Dependabot

💻
Add your contributions

8. License 🛡️

License: GPL v3