Releases: tokio-rs/axum
Releases · tokio-rs/axum
axum-core v0.5.2
- added: Implement
Stream::size_hintforBodyDataStream(#3195)
axum v0.8.2
Yanked from crates.io due to unforeseen breaking change, see #3190 for details
axum-extra v0.11.0
Yanked from crates.io due to unforeseen breaking change, see #3190 for details
- breaking: Remove unused
async-streamfeature, 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
statusfunction of rejections aconstfunction, such
asFormRejection,QueryRejectionandMultipartRejection(#3168)
axum-core v0.5.1
axum v0.8.0
since rc.1
- breaking:
axum::extract::ws::Messagenow usesBytesin place ofVec<u8>,
and a newUtf8Bytestype in place ofString, for its variants (#3078) - breaking: Remove
OptionalFromRequestPartsimpl forQuery(#3088) - changed: Upgraded
tokio-tungsteniteto 0.26 (#3078) - changed: Query/Form: Use
serde_path_to_errorto 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
/:singleand/*manyto/{single}and/{*many}; the old syntax produces a panic to avoid silent change in behavior (#2645) - breaking: Require
Syncfor all handlers and services added toRouterandMethodRouter(#2473) - breaking: The tuple and tuple_struct
Pathextractor deserializers now check that the number of parameters matches the tuple length exactly (#2931) - breaking: Move
Hostextractor toaxum-extra(#2956) - breaking: Remove
WebSocket::close. Users should explicitly send close messages themselves. (#2974) - breaking: Make
servegeneric over the listener and IO types (#2941) - breaking: Remove
Serve::tcp_nodelayandWithGracefulShutdown::tcp_nodelay.
Seeserve::ListenerExtfor 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::Messagenow usesBytesin place ofVec<u8>,
and a newUtf8Bytestype in place ofString, for its variants (#3078) - fixed: Skip SSE incompatible chars of
serde_json::RawValueinEvent::json_data(#2992) - fixed: Don't panic when array type is used for path segment (#3039)
- fixed: Avoid setting
content-lengthbefore middleware.
This allows middleware to add bodies to requests without needing to manually setcontent-length(#2897) - change: Update minimum rust version to 1.75 (#2943)
- changed: Upgraded
tokio-tungsteniteto 0.26 (#3078) - changed: Query/Form: Use
serde_path_to_errorto report fields that failed to parse (#3081) - added: Add
method_not_allowed_fallbackto set a fallback when a path matches but there is no handler for the given HTTP method (#2903) - added: Add
NoContentas a self-described shortcut forStatusCode::NO_CONTENT(#2978) - added: Add support for WebSockets over HTTP/2. They can be enabled by changing
get(ws_endpoint)handlers toany(ws_endpoint)(#2894) - added: Add
MethodFilter::CONNECT,routing::connect[_service]andMethodRouter::connect[_service](#2961) - added: Extend
FailedToDeserializePathParams::kindenum with (ErrorKind::DeserializeError). This new variant captures bothkey,value, andmessagefrom named path parameters parse errors, instead of only deserialization error message inErrorKind::Message. (#2720)
axum-macros v0.5.0
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
since rc.1
full changelog
- breaking: Update to prost 0.13. Used for the
Protobufextractor (#2829) - changed: Update minimum rust version to 1.75 (#2943)
- changed: Deprecated
OptionalPath<T>(#2475) - changed: Query/Form: Use
serde_path_to_errorto report fields that failed to parse (#3081) - changed: The
multipartfeature is no longer on by default (#3058) - fixed:
Hostextractor 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
InternalServerErrorresponse for logging an internal error and returning HTTP 500 in a convenient way. (#3010) - added: Add
FileStreamfor easy construction of file stream responses (#3047) - added: Add
Schemeextractor (#2507)
axum-core v0.5.0
since rc.1
- change: The
Displayimpl of all rejections generated by thedefine_rejection!()will now include theDisplayoutput of the inner error too. This matches thebody_text()fn output now. (#3118)
full changelog
- breaking: Replace
#[async_trait]with return-positionimpl Traitin traits (#2308) - breaking::
Option<T>as an extractor now requiresTto implement the new traitOptionalFromRequest(if used as the last extractor) orOptionalFromRequestParts(other extractors) (#2475) - change: Update minimum rust version to 1.75 (#2943)
- change: The
Displayimpl of all rejections generated by thedefine_rejection!()will now include theDisplayoutput of the inner error too. This matches thebody_text()fn output now. (#3118)
axum v0.8.0-rc.1
Note: there are further relevant changes in axum-core's changelog.
Since v0.8.0-alpha.1:
- breaking: Move
Hostextractor toaxum-extra(#2956) - breaking: Remove
WebSocket::close.
Users should explicitly send close messages themselves. (#2974) - breaking: Make
servegeneric over the listener and IO types (#2941) - breaking: Remove
Serve::tcp_nodelayandWithGracefulShutdown::tcp_nodelay.
Seeserve::ListenerExtfor an API that let you set arbitrary TCP stream properties. (#2941) - breaking:
Option<Path<T>>andOption<Query<T>>no longer swallow all error conditions,
instead rejecting the request in many cases; see their documentation for details (#2475) - fixed: Skip SSE incompatible chars of
serde_json::RawValueinEvent::json_data(#2992) - fixed: Don't panic when array type is used for path segment (#3039)
- fixed: Avoid setting
content-lengthbefore middleware.
This allows middleware to add bodies to requests without needing to manually setcontent-length(#2897) - added: Add
method_not_allowed_fallbackto set a fallback when a path matches but there is no handler for the given HTTP method (#2903) - added: Add
NoContentas a self-described shortcut forStatusCode::NO_CONTENT(#2978) - added: Add support for WebSockets over HTTP/2.
They can be enabled by changingget(ws_endpoint)handlers toany(ws_endpoint)(#2894) - added: Add
MethodFilter::CONNECT,routing::connect[_service]
andMethodRouter::connect[_service](#2961) - added: Extend
FailedToDeserializePathParams::kindenum with (ErrorKind::DeserializeError)
This new variant captures bothkey,value, andmessagefrom named path parameters parse errors,
instead of only deserialization error message inErrorKind::Message. (#2720)
axum-extra v0.10.0-rc.1
Since v0.10.0-alpha.1:
- breaking:
Option<Query<T>>no longer swallows all error conditions, instead rejecting the
request in many cases; see its documentation for details (#2475) - changed: Deprecated
OptionalPath<T>andOptionalQuery<T>(#2475) - fixed:
Hostextractor includes port number when parsing authority (#2242) - changed: The
multipartfeature is no longer on by default (#3058) - added: Add
RouterExt::typed_connect(#2961) - added: Add
json!for easy construction of JSON responses (#2962) - added: Add
InternalServerErrorresponse for logging an internal error
and returning HTTP 500 in a convenient way. (#3010) - added: Add
FileStreamfor easy construction of file stream responses (#3047)