/ README.md
README.md
1 <!--p align="center"> 2 <img width="1412" src="https://cdn.aleo.org/leo/banner.png"> 3 </p--> 4 5 <h1 align="center">The Leo Programming Language</h1> 6 7 <p align="center"> 8 <a href="https://crates.io/crates/leo-lang"> 9 <img src="https://img.shields.io/crates/v/leo-lang?style=flat-square"/> 10 </a> 11 <a href="https://circleci.com/gh/ProvableHQ/leo"> 12 <img src="https://circleci.com/gh/ProvableHQ/leo.svg?style=svg&circle-token=00960191919c40be0774e00ce8f7fa1fcaa20c00"> 13 </a> 14 <a href="https://discord.gg/aleo"> 15 <img src="https://img.shields.io/discord/700454073459015690?logo=discord"/> 16 </a> 17 <a href="https://twitter.com/ProvableHQ"> 18 <img src="https://img.shields.io/twitter/follow/ProvableHQ?style=social"/> 19 </a> 20 </p> 21 <div id="top"></div> 22 Leo is an imperative, statically-typed programming language built for writing private applications. 23 24 ## <a name='TableofContents'></a>Table of Contents 25 26 * [🍎 Overview](#-overview) 27 * [⚙️️ Build Guide](#-build-guide) 28 * [🦀 Install Rust](#-install-rust) 29 * [🐙 Build from Source Code](#-build-from-source-code) 30 * [🦁 Update from Leo](#-update-from-leo) 31 * [📦 Download using Cargo](#-download-using-cargo) 32 * [🚀 Quick Start](#-quick-start) 33 * [🧰 Troubleshooting](#-troubleshooting) 34 * [📖 Documentation](#-documentation) 35 * [🤝 Contributing](#-contributing) 36 * [🛡️ License](#-license) 37 38 39 ## 🍎 Overview 40 41 Welcome to the Leo programming language. 42 43 Leo provides a high-level language that abstracts low-level cryptographic concepts and makes it easy to 44 integrate private applications into your stack. Leo compiles to circuits making zero-knowledge proofs practical. 45 46 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. 47 Leo offers developers with tools to sanity check circuits including unit tests, integration tests, and console functions. 48 49 Leo is one part of a greater ecosystem for building private applications on [Aleo](https://leo-lang.org/). 50 The language is currently in an alpha stage and is subject to breaking changes. 51 52 ## ⚙️️ Build Guide 53 54 ### 🦀 Install Rust 55 56 We recommend installing Rust using [rustup](https://www.rustup.rs/). You can install `rustup` as follows: 57 58 - macOS or Linux: 59 ```bash 60 curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh 61 ``` 62 63 - Windows (64-bit): 64 65 Download the [Windows 64-bit executable](https://win.rustup.rs/x86_64) and follow the on-screen instructions. 66 67 - Windows (32-bit): 68 69 Download the [Windows 32-bit executable](https://win.rustup.rs/i686) and follow the on-screen instructions. 70 71 ### 🐙 Simple build 72 73 If you don't intend to work on the Leo compiler itself, you can install the latest Leo release with: 74 75 ```bash 76 cargo install leo-lang 77 ``` 78 79 Now to use leo, in your terminal, run: 80 ```bash 81 leo 82 ``` 83 84 ### 🐙 Build from Source Code 85 86 If you'd like to install the latest unreleased top of tree Leo, you can buid from source code 87 as follows: 88 89 ```bash 90 # Download the source code 91 git clone https://github.com/ProvableHQ/leo 92 cd leo 93 94 # Install 'leo' 95 cargo install --path . 96 ``` 97 98 ### 🦁 Update from Leo 99 100 You can update Leo to the latest released version using the following command: 101 102 ```bash 103 leo update 104 ``` 105 106 Note that if you were using a prerelease version of Leo, this will overwrite 107 that with the latest released version. 108 109 Now to check the version of leo, in your terminal, run: 110 ```bash 111 leo --version 112 ``` 113 114 ## 🚀 Quick Start 115 116 Use the Leo CLI to create a new project 117 118 ```bash 119 # create a new `hello-world` Leo project 120 leo new helloworld 121 cd helloworld 122 123 # build & setup & prove & verify 124 leo run main 0u32 1u32 125 ``` 126 127 The `leo new` command creates a new Leo project with a given name. 128 129 The `leo run` command will compile the program into Aleo instructions and run it. 130 131 Congratulations! You've just run your first Leo program. 132 133 ## 🧰 Troubleshooting 134 If you are having trouble installing and using Leo, please check out our [guide](docs/troubleshooting.md). 135 136 If the issue still persists, please [open an issue](https://github.com/ProvableHQ/leo/issues/new/choose). 137 138 ## 📖 Documentation 139 140 * [Leo ABNF Grammar](https://github.com/ProvableHQ/grammars/blob/master/leo.abnf) 141 * [Homepage](https://docs.leo-lang.org/) 142 143 ## 🤝 Contributing 144 145 Please see our guidelines in the [developer documentation](./CONTRIBUTING.md) 146 147 ## 🛡️ License 148 [](./LICENSE.md) 149 150 <p align="right"><a href="#top">🔼 Back to top</a></p>