# Rust toolchain

## Rust Toolchain

Rust é uma linguagem de programação moderna, robusta e de alto desempenho, que oferece um conjunto rico de recursos para construir sistemas complexos. A linguagem também conta com uma comunidade ativa de desenvolvedores e um ecossistema crescente de bibliotecas compartilháveis chamadas de "***crates***".

### Learning Rust

Rust é a linguagem principal utilizada para construir as blockchains da Lunes, portanto, se você pretende desenvolver com Lunes Nightly, é necessário estar familiarizado com a linguagem de programação Rust, o compilador e a gestão do "toolchain" (conjunto de ferramentas).

Se você está começando agora com Rust, você pode adicionar aos seus favoritos ([bookmark](https://doc.rust-lang.org/book/)) e consultar outros recursos no site oficial do [Rust](https://www.rust-lang.org/learn) para te auxiliar no aprendizado. No entanto, há alguns pontos importantes que você deve considerar ao preparar o seu ambiente de desenvolvimento.

### Sobre o "Rust Toolchain" (Conjunto de Ferramentas do Rust)

As principais ferramentas do "***Rust Toolchain***" são o compilador `rustc`, o gerenciador de pacotes e construção cargo, e o gerenciador `rustup` de "***toolchain***". Em um determinado momento, pode haver várias versões do Rust disponíveis. Por exemplo, existem canais de lançamento para as versões estáveis, beta e nightly (noturnas). O programa `rustup` é utilizado para gerenciar as versões disponíveis no seu ambiente e as versões dos programas do conjunto de ferramentas que são usados com diferentes versões do Rust.

O compilador `rustc` permite que você construa binários para diferentes arquiteturas, conhecidas como "***targets***" (alvos). Os alvos são identificados por uma **string** que especifica o tipo de saída que o compilador deve produzir. Essa funcionalidade é importante porque a Lunes é compilada tanto para um binário nativo Rust quanto para um alvo WebAssembly.

WebAssembly é um formato binário portátil que pode ser executado em qualquer hardware de computador moderno e através de qualquer navegador com acesso à internet.&#x20;

O alvo [WebAssembly](https://webassembly.org/) (Wasm) permite que a Lunes produza runtimes (tempo de execução) de blockchain portáteis. Para obter mais informações sobre como esses binários são utilizados, consulte o processo de construção (build process).

Ao dominar o Rust e o conjunto de ferramentas associado, você estará preparado para contribuir significativamente para a escalabilidade e o crescimento do ecossistema da Lunes Nightly.&#x20;

Portanto, não hesite em aprofundar seus conhecimentos em Rust e utilize essas habilidades para impulsionar a inovação na Web3.0 com a Lunes Nightly. Boa jornada de desenvolvimento!
