10 KiB
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
Unreleased
- breaking::
Option<T>
as an extractor now requiresT
to implement the new traitOptionalFromRequest
(if used as the last extractor) orOptionalFromRequestParts
(other extractors) (#2475)
0.5.0
alpha.1
- breaking: Replace
#[async_trait]
with return-positionimpl Trait
in traits (#2308) - change: Update minimum rust version to 1.75 (#2943)
0.4.5
- fixed: Compile errors from the internal
__log_rejection
macro under certain Cargo feature combinations between axum crates (#2933)
0.4.4
- added: Derive
Clone
andCopy
forAppendHeaders
(#2776) - added:
must_use
attribute onAppendHeaders
(#2846) - added:
must_use
attribute onErrorResponse
(#2846) - added:
must_use
attribute onIntoResponse::into_response
(#2846) - added:
must_use
attribute onIntoResponseParts
trait methods (#2846) - added: Implement
Copy
forDefaultBodyLimit
(#2875) - added:
DefaultBodyLimit::max
andDefaultBodyLimit::disable
are now allowed in const context (#2875)
0.4.3 (13. January, 2024)
- added: Implement
IntoResponseParts
for()
(#2471)
0.4.2 (29. December, 2023)
- added:
Body
implementsFrom<()>
now (#2411)
0.4.1 (03. December, 2023)
- Fix from_stream doc link to
Stream
in docs (#2391)
0.4.0 (27. November, 2023)
- 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 ataxum_core::body::Body
([#1751])
0.3.4 (11. April, 2023)
- Changes to private APIs.
0.3.3 (03. March, 2023)
- fixed: Add
#[must_use]
attributes to types that do nothing unless used (#1809)
0.3.2 (20. January, 2023)
- added: Implement
IntoResponse
for&'static [u8; N]
and[u8; N]
(#1690)
0.3.1 (9. January, 2023)
- added: Add
body_text
andstatus
methods to built-in rejections (#1612)
0.3.0 (25. November, 2022)
- added: Added new
FromRequestParts
trait. See axum's changelog for more details (#1272) - breaking:
FromRequest
has been reworked andRequestParts
has been removed. See axum's changelog for more details (#1272) - breaking:
BodyAlreadyExtracted
has been removed (#1272) - breaking:
AppendHeaders
now works on anyimpl IntoIterator
(#1495)
0.3.0 Pre-Releases
0.3.0-rc.3 (8. November, 2022)
- added: Add
DefaultBodyLimit::max
for changing the default body limit (#1397) - added: Add
Error::into_inner
for convertingError
toBoxError
without allocating (#1476) - breaking:
AppendHeaders
now works on anyimpl IntoIterator
(#1495)
0.3.0-rc.2 (10. September, 2022)
-
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 usedBytes::from_request
internally.(#1346)
0.3.0-rc.1 (23. August, 2022)
0.2.8 (10. September, 2022)
-
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 usedBytes::from_request
internally.(#1346)
0.2.7 (10. July, 2022)
- fix: Fix typos in
RequestParts
docs (#1147)
0.2.6 (18. June, 2022)
- change: axum-core's MSRV is now 1.56 (#1098)
0.2.5 (08. June, 2022)
- added: Automatically handle
http_body::LengthLimitError
inFailedToBufferBody
and map such errors to413 Payload Too Large
(#1048) - fixed: Use
impl IntoResponse
less in docs (#1049)
0.2.4 (02. May, 2022)
- added: Implement
IntoResponse
andIntoResponseParts
forhttp::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)
0.2.3 (25. April, 2022)
- added: Add
response::ErrorResponse
andresponse::Result
forIntoResponse
-based error handling (#921)
0.2.2 (19. April, 2022)
- added: Add
AppendHeaders
for appending headers to a response rather than overriding them (#927)
0.2.1 (03. April, 2022)
- added: Add
RequestParts::extract
which allows applying an extractor as a method call (#897)
0.2.0 (31. March, 2022)
-
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 asaxum::extract::Json
. InsteadHeaderMap
will clone the headers. You should prefer to useTypedHeader
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 tostd::convert::Infallible
.
-
breaking:
axum::http::Extensions
is no longer an extractor (ie it doesn't implementFromRequest
). Theaxum::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 nowBodyAlreadyExtracted
.<http::request::Parts as FromRequest>::Rejection
is nowInfallible
.ExtensionsAlreadyExtracted
has been removed.
-
breaking:
RequestParts::body_mut
now returns&mut Option<B>
so the body can be swapped (#869)
0.1.2 (22. February, 2022)
- added: Implement
IntoResponse
forbytes::BytesMut
andbytes::Chain<T, U>
(#767)
0.1.1 (06. December, 2021)
- added:
axum_core::response::Response
now exists as a shorthand for writingResponse<BoxBody>
(#590)
0.1.0 (02. December, 2021)
- Initial release.