Hello Cargo!

Hoje iniciei meus estudos de rust, estava um pouco recioso com a linguagem, pois a um tempo ouvi algo como “ao escolher programar em rust você tá trocand segurança pela sua sanidade!!!”

Mas após uma breve pesquisa, a linguagem parece bem promissora, então resolvi dar uma chance.

Esse artigo é o primeiro de uma série documentando meu processo na leitura do livro “The Rust Programming Language”.

Old but Gold

Vou ignorar o processo de instação e ir direto para o hello world. Se você tem qualquer familiaridade com C vai entender as semelhanças.

Supondo que nomeei um arquivo de main.rs:

fn main(){
  println!("Hello, world!");
}

executando:

rustc main.rs
./main
hello, world!

Bem parecido não é? um ponto importante é o ! ele é usado para indicar que aquele método é um macro, o que isso significa? ainda não sei, mas ao tentar executar o código sem esse sinal, recebo um erro dizendo que ele não é uma função.

Cargo FTW

O ponto importante, é que ninguém compila e executa usando o “rustc”, há um gerenciador de pascotes robusto chamado Cargo, o exemplo usado foi:

cargo new hello_cargo

Esse processo cria um pequeno projeto já com git configurado e uma pasta src/ com um arquivo main.rs e um .toml que gerencia os pacotes e dependências desse projeto.

  • Podemos criar um projeto usando o comando cargo new.
  • Podemos compilar um projeto usando o comando cargo build.
  • Podemos compilar e executar um projeto em uma única etapa usando o comando cargo run.
  • Podemos compilar um projeto sem gerar um binário para verificar se há erros usando o comando cargo check.
  • Em vez de salvar o resultado da compilação no mesmo diretório do nosso código, o Cargo o armazena no diretório target/debug.
  • Cargo build —release cria uma versão mais rápida, mas que leva mais tempo para compilar, é destinada a usuários finais e fica na pasta target/release

Mais sobre o cargo no link