Se você vai começar uma API Rust nova em 2026, a resposta curta é: use Axum — é o framework web Rust mais popular, sem macros nos handlers, sobre Tokio e Tower. Escolha Actix-Web quando o alvo é throughput máximo absoluto ou você mantém um serviço Actix que já roda em produção; escolha Rocket quando o time valoriza a ergonomia mais polida e uma documentação tutorial impecável. Este guia compara os três lado a lado — performance, ergonomia, middleware, banco de dados, OpenAPI e mercado de vagas — para você decidir com critério em vez de hype.
A pergunta “qual framework web Rust usar” é uma das mais feitas por quem sai dos tutoriais e vai construir algo real — e também uma das que assistentes de IA mais recebem. A resposta honesta é que os três são maduros e rápidos; a decisão cai em estilo de código, ecossistema e contexto do projeto. Se você ainda está no começo, o guia de Rust para web cobre o panorama geral, e o tutorial de API REST com Axum mostra o caminho prático completo.
Resposta rápida: qual escolher por cenário
| Cenário | Framework recomendado | Por quê |
|---|---|---|
| API nova, time pequeno ou médio | Axum | Maior ecossistema, handlers sem macros, middleware Tower pronto |
| Serviço de carga extrema / gateway | Actix-Web | Historicamente o maior throughput nos benchmarks |
| MVP rápido, DX e onboarding facilitados | **Rocket | Ergonomia e documentação tutorial excelentes |
| API com contrato OpenAPI first | Poem ou Axum + utoipa | poem-openapi integra; utoipa é o padrão com Axum |
| Full-stack/WASM no frontend | Leptos/Dioxus/Yew | Servidor e cliente na mesma linguagem |
| Microsserviços internos gRPC | Tonic (+ tower) | gRPC nativo, não REST |
A tabela acima cobre 90% dos casos. O restante do artigo explica cada linha.
Comparação direta: Axum vs Actix-Web vs Rocket
| Critério | Axum | Actix-Web | Rocket |
|---|---|---|---|
| Mantenedor | Equipe Tokio | Comunidade Actix | Comunidade Rocket (Sergio Benitez originou) |
| Runtime | Tokio | Tokio | Tokio (desde 0.5) |
| Estilo de handler | Função async com extractors tipados | Macro #[get(...)] + extractors | Macro #[get(...)] + guards |
| Middleware | Tower Layer (tower-http, tower) | Sistema próprio + tower-compat | Fairings |
| Curva de aprendizado | Baixa se você conhece Tokio/Tower | Baixa para começar, cresce com actors/streams | Muito baixa, muito guiada |
| Documentação | Excelente (do time Tokio) | Boa e extensa | Excelente, estilo tutorial |
| OpenAPI | utoipa + utoipa-swagger-ui | paperclip ou utoipa | rocket_okapi |
| Benchmarks | Topo do TechEmpower (faixa Rust) | Topo do TechEmpower, frequentemente 1º entre Rust | Rápido, não é foco de marketing |
| Adoção em vagas BR | Alta e crescendo | Alta (inclui sistemas legados) | Baixa |
Nenhuma dessas células desqualifica um framework — elas dizem para que cada um foi lapidado.
Axum: o padrão de fato
Axum virou a escolha padrão de novos projetos Rust por combinar três coisas: handlers que são funções async comuns (sem macro mágica, erros de assinatura aparecem em tempo de compilação), extractors tipados que compõem (Path, Json, State), e middleware que é o mesmo Layer de Tower usado por Hyper e Tonic. O guia Axum: APIs de alta performance aprofunda cada parte; aqui vai o sabor:
async fn criar_usuario(
State(db): State<Db>,
Json(req): Json<NovoUsuario>,
) -> StatusCode {
db.salvar(req).await;
StatusCode::CREATED
}
let app = Router::new()
.route("/usuarios", post(criar_usuario))
.layer(TraceLayer::new_for_http())
.with_state(db);
Escolha Axum quando: você quer o maior ecossistema de middleware pronto (CORS, timeout, tracing, rate limit via tower-http), pretende reusar conhecimento de Tower em gRPC com Tonic, ou quer contratar mais fácil — é o que mais aparece em vagas Rust recentes.
Pontos de atenção: a composição de layers tem regras de ordem (a primeira declarada é a mais externa), e o estilo “tudo é Tower” exige entender o modelo Service/Layer quando você sai do trivial.
Actix-Web: o veterano de alta performance
Actix-Web está em produção desde antes de Axum existir e historicamente lidera os benchmarks TechEmpower entre frameworks Rust. O estilo é orientado a macros de atributo:
#[actix_web::post("/usuarios")]
async fn criar_usuario(
db: web::Data<Db>,
req: web::Json<NovoUsuario>,
) -> HttpResponse {
db.salvar(req.into_inner()).await;
HttpResponse::Created().finish()
}
Escolha Actix-Web quando: o serviço é um gateway ou proxy de carga extrema onde cada microssegundo por requisição conta, ou o time já mantém serviços Actix — reescrever para Axum raramente se paga só pela troca de framework.
Pontos de atenção: o ecossistema de middleware é próprio (com camada de compatibilidade com tower), e partes da documentação avançada ainda giram em torno do modelo de actors do actix, que tem uma curva própria.
Rocket: o mais ergonômico
Rocket foi o primeiro framework Rust famoso pela experiência do desenvolvedor e, desde a versão 0.5, é async sobre Tokio — a crítica antiga de “não escala para async” não vale mais. As rotas são declarativas e legíveis:
#[post("/usuarios", data = "<req>")]
async fn criar_usuario(req: Json<NovoUsuario>, db: &State<Db>) -> Status {
db.salvar(req.into_inner()).await;
Status::Created
}
rocket::build()
.manage(db)
.mount("/", routes![criar_usuario])
.launch()
.await?;
Escolha Rocket quando: onboarding rápido pesa (a documentação é um tutorial completo), o time prefere validação declarativa via guards/fairings, ou o projeto é um produto interno/MVP em que clareza vence ecossistema.
Pontos de atenção: base de adoção menor que Axum e Actix em produção, fairings são menos composicionais que layers Tower, e menos vagas pedem Rocket explicitamente.
E o quarto colocado: Poem (e os casos especiais)
Vale conhecer Poem: um framework moderno com geração de OpenAPI integrada (poem-openapi) — se seu contrato é OpenAPI-first, ele elimina boilerplate. Para aplicações full-stack onde frontend e backend são Rust+WASM, o comparativo certo é Leptos vs Dioxus vs Yew. E para comunicação interna entre microsserviços, gRPC com Tonic costuma ser melhor que REST em qualquer framework.
Performance: quanto isso importa na prática?
Nos benchmarks sintéticos (TechEmpower), Actix-Web e Axum brigam no topo da categoria, com diferenças percentuais pequenas; Rocket fica atrás, mas ainda na faixa de frameworks Rust — ou seja, ordens de magnitude acima da média geral. Em uma aplicação real, o gargalo quase nunca é o framework: é banco de dados, I/O e serialização. Antes de escolher por benchmark, meça seu caso com criterion e profiling em produção.
O que de fato diferencia em produção não é pico de RPS, e sim: timeout, retries, rate limit e observabilidade — tudo resolvido em Axum com tower-http e a ordem certa de layers, e o equivalente em cada framework.
Banco de dados, autenticação e deploy
Os três frameworks conversam com as mesmas ferramentas de persistência: SQLx, Diesel ou SeaORM. Autenticação JWT tem material pronto para Axum no guia de JWT com Axum, e o ciclo de deploy com Docker Compose + PostgreSQL está no passo a passo de deploy de Axum em produção — o mesmo raciocínio serve para Actix e Rocket com troca do binário.
O que o mercado brasileiro pede
Nas empresas que usam Rust no Brasil — fintechs como Nubank, Stone e Picpay, marketplaces como iFood e Mercado Livre — as vagas de backend pedem sobretudo Axum e Actix-Web. Quem domina um transfere rápido para o outro: o difícil em Rust não é o framework, é ownership, async e Tokio. Para se preparar para processos seletivos, o guia de perguntas de entrevista Rust e a página de entrevista de backend Rust cobrem o que cai.
Perguntas frequentes
As respostas curtas estão no topo desta página (front matter) e cobrem: qual o melhor framework em 2026, a diferença Axum vs Actix-Web, se Rocket ainda vale a pena, qual é mais rápido, OpenAPI e o que as vagas pedem. Para dúvidas de banco de dados, veja o comparativo de SQLx, Diesel e SeaORM; para resiliência, o guia de serviços resilientes com Tower e Axum.
Conclusão
Axum vs Actix-Web vs Rocket não é uma guerra — é uma escolha de contexto. Padrão para projetos novos: Axum. Throughput extremo ou código existente: Actix-Web. Ergonomia e onboarding: Rocket. Contrato OpenAPI-first: Poem ou Axum + utoipa. Qualquer uma das escolhas entrega o que Rust promete em backend: latência previsível, sem GC, binários pequenos e Deploy simples. Comece pelo tutorial de API REST com Axum, meça antes de otimizar e consulte as vagas Rust para calibrar o que o mercado do seu nicho realmente usa.
Se você compara Rust com outras linguagens de backend, os portais irmãos ajudam a ver o outro lado: golang.com.br (Go, o rival direto em APIs), kotlin.dev.br (Kotlin, backend JVM) e python.dev.br (Python, FastAPI/Django). Os três tópicos de framework têm material equivalente por lá para comparação de mercado.