Rocket para Rust: guia completo com exemplos práticos
O que é e para que serve?
Rocket é um framework web moderno para a linguagem Rust, focado em produtividade, segurança e desempenho. Diferente de muitos outros frameworks web, o Rocket utiliza o poderoso sistema de tipos do Rust para verificar a correção do código em tempo de compilação, evitando toda uma classe de erros em tempo de execução. Ele oferece uma API declarativa para roteamento, suporte embutido para serialização/desserialização via Serde, validação automática de dados de formulários e URLs, além de um sistema de middleware baseado em traits.
Para que serve o Rocket? Se você programa em Rust e deseja criar uma aplicação web (API, site, microsserviço) com o mínimo de código repetitivo e máxima segurança, o Rocket é a escolha ideal. Ele é especialmente recomendado para projetos que exigem alta confiabilidade: serviços financeiros, sistemas de gerenciamento de dados, backends para aplicativos móveis. Graças à sua arquitetura assíncrona baseada em Tokio, o Rocket lida facilmente com milhares de conexões simultâneas.
Principais vantagens do Rocket: rotas type-safe (o compilador verifica se você não está passando uma string onde se espera um número), geração automática de documentação via Rocket.toml, suporte nativo a WebSocket, integração simples com bancos de dados usando Diesel ou SQLx, e custo zero de abstrações — todas as verificações são feitas em tempo de compilação, sem impacto na performance em execução.
Instalação
Para trabalhar com o Rocket, você precisa ter o Rust instalado (recomenda-se a versão 1.75+). A instalação do framework é feita através do gerenciador de pacotes Cargo. Adicione a dependência no arquivo Cargo.toml do seu projeto:
[package]
name = "my_rocket_app"
version = "0.1.0"
edition = "2021"
[dependencies]
rocket = "0.5.1"
Em seguida, execute o comando para baixar as dependências:
cargo build
Para trabalhar com JSON, você precisará adicionar o Serde:
rocket = { version = "0.5.1", features = ["json"] }
serde = { version = "1.0", features = ["derive"] }
Instalação concluída. Agora você pode criar aplicações web em Rust usando o Rocket.
Início rápido — exemplo mínimo funcional
Crie o arquivo src/main.rs com o seguinte conteúdo:
#[macro_use] extern crate rocket;
#[get("/")]
fn index() -> &'static str {
"Olá, mundo Rocket!"
}
#[launch]
fn rocket() -> _ {
rocket::build().mount("/", routes![index])
}
Execute a aplicação com o comando cargo run. Após a compilação, abra o navegador e acesse http://localhost:8000. Você verá a mensagem "Olá, mundo Rocket!". Parabéns, sua primeira aplicação Rocket está funcionando!
Analisando o código: #[get("/")] é um atributo que indica que a função processa requisições GET para a raiz do site. #[launch] é uma macro que cria o ponto de entrada. rocket::build() cria uma instância da aplicação, e .mount() associa as rotas ao caminho base.
Principais métodos/funções/classes
1. #[get(path)] — Processamento de requisições GET
Assinatura: #[get("/caminho")] fn handler() -> T
O que faz: Atributo que registra uma função como manipuladora de requisições HTTP GET no caminho especificado. O valor retornado é automaticamente serializado em uma resposta HTTP.
#[get("/