DEV Community

Cover image for Aprendendo Rust: 02 - Hello Cargo
Richard de Jesus
Richard de Jesus

Posted on

Aprendendo Rust: 02 - Hello Cargo

E aee jovens, tudo bem com vocês?

Neste post iremos entender um pouco sobre a ferramenta Cargo, criar um projeto Rust e entender a estrutura do projeto.

Então, lets'go!!!

Cargo

Cargo é uma ferramenta que instalamos junto com o Rustup, ela é muito completa, pois gerencia ciclo de vida de todo o programa Rust, faz a instalação das bibliotecas, de componentes, de programas no sistema operacional, gerencia as dependências, realiza a publicação do programa, gera documentação do sistema, e muitas outras coisas.

Para vermos qual a versão estamos usando executamos a linha abaixo:

cargo --version
Enter fullscreen mode Exit fullscreen mode

Será retornado algo como:

cargo 1.44.1 (88ba85757 2020-06-11)
Enter fullscreen mode Exit fullscreen mode

Vamos começar instalando uma ferramenta bem útil executando o comando abaixo no terminal:

cargo install cargo-play
Enter fullscreen mode Exit fullscreen mode

Na Postagem passada criamos um arquivo chamado hello_world.rs, compilamos e depois o executamos. Vamos entrar no diretório onde deixamos o arquivo salvo e usar o cargo-play para executarmos de forma mais rápida:

cd /dev/workspace/rust
cargo play hello_world.rs
Enter fullscreen mode Exit fullscreen mode

E pelo prompt de comando no Windows:

cd  \dev\workspace\rust
cargo play hello_world.rs
Enter fullscreen mode Exit fullscreen mode

**Onde o caminho deverá ser alterado para onde vocês deixaram o arquivo salvo

A saída será parecida com a seguinte:


Compiling p3mafgnxu8ftipvencq6xrvxevha6 v0.1.0 (/tmp/cargo-play.3MafGnxU8fTiPvENCq6XrvXeVhA6)
Finished dev [unoptimized + debuginfo] target(s) in 0.24s
Running `/tmp/cargo-play.3MafGnxU8fTiPvENCq6XrvXeVhA6/target/debug/p3mafgnxu8ftipvencq6xrvxevha6`

Hello World!

Enter fullscreen mode Exit fullscreen mode

Desta forma conseguimos testar os arquivos, executar scripts escritos em Rust de um jeito simples.

Projeto Rust

Para criarmos um projeto, utilizaremos o comando:

cargo new hello_cargo
Enter fullscreen mode Exit fullscreen mode

Se tudo ocorrer bem teremos o retorno:

Created binary (application) `hello_cargo` package
Enter fullscreen mode Exit fullscreen mode

Vamos entrar no diretório criado e logo em seguida abrir ele no VS Code, com o comando:

cd hello_cargo
code .
Enter fullscreen mode Exit fullscreen mode

O projeto será criado com a seguinte estrutura:

.
├── Cargo.toml
└── src
    └── main.rs
Enter fullscreen mode Exit fullscreen mode

Ao olharmos os arquivos criados, teremos o pacote src que é onde o Cargo espera que seus arquivos Rust estejam, automaticamente cria-se pra gente um arquivo main.rs dentro deste pacote, se o abrirmos veremos o seguinte conteúdo:

fn  main() {
    println!("Hello, world!");
}
Enter fullscreen mode Exit fullscreen mode

Como este conteúdo é praticamente igual ao que já vimos, não vou explicar novamente, se tiverem dúvidas por favor acessem esse link.

Na raiz do projeto também foi criado o arquivo Cargo.toml e ao abrirmos teremos o seguinte conteúdo:

[package]
name =  "hello_cargo"
version =  "0.1.0"
authors = ["Richard de Jesus <jdr.richard@gmail.com>"]
edition =  "2018"

# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html

[dependencies]

Enter fullscreen mode Exit fullscreen mode

A extensão toml significa (Tom’s Obvious, Minimal Language) e este é o arquivo de configurações do Cargo.

A primeira linha [package] é um cabeçalho de sessão, onde abaixo temos 4 linhas que por padrão definem as informações de configuração que o Cargo precisa para compilar seu programa:

  • O nome do programa
  • A versão do programa
  • O autor
  • A edição do Rust

O seu nome e seu e-mail são recuperados do seu ambiente, e pode mudar de acordo com a sua vontade.

A última linha [dependencies]é o início de uma seção para você listar qualquer uma das dependências que o seu projeto precise. Na Rust, pacotes de código são chamados de crates . Para este exemplo não precisaremos utilizar uma outra crate, mas veremos em outra postagem.

Build e execução do projeto

Podemos utilizar o comando cargo build para gerarmos o build da aplicação, este comando gerará um arquivo executável em target/debug/hello_cargo (ou target\debug\hello_cargo.exe no Windows). Se executarmos o arquivo gerado, teremos a seguinte saída:

Hello, world!
Enter fullscreen mode Exit fullscreen mode

Mas, também podemos utilizar o comando cargo run para compilarmos e já executarmos o programa em seguida. Se o projeto já tiver sido compilado e não tiver tido nenhuma alteração em algum de seus arquivos, ao executar o comando o sistema rodará mas não será compilado novamente, pois o Cargo é inteligente o bastante para não compilar um arquivo que já foi compilado anteriormente.

Teremos uma saída parecida com a abaixo:

Compiling hello_cargo v0.1.0 (\dev\workspace\rust\hello_cargo)
    Finished dev [unoptimized + debuginfo] target(s) in 1.99s
     Running `target\debug\hello_cargo.exe`
Hello, world!
Enter fullscreen mode Exit fullscreen mode

O Cargo também tem o comando cargo check. Este comando checa o código mas não produz um executável. Ele é uma forma rápida de checarmos se está tudo ok.

Para gerar uma versão final do programa usaremos o comando cargo build --release pois dessa forma ele será compilado com otimizações, deixando o sistema ainda melhor para ser utilizado em produção.

Vou adicionar o fonte desta postagem no Github, segue o link: Aprendendo Rust

Quaisquer dúvidas ou sugestões para que eu melhore nas postagens deixe um comentário, e continue acompanhando os próximos posts.

Referencias

O livro de Rust

CodeShow

Top comments (0)