.cargo | ||
.github | ||
.resources | ||
.travis | ||
ast | ||
compiler | ||
examples | ||
gadgets | ||
input | ||
leo | ||
linter | ||
package | ||
state | ||
typed | ||
.codecov.yml | ||
.gitignore | ||
.rustfmt.toml | ||
.rusty-hook.toml | ||
.travis.yml | ||
Cargo.lock | ||
Cargo.toml | ||
FAQs.md | ||
README.md |
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 exists to provide a simple high-level language that compiles to a rank one constraint system (R1CS) circuit. With Leo, you can write circuits to support zero-knowledge tokens, private stable coins, and decentralized marketplaces.
The syntax of Leo is influenced by JavaScript, Python, Scala, and Rust with a strong emphasis on readability and ease-of-use.
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.2a Build from Crates.io
We recommend installing Leo this way. In your terminal, run:
cargo install leo
Now to use Leo, in your terminal, run:
leo
2.2b Build from Source Code
Alternatively, you can install snarkOS by building from the source code as follows:
# Download the source code
git clone https://github.com/AleoHQ/leo
cd leo
# Build in release mode
$ cargo build --release
This will generate an executable under the ./target/release
directory. To run snarkOS, run the following command:
./target/release/leo
3. Quick Start
Use the Leo CLI to create a new project
leo new hello_world
cd hello_world
This creates a directory with the following structure:
hello_world/
├── Leo.toml # Your program manifest
├── inputs/
│ └── hello_world.in # Your program inputs
└── src/
└── main.leo # Your program file
Let's run the project.
3.1 Zero Knowledge in one line
leo run
This command will compile the program, generate keys for a trusted setup, fetch inputs, generate a proof and verify it.
Congratulations! You've just run your first Leo program.
4. Flying Tour
WIP