NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
crates.io · #766 most downloaded on crates.io
Macros for axum
Last release 5 months ago
14 Apr 2026
Ships unpredictably
gaps range from 9 days to 1.3 years
Nearly every release is documented
notes for 21 of 22 stable releases
Nothing withdrawn
no release was ever pulled
5 years old
27 releases · first in 2021
One column per quarter.
fixed: Fix compilation error when deriving TypedPath with OptionalFromRequestParts being in scope
TypedPath with OptionalFromRequestParts being in scope (#3645)breaking: Update code generation for axum-core 0.5.0
Nothing published for this version
Pre-release Pre-release Compare
Pre-release
Pre-release
Compare
added: Add #[debug_middleware] ([#1993], [#2725])
fixed: Improve debug_handler on tuple response types ([#2201])
debug_handler on tuple response types (#2201)breaking: #[debug_handler] no longer accepts a body = _ argument. The body type is always axum::Body ([#1751])
fixed: Allow unreachable code in #[debug_handler] ([#2014])
#[debug_handler] (#2014)change: Update to syn 2.0 ([#1862])
fixed: Improve #[debug_handler] message for known generic request-consuming extractors ([#1826])
#[debug_handler] message for known generic
request-consuming extractors (#1826)fixed: In #[debug_handler] provide specific errors about FromRequest extractors not being the last argument ([#1797])
#[debug_handler] provide specific errors about FromRequest
extractors not being the last argument (#1797)fixed: Fix #[derive(FromRef)] with Copy fields generating clippy warnings ([#1749])
#[derive(FromRef)] with Copy fields generating clippy warnings (#1749)fixed: Fix #[debug_handler] sometimes giving wrong borrow related suggestions ([#1710])
#[debug_handler] sometimes giving wrong borrow related suggestions (#1710)- No public API changes.
fixed: Fix warnings for cloning references in generated code ([#1676])
added: Add #[derive(FromRequestParts)] for deriving an implementation of FromRequestParts, similarly to #[derive(FromRequest)] ([#1305])
#[derive(FromRequestParts)] for deriving an implementation of
FromRequestParts, similarly to #[derive(FromRequest)] (#1305)#[derive(FromRef)] (#1430)#[from_ref(skip)] to skip implementing FromRef for individual fields (#1537)#[derive(FromRequest)]
with #[from_request(rejection(MyRejection))] (#1256)#[derive(FromRequest)] will no longer generate a rejection
enum but instead generate type Rejection = axum::response::Response. Use the
new #[from_request(rejection(MyRejection))] attribute to change this.
The rejection_derive attribute has also been removed (#1272)<details> <summary>0.3.0 Pre-Releases</summary>
added: Add #[from_ref(skip)] to skip implementing FromRef for individual fields ([#1537])
#[from_ref(skip)] to skip implementing FromRef for individual fields (#1537)added: Add #[derive(FromRef)] ([#1430])
#[derive(FromRef)] (#1430)change: axum-macro's MSRV is now 1.60 ([#1239])
#[derive(FromRequest)]
with #[from_request(rejection(MyRejection))] (#1256)#[derive(FromRequest)] will no longer generate a rejection
enum but instead generate type Rejection = axum::response::Response. Use the
new #[from_request(rejection(MyRejection))] attribute to change this.
The rejection_derive attribute has also been removed (#1272)#[derive(FromRequestParts)] for deriving an implementation of
FromRequestParts, similarly to #[derive(FromRequest)] (#1305)</details>
change: axum-macros's MSRV is now 1.56 ([#1098])
added: In debug_handler, check if Request is used as non-final extractor ([#1035])
debug_handler, check if Request is used as non-final extractor (#1035)debug_handler, check if multiple Path extractors are used (#1035)debug_handler, check if multiple body extractors are used (#1036)#[derive(TypedPath)] (#1012)fixed: Option and Result are now supported in typed path route handler parameters ([#1001])
Option and Result are now supported in typed path route handler parameters (#1001)#[derive(FromRequest)] on enums using #[from_request(via(OtherExtractor))] (#1009)#[derive(TypedPath)]
instead of PathRejection (#1012)breaking: Routes are now required to start with /. Previously empty routes or routes such as :foo would be accepted but most likely result in bugs ([#
/. Previously empty routes or routes such
as :foo would be accepted but most likely result in bugs (#823)fixed: Use fully qualified Result type ([#796])
Result type (#796)Add #[derive(TypedPath)] for use with axum-extra's new "type safe" routing API ([#756])
#[derive(TypedPath)] for use with axum-extra's new "type safe" routing API (#756)- Initial release.
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →