Skip to content

axum - v0.7.0

Compare
Choose a tag to compare
@davidpdrsn davidpdrsn released this 27 Nov 08:32
· 134 commits to main since this release
b7d14d3
  • breaking: Update public dependencies. axum now requires
  • breaking: axum now requires tower-http 0.5
  • breaking: Remove deprecated WebSocketUpgrade::max_send_queue
  • 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
    • HandlerService
    • HandlerWithoutStateExt
    • Handler
    • LayeredFuture
    • Layered
    • MethodRouter
    • Next
    • RequestExt
    • RouteFuture
    • Route
    • Router
  • 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::body::Body (#1751)
  • breaking: extract::BodyStream has been removed as body::Body
    implements Stream and FromRequest directly (#1751)
  • breaking: Change sse::Event::json_data to use axum_core::Error as its error type (#1762)
  • breaking: Rename DefaultOnFailedUpdgrade to DefaultOnFailedUpgrade (#1664)
  • breaking: Rename OnFailedUpdgrade to OnFailedUpgrade (#1664)
  • breaking: TypedHeader has been move to axum-extra (#1850)
  • breaking: Removed re-exports of Empty and Full. Use
    axum::body::Body::empty and axum::body::Body::from respectively (#1789)
  • breaking: The response returned by IntoResponse::into_response must use
    axum::body::Body as the body type. axum::response::Response does this
    (#1789)
  • breaking: Removed the BoxBody type alias and its box_body
    constructor. Use axum::body::Body::new instead (#1789)
  • breaking: Remove RawBody extractor. axum::body::Body implements FromRequest directly (#1789)
  • breaking: The following types from http-body no longer implement IntoResponse:
    • Full, use Body::from instead
    • Empty, use Body::empty instead
    • BoxBody, use Body::new instead
    • UnsyncBoxBody, use Body::new instead
    • MapData, use Body::new instead
    • MapErr, use Body::new instead
  • added: Add axum::extract::Request type alias where the body is axum::body::Body (#1789)
  • added: Add Router::as_service and Router::into_service to workaround
    type inference issues when calling ServiceExt methods on a Router (#1835)
  • breaking: Removed axum::Server as it was removed in hyper 1.0. Instead
    use axum::serve(listener, service) or hyper/hyper-util for more configuration options (#1868)
  • breaking: Only inherit fallbacks for routers nested with Router::nest.
    Routers nested with Router::nest_service will no longer inherit fallbacks (#1956)
  • fixed: Don't remove the Sec-WebSocket-Key header in WebSocketUpgrade (#1972)
  • added: Add axum::extract::Query::try_from_uri (#2058)
  • added: Implement IntoResponse for Box<str> and Box<[u8]> ([#2035])
  • breaking: Simplify MethodFilter. It no longer uses bitflags (#2073)
  • fixed: Fix bugs around merging routers with nested fallbacks (#2096)
  • fixed: Fix .source() of composite rejections (#2030)
  • fixed: Allow unreachable code in #[debug_handler] (#2014)
  • change: axum's MSRV is now 1.66 (#1882)
  • added: Implement IntoResponse for (R,) where R: IntoResponse (#2143)
  • changed: For SSE, add space between field and value for compatibility (#2149)
  • added: Add NestedPath extractor (#1924)
  • added: Add handle_error function to existing ServiceExt trait (#2235)
  • breaking: impl<T> IntoResponse(Parts) for Extension<T> now requires
    T: Clone, as that is required by the http crate (#1882)
  • added: Add axum::Json::from_bytes (#2244)
  • added: Implement FromRequestParts for http::request::Parts (#2328)
  • added: Implement FromRequestParts for http::Extensions (#2328)
  • fixed: Clearly document applying DefaultBodyLimit to individual routes (#2157)