Skip to content

Releases: tokio-rs/axum

axum v0.8.3

28 Mar 16:30
axum-v0.8.3
b150ac0
Compare
Choose a tag to compare
  • added: Implement From<Bytes> for Message (#3273)
  • added: Implement OptionalFromRequest for Json (#3142)
  • added: Implement OptionalFromRequest for Extension (#3157)
  • added: Allow setting the read buffer capacity of WebSocketUpgrade (#3178)
  • changed: Improved code size / compile time of dependent crates (#3285, #3294)

axum-extra v0.10.1

28 Mar 16:31
axum-extra-v0.10.1
b150ac0
Compare
Choose a tag to compare
  • fixed: Fix a broken link in the documentation of ErasedJson (#3186)
  • added: Add vpath! for compile time path verification on static paths. (#3288)

axum-core v0.5.2

28 Mar 16:30
axum-core-v0.5.2
b150ac0
Compare
Choose a tag to compare
  • added: Implement Stream::size_hint for BodyDataStream (#3195)

axum v0.8.2

21 Jan 17:09
axum-v0.8.2
5966849
Compare
Choose a tag to compare

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


  • added: Implement OptionalFromRequest for Json (#3142)
  • added: Implement OptionalFromRequest for Extension (#3157)
  • changed: Make the status function of rejections a const function, such
    as JsonRejection, QueryRejection and PathRejection (#3168)

axum-extra v0.11.0

21 Jan 17:09
axum-extra-v0.11.0
5966849
Compare
Choose a tag to compare

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


  • breaking: Remove unused async-stream feature, which was accidentally
    introduced as an implicit feature through an optional dependency which was no
    longer being used (#3145)
  • fixed: Fix a broken link in the documentation of ErasedJson (#3186)
  • changed: Make the status function of rejections a const function, such
    as FormRejection, QueryRejection and MultipartRejection (#3168)

axum-core v0.5.1

21 Jan 17:08
axum-core-v0.5.1
5966849
Compare
Choose a tag to compare

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


  • change: Make the status function for rejections generated by the __define_rejection and __composite_rejection macros a const function (#3168)

axum v0.8.0

01 Jan 10:21
axum-v0.8.0
926543f
Compare
Choose a tag to compare

since rc.1

  • breaking: axum::extract::ws::Message now uses Bytes in place of Vec<u8>,
    and a new Utf8Bytes type in place of String, for its variants (#3078)
  • breaking: Remove OptionalFromRequestParts impl for Query (#3088)
  • changed: Upgraded tokio-tungstenite to 0.26 (#3078)
  • changed: Query/Form: Use serde_path_to_error to report fields that failed to parse (#3081)

full changelog

You can also read the blog post on tokio

Note: there are further relevant changes in axum-core's changelog

  • breaking: Upgrade matchit to 0.8, changing the path parameter syntax from /:single and /*many to /{single} and /{*many}; the old syntax produces a panic to avoid silent change in behavior (#2645)
  • breaking: Require Sync for all handlers and services added to Router and MethodRouter (#2473)
  • breaking: The tuple and tuple_struct Path extractor deserializers now check that the number of parameters matches the tuple length exactly (#2931)
  • breaking: Move Host extractor to axum-extra (#2956)
  • breaking: Remove WebSocket::close. Users should explicitly send close messages themselves. (#2974)
  • breaking: Make serve generic over the listener and IO types (#2941)
  • breaking: Remove Serve::tcp_nodelay and WithGracefulShutdown::tcp_nodelay.
    See serve::ListenerExt for an API that let you set arbitrary TCP stream properties. (#2941)
  • breaking: Option<Path<T>> no longer swallows all error conditions,
    instead rejecting the request in many cases; see its documentation for details (#2475)
  • breaking: axum::extract::ws::Message now uses Bytes in place of Vec<u8>,
    and a new Utf8Bytes type in place of String, for its variants (#3078)
  • fixed: Skip SSE incompatible chars of serde_json::RawValue in Event::json_data (#2992)
  • fixed: Don't panic when array type is used for path segment (#3039)
  • fixed: Avoid setting content-length before middleware.
    This allows middleware to add bodies to requests without needing to manually set content-length (#2897)
  • change: Update minimum rust version to 1.75 (#2943)
  • changed: Upgraded tokio-tungstenite to 0.26 (#3078)
  • changed: Query/Form: Use serde_path_to_error to report fields that failed to parse (#3081)
  • added: Add method_not_allowed_fallback to set a fallback when a path matches but there is no handler for the given HTTP method (#2903)
  • added: Add NoContent as a self-described shortcut for StatusCode::NO_CONTENT (#2978)
  • added: Add support for WebSockets over HTTP/2. They can be enabled by changing get(ws_endpoint) handlers to any(ws_endpoint) (#2894)
  • added: Add MethodFilter::CONNECT, routing::connect[_service] and MethodRouter::connect[_service] (#2961)
  • added: Extend FailedToDeserializePathParams::kind enum with (ErrorKind::DeserializeError). This new variant captures both key, value, and message from named path parameters parse errors, instead of only deserialization error message in ErrorKind::Message. (#2720)

axum-macros v0.5.0

01 Jan 10:21
axum-macros-v0.5.0
926543f
Compare
Choose a tag to compare

No changes since alpha.1

full changelog

  • breaking: Update code generation for axum-core 0.5.0
  • change: Update minimum rust version to 1.75 (#2943)

axum-extra v0.10.0

01 Jan 10:22
axum-extra-v0.10.0
926543f
Compare
Choose a tag to compare

since rc.1

  • breaking: Remove OptionalFromRequestParts impl for Query (#3088)
  • changed: Query/Form: Use serde_path_to_error to report fields that failed to parse (#3081)

full changelog

  • breaking: Update to prost 0.13. Used for the Protobuf extractor (#2829)
  • changed: Update minimum rust version to 1.75 (#2943)
  • changed: Deprecated OptionalPath<T> (#2475)
  • changed: Query/Form: Use serde_path_to_error to report fields that failed to parse (#3081)
  • changed: The multipart feature is no longer on by default (#3058)
  • fixed: Host extractor includes port number when parsing authority (#2242)
  • added: Add RouterExt::typed_connect (#2961)
  • added: Add json! for easy construction of JSON responses (#2962)
  • added: Add InternalServerError response for logging an internal error and returning HTTP 500 in a convenient way. (#3010)
  • added: Add FileStream for easy construction of file stream responses (#3047)
  • added: Add Scheme extractor (#2507)

axum-core v0.5.0

01 Jan 10:19
axum-core-v0.5.0
926543f
Compare
Choose a tag to compare

since rc.1

  • 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)

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)