Repolode
tokio-rs

tokio-rs/axum

Una biblioteca modular y ergonómica para Rust que permite enrutar solicitudes HTTP y gestionarlas, basada en tower y hyper.

Estrellas
27,588
Forks
1,526
Issues abiertos
109
Último commit
hace 5 días

¿Qué es?

axum es una biblioteca de Rust para crear servidores HTTP. Asocia rutas con funciones de gestión asíncronas sin macros, y estas funciones declaran lo que necesitan de una solicitud mediante extractors, como cuerpos JSON ya procesados, para que el análisis y la validación sean declarativos. Las funciones de gestión pueden devolver cualquier tipo que implemente el trait de respuesta, lo que hace que la gestión de errores y la generación de respuestas sean predecibles.

En lugar de definir su propio sistema de middleware, axum se basa en tower::Service. Se pueden aplicar directamente timeouts, tracing, compresión y autorización del ecosistema tower y tower-http, y compartir middleware con aplicaciones escritas con hyper o tonic. axum es una capa delgada sobre hyper y añade muy poca sobrecarga.

El proyecto se publica en crates.io y actualmente está en la serie de versiones 0.8.x, mientras que la rama principal avanza hacia la versión 0.9 con cambios incompatibles. Prohíbe el código unsafe y requiere como mínimo Rust 1.80.

Funciones clave

  • 01Enrutamiento sin macros desde rutas hasta funciones de gestión asíncronas.
  • 02Análisis declarativo de solicitudes mediante extractors, incluidos los cuerpos JSON.
  • 03Generación de respuestas a partir de tipos de retorno habituales, con un mínimo de código adicional.
  • 04Compatibilidad total con el ecosistema de middleware de tower.
  • 05Capa delgada sobre hyper, con poca sobrecarga.
  • 06Escrito íntegramente en Rust seguro; prohíbe el código unsafe.

Casos de uso

  • Crear API REST JSON en Rust con cuerpos de solicitud y respuesta tipados.
  • Añadir middleware compartido, como tracing, timeouts o compresión, a un servicio web de Rust.
  • Compartir middleware entre una API web y servicios creados con hyper o tonic.

Inicio rápido

  1. 1

    Añade axum a un proyecto de Rust (el README no incluye ningún comando de instalación).

  2. 2

    Copia el ejemplo de uso del README en src/main.rs.

  3. 3

    Explora el directorio examples para ver más ejemplos de código.

Antes de usarlo

  • La rama main contiene cambios incompatibles previos a la versión 0.9, así que usa la rama 0.8.x para la versión publicada.
  • La versión mínima de Rust compatible es la 1.80.

En colecciones

Temas

Preguntas frecuentes

¿Qué es axum?
Una biblioteca modular y ergonómica para Rust que permite enrutar solicitudes HTTP y gestionarlas, basada en tower y hyper. axum es una biblioteca de Rust para crear servidores HTTP. Asocia rutas con funciones de gestión asíncronas sin macros, y estas funciones declaran lo que necesitan de una solicitud mediante extractors, como cuerpos JSON ya procesados, para que el análisis y la validación sean declarativos. Las funciones de gestión pueden devolver cualquier tipo que implemente el trait de respuesta, lo que hace que la gestión de errores y la generación de respuestas sean predecibles.
¿axum es gratuito? ¿Qué licencia tiene?
axum es open source bajo la licencia MIT. Revisa los términos de la licencia antes de usarlo en productos comerciales.
¿axum sigue mantenido?
Mantenimiento activo. El último commit de axum fue el 20 oct 2026.
¿Para qué puedo usar axum?
Crear API REST JSON en Rust con cuerpos de solicitud y respuesta tipados. Añadir middleware compartido, como tracing, timeouts o compresión, a un servicio web de Rust. Compartir middleware entre una API web y servicios creados con hyper o tonic.
¿Cómo se instala axum?
Añade axum a un proyecto de Rust (el README no incluye ningún comando de instalación). Copia el ejemplo de uso del README en src/main.rs. Explora el directorio examples para ver más ejemplos de código.
¿Dónde consigo axum?
El código fuente y las instrucciones de instalación están en GitHub: https://github.com/tokio-rs/axum

Resumen generado por IA a partir del README del proyecto. Las estadísticas de GitHub se actualizan a diario.

Proyectos relacionados