mirror of
https://github.com/tokio-rs/axum.git
synced 2024-11-22 15:17:18 +01:00
7.8 KiB
7.8 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
- Overall compile time improvements. If you're having issues with compile time please file an issue!
- Add dedicated
Router
to replace theRoutingDsl
trait (#214) - Make
FromRequest
default to being generic overbody::Body
(#146) - Implement
std::error::Error
for all rejections (#153) - Add
Router::or
for combining routes (#108) - Add
handle_error
toservice::OnMethod
(#160) - Add
OriginalUri
for extracting original request URI in nested services (#197) - Implement
FromRequest
forhttp::Extensions
- Add
Headers
for easily customizing headers on a response (#193) - Add
Redirect
response (#192) - Make
RequestParts::{new, try_into_request}
public (#194) - Support matching different HTTP methods for the same route that aren't defined
together. So
Router::new().route("/", get(...)).route("/", post(...))
now accepts bothGET
andPOST
. Previously onlyPOST
would be accepted (#224)
Breaking changes
- Remove
prelude
. Explicit imports are now required (#195) - Replace
axum::route(...)
withaxum::Router::new().route(...)
. This means there is now only one way to create a new router. Same goes foraxum::routing::nest
. (#215) - Add associated
Body
andBodyError
types toIntoResponse
. This is required for returning responses with bodies other thanhyper::Body
from handlers. See the docs for advice on how to implementIntoResponse
(#86) - Implement SSE as an
IntoResponse
instead of a service (#98) - Replace
body::BoxStdError
withError
, which supports downcasting (#150) get
routes will now also be called forHEAD
requests but will always have the response body removed (#129)- Change WebSocket API to use an extractor (#121)
- Make WebSocket
Message
an enum (#116) WebSocket
now usesError
as its error type (#150) behavior (#120)- Implement
routing::MethodFilter
viabitflags
- Removed
extract::UrlParams
andextract::UrlParamsMap
. Useextract::Path
instead EmptyRouter
now requires the response body to implementSend + Sync + 'static'
(#108)extractor_middleware
now requiresRequestBody: Default
(#167)- Convert
RequestAlreadyExtracted
to an enum with each possible error variant (#167) Router::check_infallible
now returns aCheckInfallible
service. This is to improve compile times.- These future types have been moved
extract::extractor_middleware::ExtractorMiddlewareResponseFuture
moved toextract::extractor_middleware::future::ResponseFuture
(#133)routing::BoxRouteFuture
moved torouting::future::BoxRouteFuture
(#133)routing::EmptyRouterFuture
moved torouting::future::EmptyRouterFuture
(#133)routing::RouteFuture
moved torouting::future::RouteFuture
(#133)service::BoxResponseBodyFuture
moved toservice::future::BoxResponseBodyFuture
(#133)
- The following types no longer implement
Copy
(#132)EmptyRouter
ExtractorMiddleware
ExtractorMiddlewareLayer
QueryStringMissing
RequestParts
changes (#153)method
new returns an&http::Method
method_mut
new returns an&mut http::Method
take_method
has been removeduri
new returns an&http::Uri
uri_mut
new returns an&mut http::Uri
take_uri
has been removed
- These rejections have been removed as they're no longer used
- The following services have new response future types:
service::OnMethod
handler::OnMethod
routing::Nested
- Remove
axum::sse
(#98) - Add default feature
tower-log
which exposestower
'slog
feature. (#218)
0.1.3 (06. August, 2021)
- Fix stripping prefix when nesting services at
/
(#91) - Add support for WebSocket protocol negotiation (#83)
- Use
pin-project-lite
instead ofpin-project
(#95) - Re-export
http
crate andhyper::Server
(#110) - Fix
Query
andForm
extractors giving bad request error when query string is empty. (#117) - Add
Path
extractor. (#124) - Fixed the implementation of
IntoResponse
of(HeaderMap, T)
and(StatusCode, HeaderMap, T)
would ignore headers fromT
(#137) - Deprecate
extract::UrlParams
andextract::UrlParamsMap
. Useextract::Path
instead (#138)
0.1.2 (01. August, 2021)
- Implement
Stream
forWebSocket
(#52) - Implement
Sink
forWebSocket
(#52) - Implement
Deref
most extractors (#56) - Return
405 Method Not Allowed
for unsupported method for route (#63) - Add extractor for remote connection info (#55)
- Improve error message of
MissingExtension
rejections (#72) - Improve documentation for routing (#71)
- Clarify required response body type when routing to
tower::Service
s (#69) - Add
axum::body::box_body
to converting anhttp_body::Body
toaxum::body::BoxBody
(#69) - Add
axum::sse
for Server-Sent Events (#75) - Mention required dependencies in docs (#77)
- Fix WebSockets failing on Firefox (#76)
0.1.1 (30. July, 2021)
- Misc readme fixes.
0.1.0 (30. July, 2021)
- Initial release.