Repolode
tokio-rs

tokio-rs/axum

Uma biblioteca modular e ergonômica para roteamento HTTP e tratamento de requisições em Rust, construída sobre tower e hyper.

Estrelas
27,588
Forks
1,526
Issues abertas
109
Último commit
há 5 dias

O que é?

axum é uma biblioteca Rust para criar servidores HTTP. Ela associa rotas a funções assíncronas de tratamento sem macros, e essas funções declaram do que precisam da requisição por meio de extractors, como corpos JSON já parseados, mantendo o parsing e a validação declarativos. As funções podem retornar qualquer tipo que implemente a trait de resposta, o que torna previsíveis o tratamento de erros e a geração de respostas.

Em vez de definir seu próprio sistema de middleware, axum é construído sobre tower::Service. É possível aplicar diretamente timeouts, tracing, compressão e autorização do ecossistema tower e tower-http, além de compartilhar middleware com aplicações feitas com hyper ou tonic. axum é uma camada fina sobre hyper e adiciona pouco overhead.

O projeto está publicado no crates.io e atualmente está na linha de releases 0.8.x, enquanto a branch principal trabalha rumo à versão 0.9, com breaking changes. O projeto proíbe código unsafe e tem como versão mínima suportada do Rust a 1.80.

Recursos principais

  • 01Roteamento de caminhos para funções assíncronas de tratamento, sem macros.
  • 02Parsing declarativo de requisições por meio de extractors, incluindo corpos JSON.
  • 03Geração de respostas a partir de tipos de retorno comuns, com pouco código boilerplate.
  • 04Compatibilidade total com o ecossistema de middleware do tower.
  • 05Camada fina sobre hyper, com baixo overhead.
  • 06Escrito inteiramente em Rust seguro, com código unsafe proibido.

Casos de uso

  • Criar APIs REST JSON em Rust com corpos de requisição e resposta tipados.
  • Adicionar middleware compartilhado, como tracing, timeouts ou compressão, a um serviço web em Rust.
  • Compartilhar middleware entre uma API web e serviços construídos com hyper ou tonic.

Início rápido

  1. 1

    Adicione axum a um projeto Rust (o README não inclui um comando de instalação).

  2. 2

    Copie o exemplo de uso do README para src/main.rs.

  3. 3

    Explore o diretório examples para ver mais exemplos de código.

Antes de usar

  • A branch main contém alterações incompatíveis anteriores à versão 0.9; portanto, use a branch 0.8.x para a versão lançada.
  • A versão mínima compatível do Rust é 1.80.

Em coleções

Tópicos

Perguntas frequentes

O que é axum?
Uma biblioteca modular e ergonômica para roteamento HTTP e tratamento de requisições em Rust, construída sobre tower e hyper. axum é uma biblioteca Rust para criar servidores HTTP. Ela associa rotas a funções assíncronas de tratamento sem macros, e essas funções declaram do que precisam da requisição por meio de extractors, como corpos JSON já parseados, mantendo o parsing e a validação declarativos. As funções podem retornar qualquer tipo que implemente a trait de resposta, o que torna previsíveis o tratamento de erros e a geração de respostas.
axum é gratuito? Qual é a licença?
axum é open source sob a licença MIT. Confira os termos da licença antes de usá-lo em produtos comerciais.
axum ainda é mantido?
Manutenção ativa. O último commit de axum foi em 20 de out. de 2026.
Para que posso usar axum?
Criar APIs REST JSON em Rust com corpos de requisição e resposta tipados. Adicionar middleware compartilhado, como tracing, timeouts ou compressão, a um serviço web em Rust. Compartilhar middleware entre uma API web e serviços construídos com hyper ou tonic.
Como instalar axum?
Adicione axum a um projeto Rust (o README não inclui um comando de instalação). Copie o exemplo de uso do README para src/main.rs. Explore o diretório examples para ver mais exemplos de código.
Onde consigo axum?
O código-fonte e as instruções de instalação estão no GitHub: https://github.com/tokio-rs/axum

Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.

Projetos relacionados