PackageTrack
Sign in Get early access

axum-core

Core types and traits for axum

0.5.6 431M downloads/mo #266 most downloaded on crates.io tokio-rs/axum

What this package is like to depend on

Last release 7 months ago

27 Dec 2025

Release timing varies

gaps range from 2 weeks to 8 months

Nearly every release is documented

notes for 29 of 31 stable releases

1 version withdrawn

withdrawn after publishing

5 years old

37 releases · first in 2021

4 releases in the last 12 months

see the full history below

Release timeline

37 releases · Aug 2021 to Dec 2025
2022 2023 2024 2025 2026
Release Pre-release Withdrawn

Releases

latest 37
  1. 0.5.6 27 Dec 2025
    Release notes

    Improve error messages with #[diagnostic::do_not_recommend].

    Open source →
    Release notes

    Improve error messages with #[diagnostic::do_not_recommend].

    Open source →
  2. 0.5.5 30 Sep 2025
    Release notes

    Released without changes to fix docs.rs build.

    Open source →
  3. 0.5.4 28 Sep 2025
    Release notes
    • fixed: Removed unused rustversion dependency (#3502)
    Open source →
  4. 0.5.3 28 Sep 2025
    Release notes
    • added: DefaultBodyLimit::apply for changing the DefaultBodyLimit inside extractors. (#3368)
    • changed: Update minimum rust version to 1.78 ([#3412])
    Open source →
  5. 0.5.2 28 Mar 2025
    Release notes
    • added: Implement Stream::size_hint for BodyDataStream (#3195)
    Open source →
  6. 0.5.1 21 Jan 2025 withdrawn
    Release notes

    Yanked from crates.io due to unforeseen breaking change, see #3190 for details.

    Open source →
  7. 0.5.0 01 Jan 2025
    Release notes

    since rc.1

    <details>

    • change: The Display impl of all rejections generated by the define_rejection!() will now include the Display output of the inner error too. This matches the body_text() fn output now. (#3118)

    </details>

    full changelog

    • breaking: Replace #[async_trait] with return-position impl Trait in traits (#2308)
    • breaking: Option<T> as an extractor now requires T to implement the new trait OptionalFromRequest (if used as the last extractor) or OptionalFromRequestParts (other extractors) (#2475)
    • change: Update minimum rust version to 1.75 (#2943)
    • change: The Display impl of all rejections generated by the define_rejection!() will now include the Display output of the inner error too. This matches the body_text() fn output now. (#3118)

    rc.1

    • breaking: Option<T> as an extractor now requires T to implement the new trait OptionalFromRequest (if used as the last extractor) or OptionalFromRequestParts (other extractors) (#2475)

    alpha.1

    Open source →
  8. 0.5.0-rc.1 17 Dec 2024 pre-release

    Nothing published for this version

  9. 0.5.0-alpha.1 05 Oct 2024 pre-release

    Nothing published for this version

  10. 0.4.5 27 Sep 2024
    Release notes
    • fixed: Compile errors from the internal __log_rejection macro under certain Cargo feature combinations between axum crates (#2933)
    Open source →
  11. 0.4.4 20 Sep 2024
    Release notes
    • added: Derive Clone and Copy for AppendHeaders (#2776)
    • added: must_use attribute on AppendHeaders (#2846)
    • added: must_use attribute on ErrorResponse (#2846)
    • added: must_use attribute on IntoResponse::into_response (#2846)
    • added: must_use attribute on IntoResponseParts trait methods (#2846)
    • added: Implement Copy for DefaultBodyLimit (#2875)
    • added: DefaultBodyLimit::max and DefaultBodyLimit::disable are now allowed in const context (#2875)
    Open source →
  12. 0.4.3 13 Jan 2024
    Release notes
    • added: Implement IntoResponseParts for () (#2471)
    Open source →
  13. 0.4.2 29 Dec 2023
    Release notes
    • added: Body implements From<()> now (#2411)
    Open source →
  14. 0.4.1 04 Dec 2023
    Release notes
    • Fix from_stream doc link to Stream in docs (#2391)
    Open source →
  15. 0.4.0 27 Nov 2023
    Release notes
    • added: Implement IntoResponse for (R,) where R: IntoResponse (#2143)
    • fixed: Fix broken docs links (#2164)
    • fixed: Clearly document applying DefaultBodyLimit to individual routes (#2157)
    • breaking: The following types/traits are no longer generic over the request body (i.e. the B type param has been removed) ([#1751] and [#1789]):
      • FromRequestParts
      • FromRequest
      • RequestExt
    • breaking: axum no longer re-exports hyper::Body as that type is removed in hyper 1.0. Instead axum has its own body type at axum_core::body::Body ([#1751])
    Open source →
  16. 0.3.4 11 Apr 2023
    Release notes
    • Changes to private APIs.
    Open source →
  17. 0.3.3 03 Mar 2023
    Release notes
    • fixed: Add #[must_use] attributes to types that do nothing unless used (#1809)
    Open source →
  18. 0.3.2 20 Jan 2023
    Release notes
    • added: Implement IntoResponse for &'static [u8; N] and [u8; N] (#1690)
    Open source →
  19. 0.3.1 09 Jan 2023
    Release notes
    • added: Add body_text and status methods to built-in rejections (#1612)
    Open source →
  20. 0.3.0 25 Nov 2022
    Release notes
    • added: Added new FromRequestParts trait. See axum's changelog for more details (#1272)
    • breaking: FromRequest has been reworked and RequestParts has been removed. See axum's changelog for more details (#1272)
    • breaking: BodyAlreadyExtracted has been removed (#1272)
    • breaking: AppendHeaders now works on any impl IntoIterator (#1495)

    <details> <summary>0.3.0 Pre-Releases</summary>

    Open source →
  21. 0.3.0-rc.3 09 Nov 2022 pre-release
    Release notes
    • added: Add DefaultBodyLimit::max for changing the default body limit (#1397)
    • added: Add Error::into_inner for converting Error to BoxError without allocating (#1476)
    • breaking: AppendHeaders now works on any impl IntoIterator (#1495)
    Open source →
  22. 0.3.0-rc.2 11 Sep 2022 pre-release
    Release notes
    • breaking: Added default limit to how much data Bytes::from_request will consume. Previously it would attempt to consume the entire request body without checking its length. This meant if a malicious peer sent an large (or infinite) request body your server might run out of memory and crash.

      The default limit is at 2 MB and can be disabled by adding the new DefaultBodyLimit::disable() middleware. See its documentation for more details.

      This also applies to String which used Bytes::from_request internally.

      (#1346)

    Open source →
  23. 0.3.0-rc.1 23 Aug 2022 pre-release
    Release notes
    • breaking: FromRequest has been reworked and RequestParts has been removed. See axum's changelog for more details (#1272)
    • added: Added new FromRequestParts trait. See axum's changelog for more details (#1272)
    • breaking: BodyAlreadyExtracted has been removed (#1272)

    </details>

    Open source →
  24. 0.2.9 20 Oct 2022

    Nothing published for this version

  25. 0.2.8 10 Sep 2022
    Release notes
    • breaking: Added default limit to how much data Bytes::from_request will consume. Previously it would attempt to consume the entire request body without checking its length. This meant if a malicious peer sent an large (or infinite) request body your server might run out of memory and crash.

      The default limit is at 2 MB and can be disabled by adding the new DefaultBodyLimit::disable() middleware. See its documentation for more details.

      This also applies to String which used Bytes::from_request internally.

      (#1346)

    Open source →
  26. 0.2.7 10 Jul 2022
    Release notes
    • fix: Fix typos in RequestParts docs (#1147)
    Open source →
  27. 0.2.6 18 Jun 2022
    Release notes
    • change: axum-core's MSRV is now 1.56 (#1098)
    Open source →
  28. 0.2.5 08 Jun 2022
    Release notes
    • added: Automatically handle http_body::LengthLimitError in FailedToBufferBody and map such errors to 413 Payload Too Large (#1048)
    • fixed: Use impl IntoResponse less in docs (#1049)
    Open source →
  29. 0.2.4 02 May 2022
    Release notes
    • added: Implement IntoResponse and IntoResponseParts for http::Extensions (#975)
    • added: Implement IntoResponse for (http::response::Parts, impl IntoResponse) (#950)
    • added: Implement IntoResponse for (http::response::Response<()>, impl IntoResponse) (#950)
    • added: Implement IntoResponse for (Parts | Request<()>, $(impl IntoResponseParts)+, impl IntoResponse) (#980)
    Open source →
  30. 0.2.3 26 Apr 2022
    Release notes
    • added: Add response::ErrorResponse and response::Result for IntoResponse-based error handling (#921)
    Open source →
  31. 0.2.2 19 Apr 2022
    Release notes
    • added: Add AppendHeaders for appending headers to a response rather than overriding them (#927)
    Open source →
  32. 0.2.1 03 Apr 2022
    Release notes
    • added: Add RequestParts::extract which allows applying an extractor as a method call (#897)
    Open source →
  33. 0.2.0 31 Mar 2022
    Release notes
    • added: Add IntoResponseParts trait which allows defining custom response types for adding headers or extensions to responses (#797)

    • breaking: Using HeaderMap as an extractor will no longer remove the headers and thus they'll still be accessible to other extractors, such as axum::extract::Json. Instead HeaderMap will clone the headers. You should prefer to use TypedHeader to extract only the headers you need (#698)

      This includes these breaking changes:

      • RequestParts::take_headers has been removed.
      • RequestParts::headers returns &HeaderMap.
      • RequestParts::headers_mut returns &mut HeaderMap.
      • HeadersAlreadyExtracted has been removed.
      • The HeadersAlreadyExtracted variant has been removed from these rejections:
        • RequestAlreadyExtracted
        • RequestPartsAlreadyExtracted
      • <HeaderMap as FromRequest<_>>::Rejection has been changed to std::convert::Infallible.
    • breaking: axum::http::Extensions is no longer an extractor (ie it doesn't implement FromRequest). The axum::extract::Extension extractor is not impacted by this and works the same. This change makes it harder to accidentally remove all extensions which would result in confusing errors elsewhere (#699) This includes these breaking changes:

      • RequestParts::take_extensions has been removed.
      • RequestParts::extensions returns &Extensions.
      • RequestParts::extensions_mut returns &mut Extensions.
      • RequestAlreadyExtracted has been removed.
      • <Request as FromRequest>::Rejection is now BodyAlreadyExtracted.
      • <http::request::Parts as FromRequest>::Rejection is now Infallible.
      • ExtensionsAlreadyExtracted has been removed.
    • breaking: RequestParts::body_mut now returns &mut Option<B> so the body can be swapped (#869)

    Open source →
  34. 0.1.2 22 Feb 2022
    Release notes
    • added: Implement IntoResponse for bytes::BytesMut and bytes::Chain<T, U> (#767)
    Open source →
  35. 0.1.1 06 Dec 2021
    Release notes
    • added: axum_core::response::Response now exists as a shorthand for writing Response<BoxBody> (#590)
    Open source →
  36. 0.1.0 02 Dec 2021
    Release notes
    • Initial release.
    Open source →
  37. 0.0.0 21 Aug 2021

    Nothing published for this version

Every package, every release, already written down.

The archive is open and free. Watching your own project is what we are building next.

Browse the archive