O "Hello World" habitual
Não me batam, mas vai ser mesmo isso para já... Já alguém dizia que devagar se vai ao longe!
Bom, vamos começar por criar uma pasta para alojar os nossos trabalhos ao longo desta aprendizagem. Eu vou dar-lhe o nome de "curso-rust" mas podem utilizar o nome que entenderem. Abrindo uma janela de terminal no nosso sistema, a partir do local onde queremos criar o "espaço" para colocarmos os ficheiros relacionados iremos fazer
# criar a pasta para os nossos ficheiros relacionados com a aprendizagem
mkdir "curso-rust"
cd "curso-rust"
# criar a pasta para o primeiro módulo e entrar nesta pasta
mkdir "modulo-00-meta-aprendizagem"
cd "modulo-00-meta-aprendizagem"
Nota: O meu sistema é em Windows. No entanto podem estar a utilizar Linux ou Mac OSX. Os comandos apresentados anteriormente irão funcionar em qualquer dos sistemas mas pode haver alturas em que irei apresentar caminhos de pastas e ficheiros. Neste caso deverão ser informados que a separação de pastas num caminho em Windows é feito com a barra "\" enquanto em Linux/Mac OSX a barra será "/". Deverão ter em atenção esta diferença e alterar as barras de acordo com o sistema. Sempre que perceber que existem diferenças entre os sistemas, tentarei referir as mesmas de forma clara.
A seguir iremos já usar uma ferramenta do Rust que é o "Cargo" para criar e inicializar um novo projeto. Para isso iremos fazer
# aqui estamos ainda dentro da pasta modulo-00...
cargo new p001-ola-rust
Ao fazermos enter iremos receber a seguinte saída:
Creating binary (application) `p001-ola-rust` package
note: see more `Cargo.toml` keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
De seguida vamos ver o que aconteceu fazendo
cd p001-ola-rust
# ou 'ls' em Linux ou Mac OSX
dir
Iremos obter algo parecido a
Mode LastWriteTime Length Name
---- ------------- ------ ----
d---- 05/10/2026 16:27 src
-a--- 05/10/2026 16:28 157 Cargo.lock
-a--- 05/10/2026 16:27 84 Cargo.toml
Isto quer dizer que o cargo realizou algum trabalho de inicialização do projeto criando ficheiros padrão em que:
- pasta
src- em projetos simples é onde habitualmente irão residir os nosso ficheiros fonte de código
- - dentro desta pasta existirá um ficheiro
main.rs que é o ponto de entrada para o programa que imprime no ecrã "Hello World".
- Cargo.toml - ficheiro de configurações e bibliotecas a utilizar que irá evoluir durante a vida do projeto de acordo com as necessidades do mesmo
- Cargo.lock - mantem a estrutura de compilação e é gerado automaticamente não sendo para ser editado.
- De referir que os ficheiros de código fonte em Rust têm ".rs" como extensão habitual e nome em "snake case" (caracteres minúsculos e as palavras devem ser separadas por um "_" ou seja um sublinhado).
Se na pasta do projeto fizermos cargo run iremos obter algo semelhante ao que apresentamos abaixo
Compiling p001-ola-rust v0.1.0 (....\modulo-00-meta-aprendizagem\p001-ola-rust)
Finished `dev` profile [unoptimized + debuginfo] target(s) in 1.33s
Running `target\debug\p001-ola-rust.exe`
Hello, world!
sendo que o código que se encontra em main.rs é:
fn main() {
println!("Hello, world!");
}
se alterarmos o que está neste ficheiro para
fn main() {
println!("Olá pessoal!");
println!("Consegui escrever a minha primeira linha de código em Rust!!!");
}
e fizermos novamente cargo run iremos obter algo como
Compiling p001-ola-rust v0.1.0 (....\modulo-00-meta-aprendizagem\p001-ola-rust)
Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.54s
Running `target\debug\p001-ola-rust.exe`
Olá pessoal!
Consegui escrever a minha primeira linha de código em Rust!!!
Falando um pouco sobre o que está no código do programa, o fn main() é a função principal do programa — o ponto de entrada. O println! é uma macro (sim, com ponto de exclamação no fim) que imprime texto no ecrã. Pode ser colocada as vezes que quisermos e com textos diferentes... Podes experimentar se quiseres, eu experimentei! Certamente iremos falar mais sobre isto no futuro.
Não é muito, mas vamos falar mais um pouco da ferramenta "cargo" que usamos.
O Cargo é um gestor de pacotes e a ferramenta de compilação oficial do Rust. Todos os programadores em Rust vão ver esta ferramenta como um canivete suíço tratando de muitas das etapas de um projeto. Em resumo, as principais funções do Cargo são:
- Criação de projetos - cria projetos com o comando
cargo new criando uma estrutura inicial simples como vimos no projeto inicial que criamos;
- Gestão de dependências - Descarrega, instala e atualiza automaticamente as bibliotecas externas (que são chamadas de crates, mas iremos certamente falar mais sobre isso no futuro) que o projeto utiliza que são referenciadas no ficheiro
Cargo.toml;
- Compilação automatizada - Pode compilar o programa e as suas dependências (bibliotecas) na ordem correta com o comando
cargo build;
- Execução e testes - Executa o projeto diretamente com
cargo run (como ja vimos anteriormente) e corre todos os testes automatizados com cargo test
Isto é apenas um breve resumo sobre Cargo só para nos irmos integrando com as ferramentas de Rust de forma gradual.
No próximo artigo iremos a mais um projeto.
Para facilitar, criei um repositório no GitHub onde irão poder obter todos os ficheiros que iremos falar por aqui. Conseguem aceder ao mesmo aqui -> curso-rust