🦁 The Leo Programming Language. A Programming Language for Formally Verified, Zero-Knowledge Applications
Go to file
2023-11-20 17:42:23 -08:00
.cargo one more fix for cargo config 2021-06-16 15:05:29 +03:00
.circleci fix leo execute command line argument parsing (#2530) 2023-08-15 13:59:50 -07:00
.github Revert "Feature - Add GitHub Action to add contributors to README" 2023-11-08 11:17:13 -08:00
.resources chore(leo): bump version for new release 2023-10-19 21:02:05 -07:00
compiler Bump itertools from 0.11.0 to 0.12.0 2023-11-15 10:11:57 +00:00
docs chore(leo): bump version for new release 2023-10-19 21:02:05 -07:00
errors Update errors 2023-10-27 18:54:58 -04:00
examples chore(leo): bump version for new release 2023-10-19 21:02:05 -07:00
leo Add Destructuring pass to the compiler 2023-10-27 18:54:57 -04:00
tests Regen expectations 2023-10-27 19:05:12 -04: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 Implement Leo Account (#2513) 2023-08-07 16:01:33 -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 Merge pull request #6312 from AleoHQ/dependabot/cargo/testnet3/itertools-0.12.0 2023-11-20 17:42:23 -08:00
Cargo.toml Bump tracing-subscriber from 0.3.17 to 0.3.18 2023-11-14 10:08:21 +00:00
CONTRIBUTING.md prepare for testnet3 as repo branch 2022-07-18 18:28:23 -07:00
CONTRIBUTORS.md Add CONTRIBUTORS.md file 2023-10-06 21:16:18 -04: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 contributors to readme 2023-11-06 08:46:10 -08:00
SECURITY.md Cleanup out dated docs 2022-08-18 15:45:30 -07:00

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

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

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

🐛 💻 💬
aharshbe
aharshbe

🐛 💬
Mazdak Farrokhzad
Mazdak Farrokhzad

💻
Damir Shamanaev
Damir Shamanaev

💻
gluax
gluax

💻
0rphon
0rphon

💻
Max Bruce
Max Bruce

💻
Sergey Isaev
Sergey Isaev

💻
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

💻
Francisco Strambini
Francisco Strambini

💻
Daniel Gushchyan
Daniel Gushchyan

r4keta
r4keta

liolikus
liolikus

🖋
evgeny-garanin
Evgeny Garanin

NickoMenty
NickoMenty

eug33ne
eug33ne

Nininiao
Nininiao

CTurE1
CTurE1

🖋
colliseum2006
colliseum2006

boaaa
boaaa

HausenUA
HausenUA

TerrenceTepezano
TerrenceTepezano

Zabka0x94
Zabka0x94

DarronHanly1
DarronHanly1

penglang
FengXiaoYong

KassieSteinman
KassieSteinman

MaishaAzim
MaishaAzim

Moria-Bright
Moria Bright

Bradshow
Bradshow

SilvaHoffarth
SilvaHoffarth

Elaine1015
Elaine1015

vasylbelyi
vasylbelyi

EgorMajj
EgorMajj

RNS23
RNS23

VoinaOleksandr
VoinaOleksandr

alexprimak58
alexprimak58

Asimous22
Asimous22

Marik0023
Marik0023

JanSchluter
JanSchluter

AminaPerrigan
AminaPerrigan

Utah8O
Utah8O

ApoloniaResseguie
ApoloniaResseguie

NobukoCausley
NobukoCausley

ololo70
ololo70

evangelion4215
evangelion4215

boodovskiy
boodovskiy

BULVER777
BULVER777

Slashxdd
Kyrylo Budovskyi

sayber1717
sayber1717

BudiSwy
BudiSwy

romacll
romacll

habaroff18203
habaroff18203

LennyPro6
LennyPro6

n0d4
n0d4

grossbel12
grossbel12

Orliha
Orliha

darjin
darjin

🖋
romacll
romacll

aleoweb123
aleoweb123

arosboro
Andrew Rosborough

🖋
R-Demon
R-Demon

sryykov
sryykov

himera0482
himera0482

encipher88
encipher88

Likaenigma
Likaenigma

bartosian
bartosian

bendenizrecep
Recep Deniz

Saimon87
Saimon87

BannyNo
Big Ixela

Mistmorn0
Denys Riabets

chipqp
Dmytro Groma

VolodymyrRudoi
Volodymyr Rudoi

petrofalatyuk
Petro Falatiuk

eleven-pixel
ElsaChill

gsulaberidze
gsulaberidze

kegvorn
kegvorn

totoro_me
totoro_me

timchinskiyalex
timchinskiyalex

DimaSpys
DimaSpys

dimbirch
dimbirch

YuraPySHIT
YuraPySHIT

annabirch
annabirch

baxzban
baxzban

nnewera3
nnewera3

LabLinens
LabLinens

drimartist
drimartist

savarach
savarach

padjfromdota
padjfromdota

gglorymen
gglorymen

KrisMorisBoris
KrisMorisBoris

WebDuster
WebDuster

Tasham2008
Tasham2008

760AnaPY
760AnaPY

imshelest
imshelest

mirmalnir
mirmalnir

AnatoliMP
AnatoliMP

ihortym
ihortym

Vplmrchk
Vplmrchk

anrd04
anrd04

Gonruk
Gonruk

ur4ix
ur4ix

AllininanQ
AllininanQ

Juliaaa26
Juliaaa26

Hacker-web-Vi
Hacker-web-Vi

Mickey1245
Mickey1245

anastese
anastese

NastyaTR97
NastyaTR97

andriypaska
andriypaska

dendistar
dendistar

kartaviy223
kartaviy223

BluePEz
BluePEz

Ihorika2
Ihorika2

taraspaska
taraspaska

Ragnaros12q
Ragnaros12q

StasFreeman
StasFreeman

McTrick
McTrick

Dimaleron
Dimaleron

Boruto11dw
Boruto11dw

NOne790
NOne790

Golldirr
Golldirr

dmytriievp
dmytriievp

InfernoCyber55
InfernoCyber55

dexxeed
dexxeed

kumarman1
kumarman1

nika040
nika040

Collins44444444444444
Collins44444444444444

aavegotch
aavegotch

ssvitlyk
Sergiy Svitlyk

Mariia077
Mariia077

svitlykihor
svitlykihor

dmytrohayov
Dmytro Haiov

Annnnnnnnnnna
Annnnnnnnnnna

turchmanovich101
turchmanovich101

Zasmin12ve
Zasmin12ve

timfaden
timfaden

MerlinKlasnuy
MerlinKlasnuy

erikprimerov
erikprimerov

Andreewko
Andreewko

dxungngh
Daniel Nguyen

igorstrong
igorstrong

kramarmakarena
Kramar Maxim

boichka
Marina Boyko

YaakovHuang
YaakovHuang

viktoria3715
viktoria3715

Hello-World99bit
Hello-World99bit

Alan-Zarevskij
Alan-Zarevskij

Huliko
Huliko

tommy1qwerty
tommy1qwerty

sueinz
sueinz

Julia-path
Julia-path

web3tyan
Diana Shershun

mcnk020
mcnk020

Edgar0515
Edgar0515

Ju1issa
Ju1issa

MGavrilo
MGavrilo

YujiROO1
YujiROO1

yuriyMiller
yuriyMiller

tetianapvlnk
Tetiana Pavlenko

MGavrilo
MGavrilo

vizimnokh
vizimnokh

oleksvit
Oleksii Svitlyk

t3s1
t3s1

BloodBand
BloodBand

thereisnspoon
thereisnspoon

InfernoCyber55
InfernoCyber55

Pikkorio1
Pikkorio1

quertc
quertc

Yuriihrk
Yuriihrk

stsefa
stsefa

alanharper
Alan Harper

imanbtc
imanbtc

Oleksandr7744
Oleksandr7744

MarikJudo
MarikJudo

Piermanenta
Piermanenta

Karoliniio
Karoliniio

aixen1009
Olga Svitlyk

khanaya9845
khanaya9845

OlgaBurd
OlgaBurd

YaakovHunag920515
YaakovHunag920515

Songoku1691
Songoku1691

Timssse
Timssse

LLoyD1337
LLoyD1337

VeranOAS
VeranOAS

kirileshta
kirileshta

dimapr1
dimapr1

senol10
senol10

hoangsoncomputer
hoangsoncomputer

Timssse
Timssse

Erskine2022
Erskine2022

HoratioElise
HoratioElise

0xKateKasper
0xKateKasper

Dekigrupovuha
Dekigrupovuha

ariaSiren
ariaSiren

musicplayli
musicplayli

cryptotuts
cryptotuts

grojap
grojap

Chinothebuilder
Chinothebuilder

Dorafanboy
Dorafanboy

lockck
lockck

RoyalHelena
RoyalHelena

0xHeathcliff
0xHeathcliff

Elvira0728
Elvira0728

NerissaHal
NerissaHal

beoloqer
beoloqer

goshina2015
goshina2015

Khvesyk
Khvesyk

LuchikYu
LuchikYu

alekseevaani22
alekseevaani22

sasaglim
sasaglim

ChinW
ChinW

abasinv577
abasinv577

JeTr1x
JeTr1x

grejio
grejio

mehgoq
mehgoq

SerdhRo
SerdhRo

poizu
poizu

petrzhukovam
petrzhukovam

BeniukBohdan
BeniukBohdan

romasamiilenko
romasamiilenko

Yserdych
Yserdych

Andriasniy
Andriasniy

ishaaqziyan
ishaaqziyan

yutkach
yutkach

Mernajop
Mernajop

GudanovaAngelina
GudanovaAngelina

Ruguped
Ruguped

jackhopper925
jackhopper925

sadnessdog123
sadnessdog123

ivanuykolegmy
ivanuykolegmy

olefirenkoannaa
olefirenkoannaa

KislitsinSergey
KislitsinSergey

RuslanKhvan
RuslanKhvan

rozhnovskiyigor
rozhnovskiyigor

mihalchukdenis
mihalchukdenis

StarkovVlad
StarkovVlad

ErikTruman
ErikTruman

yeeeeeeeeehor
yeeeeeeeeehor

coco94542
coco94542

smetaninalena
smetaninalena

LoyalLea
LoyalLea

mihalchukdenis
mihalchukdenis

jessandrich
jessandrich

TanTanyaYa
TanTanyaYa

changnum05
changnum05

nastyQueen
nastyQueen

lunaryear123
lunaryear123

aiootv
aiootv

Lalabnb
Lalabnb

SunSeva
SunSeva

ElleryRiley
ElleryRiley

sheridan2020
sheridan2020

mgpwnz
mgpwnz

Podima2
Podima2

DomWyatt
DomWyatt

stan-dot
stan-dot

podpolkovnik123
podpolkovnik123

Dmitriy65
Dmitriy65

sheridan2020
sheridan2020

Dominik77Aleo
Dominik77Aleo

luo-simon
luo-simon

WargerCoderApt
WargerCoderApt

jan-o-e
jan-o-e

SimonSallstrom
SimonSallstrom

yashgo0018
yashgo0018

jessicapointing
jessicapointing

zklim
zklim

EfrainHattie
EfrainHattie

jacobella
jacobella

brandonseverin
brandonseverin

14viktor14
14viktor14

AntonYashcheko
AntonYashcheko

elenavicario12
elenavicario12

tbretschneider
tbretschneider

scmata
scmata

perlash73
perlash73

velev
velev

some-robot-guy
some-robot-guy

bvs321
bvs321

3tomcha
3tomcha

StephenPan
StephenPan

rolloorme
rolloorme

tommyet
tommyet

Hun-Chi33
Hun-Chi33

Cheliooosss
Cheliooosss

TSetsenkoU
TSetsenkoU

TropicalDog17
TropicalDog17

HartleyGilda
HartleyGilda

kelsey2821
kelsey2821

diane8026
diane8026

MavisPrunella
MavisPrunella

Margaret-Hamilton-AR
Margaret-Hamilton-AR

ollstar41
ollstar41

JustAnotherDevv
JustAnotherDevv

abiyeamachree
abiyeamachree

CaptainAhab0x
CaptainAhab0x

dradaku
dradaku

carlosaccp
carlosaccp

anitatrista
anitatrista

anonyma
anonyma

JohnT2222
JohnT2222

EmersonLois
EmersonLois

Anneki1
Anneki1

GillianWolf
GillianWolf

davaks2
davaks2

chidz21
chidz21

l1irosh
l1irosh

jaklin55noso
jaklin55noso

jess98NFT
jess98NFT

alexisleger-42
alexisleger-42

DrucillaLucas
DrucillaLucas

ThaliaElsie
ThaliaElsie

0xK3K
0xK3K

daniel023x
daniel023x

ellen2martin
ellen2martin

Fanat1ck1
Fanat1ck1

GoldenFirst5
GoldenFirst5

Flyingtothemoon123
Flyingtothemoon123

davinlane
davinlane

arianarhea
arianarhea

zambrose
zambrose

Jarekkkkk
Jarekkkkk

akirawuc
akirawuc

tralkan
tralkan

abcd5251
abcd5251

andy78644
andy78644

ineedmoti
ineedmoti

christam96
christam96

cindlin
cindlin

atul2501
atul2501

effiehattie
effiehattie

chaoticsoooul
chaoticsoooul

nancy42071
nancy42071

albertwong08
albertwong08

garrickmaxwell
garrickmaxwell

Bipin102
Bipin102

Qgoni
Qgoni

nonkung51
nonkung51

AZLPY3117G
AZLPY3117G

Hesus1love
Hesus1love

PhilbertHu
PhilbertHu

elliottstefan
elliottstefan

yadavmunny06
yadavmunny06

fentonrobin
fentonrobin

FireGuyYehorPotiekhin
FireGuyYehorPotiekhin

sapphire712
sapphire712

spawnpeeker
spawnpeeker

fizzixesp
fizzixesp

lydiaignatova
lydiaignatova

Suraj-1407
Suraj-1407

jsreddy3
jsreddy3

chrerokiy01
chrerokiy01

zelenenola
zelenenola

HenryLeslie
HenryLeslie

vancemichelle
vancemichelle

ua-lera
ua-lera

MJV11
MJV11

juicc3
juicc3

DyxaDevelop
DyxaDevelop

🖋
MrSinisterF
MrSinisterF

es3tenz
es3tenz

thrashcomplet
thrashcomplet

agladkyi
agladkyi

ShiftyBlock
ShiftyBlock

AdityaAA2004
AdityaAA2004

zainashaik
zainashaik

KoshliakOleksandr
KoshliakOleksandr

Pidogryz
Pidogryz

OleksandrSlipchenko
OleksandrSlipchenko

MykhailoReztsov
MykhailoReztsov

kirkelmer
kirkelmer

philbertotis
philbertotis

isaiahelvis0x
isaiahelvis0x

WenQi7721
WenQi7721

CharlesMing02
CharlesMing02

AliceYeh12
AliceYeh12

patilmayank
patilmayank

kilikaloko214
kilikaloko214

AlexZhao6666
AlexZhao6666

🖋
chenxudongok
chenxudongok

Add your contributions

This project follows the all-contributors specification. Contributions of any kind welcome!

🛡️ License

License: GPL v3

🔼 Back to top