https://github.com/ProvableHQ/leo
๐ฆ The Leo Programming Language. A Programming Language for Formally Verified, Zero-Knowledge Applications
https://github.com/ProvableHQ/leo
compiler leo programming-language zero-knowledge zksnarks
Last synced: 18 days ago
JSON representation
๐ฆ The Leo Programming Language. A Programming Language for Formally Verified, Zero-Knowledge Applications
- Host: GitHub
- URL: https://github.com/ProvableHQ/leo
- Owner: ProvableHQ
- License: gpl-3.0
- Created: 2020-03-10T03:54:41.000Z (about 5 years ago)
- Default Branch: mainnet
- Last Pushed: 2024-10-29T17:27:50.000Z (6 months ago)
- Last Synced: 2024-10-29T18:50:43.354Z (6 months ago)
- Topics: compiler, leo, programming-language, zero-knowledge, zksnarks
- Language: Rust
- Homepage: https://leo-lang.org/
- Size: 154 MB
- Stars: 4,769
- Watchers: 37
- Forks: 655
- Open Issues: 667
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE.md
- Security: SECURITY.md
Awesome Lists containing this project
- awesome-ccamel - ProvableHQ/leo - ๐ฆ The Leo Programming Language. A Programming Language for Formally Verified, Zero-Knowledge Applications (Rust)
- best-of-crypto - GitHub - 1% open ยท โฑ๏ธ 05.06.2024): (Others)
README
The Leo Programming Language
Leo is an imperative, statically-typed programming language built for writing private applications.* [๐ Overview](#-overview)
* [โ๏ธ๏ธ Build Guide](#-build-guide)
* [๐ฆ Install Rust](#-install-rust)
* [๐ Build from Source Code](#-build-from-source-code)
* [๐ฆ Update from Leo](#-update-from-leo)
* [๐ฆ Download using Cargo](#-download-using-cargo)
* [๐ Quick Start](#-quick-start)
* [๐งฐ Troubleshooting](#-troubleshooting)
* [๐ Documentation](#-documentation)
* [๐ค Contributing](#-contributing)
* [โค๏ธ Contributors](#-contributors)
* [๐ก๏ธ License](#-license)## ๐ 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://leo-lang.org/).
The language is currently in an alpha stage and is subject to breaking changes.## โ๏ธ๏ธ Build Guide
### ๐ฆ 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.### ๐ 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/ProvableHQ/leo
cd leo# Install 'leo'
cargo install --path .
```Now to use leo, in your terminal, run:
```bash
leo
```### ๐ฆ Update from Leo
You can update Leo to the latest version using the following command:
```bash
leo update
```
Now to check the version of leo, in your terminal, run:
```bash
leo --version
```## ๐ 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 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](docs/troubleshooting.md).If the issue still persists, please [open an issue](https://github.com/ProvableHQ/leo/issues/new/choose).
## ๐ Documentation
* [Leo ABNF Grammar](https://github.com/ProvableHQ/grammars/blob/master/leo.abnf)
* [Homepage](https://docs.leo-lang.org/)## ๐ค Contributing
Please see our guidelines in the [developer documentation](./CONTRIBUTING.md)## โค๏ธ Contributors
The list of contributors has been moved to a separate repository.
View all Leo contributors [here](https://github.com/ProvableHQ/leo-contributors/blob/master/CONTRIBUTORS.md).## ๐ก๏ธ License
[](./LICENSE.md)