36 stable releases

1.11.0 Mar 30, 2024
1.10.0 Oct 20, 2023
1.9.3 Aug 15, 2023
1.9.1 Jul 24, 2023
1.0.4 Nov 7, 2020

#1176 in Magic Beans

Download history 18/week @ 2024-02-21 18/week @ 2024-02-28 2/week @ 2024-03-06 7/week @ 2024-03-13 154/week @ 2024-03-27 22/week @ 2024-04-03

176 downloads per month

GPL-3.0 license

1MB
15K SLoC

The Leo Programming Language

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

Table of Contents

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

⚙️️ Build Guide

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

🐙 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

🚀 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 main 0u32 1u32

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.

🧰 Troubleshooting

If you are having trouble installing and using Leo, please check out our guide.

If the issue still persists, please open an issue.

📖 Documentation

🤝 Contributing

Please see our guidelines in the developer documentation

❤️ Contributors

View all Leo contributors here.

🛡️ License

License: GPL v3

🔼 Back to top

Dependencies

~30–49MB
~836K SLoC