David Pedersen
6cd356690d
Annotate panicking functions with #[track_caller] ( #1248 )
2022-08-11 12:45:42 +02:00
David Pedersen and Jonas Platte
50a4be999d
Update matchit and fix nesting inconsistencies ( #1086 )
...
* Break `Router::nest` into `nest` and `nest_service` methods
* fix doc tests
* update docs
* fix
* Only accept `Router` in `Resource::{nest, nest_collection}`
* update changelog
* fix docs
* fix `MatchedPath` with `Router`s nested with `nest_service`
* Apply suggestions from code review
Co-authored-by: Jonas Platte <[email protected] >
* adjust docs for fallbacks
* Always nest services as opaque
* fix old docs reference
* more tests for `MatchedPath` with nested handlers
* minor clean up
* use identifier captures in format strings
* Apply suggestions from code review
Co-authored-by: Jonas Platte <[email protected] >
* fix test
Co-authored-by: Jonas Platte <[email protected] >
2022-08-11 10:17:08 +00:00
Jonas Platte
7cbb7cf135
Use new Cargo features to avoid implicit features for optional dependencies ( #1239 )
...
* Fix changelog entry for MSRV change in axum-extra 0.3.5
* Bump MSRV to 1.60 for axum, axum-extra, axum-macros
* Use new Cargo features to avoid implicit features for optional dependencies
2022-08-09 18:43:02 +02:00
David Pedersen
b243e171fd
Accept S::Response: IntoResponse everywhere ( #1165 )
2022-07-19 18:55:15 +02:00
SzudemJ
73041c8988
Avoid exposure of type names by QueryRejection ( #1171 )
2022-07-18 13:43:18 +00:00
David Pedersen
329bd5f9b4
Support any middleware response that implements IntoResponse ( #1152 )
...
* Support any middleware response that implements `IntoResponse`
* Require `Infallible` for middleware added with `Handler::layer`
2022-07-13 08:38:19 +00:00
David Pedersen
92dbbd3182
Return rejection if WebSocket request couldn't be upgraded ( #1135 )
...
* Return rejection if `WebSocket` request couldn't be upgraded
* make rejection about connection upgrades
* changelog links
2022-07-11 14:33:55 +02:00
David Pedersen
2966407dc1
Re-export debug_handler from axum ( #1144 )
...
* Re-export `debug_handler` from axum
Fixes #1143
* also axum-extra
2022-07-04 09:10:52 +00:00
David Pedersen
2e80ebd18d
Support running extractors from middleware::from_fn
2022-07-03 16:49:20 +02:00
NicolaLS and David Pedersen
34146f3139
Implement TryFrom<Method> for MethodFilter ( #1130 )
...
* implement TryFrom<http::Method> for MethodFilter
* test for TryFrom<http::Method> for MethodFilter
* 'UnsupportedMethod' error type for MethodFilter
* Log TryFrom<http::Method> for MethodFilter
* adjust docs
* move docs
Co-authored-by: David Pedersen <[email protected] >
2022-07-01 08:37:41 +00:00
David Pedersen and Jonas Platte
a4c820420d
Remove trailing slash redirects ( #1119 )
...
* Prepare axum-next branch
* Remove deprecated `extractor_middleware` function (#1077 )
* Allow `Error: Into<Infallible>` for `Route::{layer, route_layer}` (#948 )
* Allow `Error: Into<Infallible>` for `Route::{layer, route_layer}` (#924 )
* Allow `Error: Into<Infallible>` for `Route::{layer, route_layer}`
Fixes https://github.com/tokio-rs/axum/issues/922
* changelog
* fixup changelog
* Panic on overlapping routes in `MethodRouter` (#1102 )
* Panic on overlapping routes in `MethodRouter`
* changelog link
* add test to ensure `head` and `get` don't overlap
* Fix changelog
* Prepare axum-next branch
* Remove trailing slash redirects
* changelog link
* Fix changelog
* remove asserting to make make the test more clear
* remove tsr related feature
* Add `RouterExt::route_with_tsr`
* Apply suggestions from code review
Co-authored-by: Jonas Platte <[email protected] >
* Update axum-extra/src/routing/mod.rs
Co-authored-by: Jonas Platte <[email protected] >
* fix typos in docs
* Update axum/CHANGELOG.md
Co-authored-by: Jonas Platte <[email protected] >
* mention `RouterExt::route_with_tsr` in the changelog
Co-authored-by: Jonas Platte <[email protected] >
2022-06-30 00:22:43 +02:00
David Pedersen
23808f72a2
Fix changelog
2022-06-28 22:07:10 +02:00
David Pedersen
2b386c0baa
Panic on overlapping routes in MethodRouter ( #1102 )
...
* Panic on overlapping routes in `MethodRouter`
* changelog link
* add test to ensure `head` and `get` don't overlap
2022-06-28 22:07:10 +02:00
David Pedersen
661473dcbc
Allow Error: Into<Infallible> for Route::{layer, route_layer} ( #948 )
...
* Allow `Error: Into<Infallible>` for `Route::{layer, route_layer}` (#924 )
* Allow `Error: Into<Infallible>` for `Route::{layer, route_layer}`
Fixes https://github.com/tokio-rs/axum/issues/922
* changelog
* fixup changelog
2022-06-28 22:07:10 +02:00
David Pedersen
56ddabcd7d
Remove deprecated extractor_middleware function ( #1077 )
2022-06-28 22:07:10 +02:00
David Pedersen
7e794e9d1d
axum: Version 0.5.10 ( #1128 )
2022-06-28 21:32:39 +02:00
David Pedersen and Jonas Platte
a8d0ce8c03
Fix possible panic when doing trailing slash redirect ( #1124 )
...
* Fix possible panic when doing trailing slash redirect
Fixes https://github.com/tokio-rs/axum/issues/1122
* changelog link
* Update axum/src/routing/mod.rs
Co-authored-by: Jonas Platte <[email protected] >
Co-authored-by: Jonas Platte <[email protected] >
2022-06-28 16:58:13 +02:00
David Pedersen and Jonas Platte
cb207472f4
Make Router faster to clone ( #1123 )
...
* Make `Router` faster to clone
* changelog
* Update axum/src/routing/mod.rs
Co-authored-by: Jonas Platte <[email protected] >
* fix
* Update axum/src/routing/mod.rs
Co-authored-by: Jonas Platte <[email protected] >
Co-authored-by: Jonas Platte <[email protected] >
2022-06-27 11:00:19 +02:00
David Pedersen
fabb205a9e
axum: Version 0.5.9 ( #1108 )
2022-06-20 13:44:15 +02:00
David Pedersen
7f203b96e6
Fix build with form feature without headers feature ( #1107 )
...
Fixes #1106
2022-06-20 09:14:21 +02:00
David Pedersen
5ac0b2b3d7
axum: Version 0.5.8 ( #1104 )
2022-06-18 11:38:52 +02:00
David Pedersen
2f64064650
Implement IntoResponse for Form ( #1095 )
2022-06-17 18:23:57 +00:00
David Pedersen
93251fa203
Bump MSRV to 1.56 and update to the 2021 edition ( #1098 )
2022-06-17 20:11:35 +02:00
David Pedersen and Jonas Platte
dbdbd0165e
Support Forwarded in Host extractor ( #1078 )
...
* Support `Forwarded` in `Host` extractor
* changelog
* Update axum/src/extract/host.rs
Co-authored-by: Jonas Platte <[email protected] >
* look for `host` key
Co-authored-by: Jonas Platte <[email protected] >
2022-06-10 22:30:01 +02:00
David Pedersen
7aa3f35129
axum: Version 0.5.7 ( #1075 )
2022-06-08 16:08:11 +02:00
David Pedersen
0936a246bf
Add extract::ws::close_code which contains constants for close codes ( #1067 )
...
The values and docs are copied from [tungstenite].
Fixes #1061
[tungstenite]: https://docs.rs/tungstenite/0.17.2/src/tungstenite/protocol/frame/coding.rs.html#119-188
2022-06-08 09:36:59 +02:00
David Pedersen
8ff275499b
Add #1049 to changelogs
2022-06-06 18:00:52 +02:00
David Pedersen
6c10f41d94
Support Path<Vec<(String, String)>> ( #1059 )
...
* Support `Path<Vec<(String, String)>>`
* changelog
2022-05-27 14:11:33 +02:00
Christofer Nolander
d7c4e2f807
Implement Default for Extension ( #1043 )
2022-05-18 15:44:08 +00:00
David Pedersen
316e20fbd9
axum: Version 0.5.6 ( #1033 )
2022-05-15 23:05:00 +02:00
David Pedersen
178e1801e9
Add axum_extra::extract::Form ( #1031 )
...
* Add `axum_extra::extra::Form`
* update tokio-util ban
2022-05-15 15:17:45 +00:00
David Pedersen and Jonas Platte
08cbade3cb
Improve Path error when its extracted multiple times ( #1023 )
...
* Improve `Path` error
* Improve docs
* changelog
* Update axum/src/extract/path/mod.rs
Co-authored-by: Jonas Platte <[email protected] >
* fix test
Co-authored-by: Jonas Platte <[email protected] >
2022-05-11 11:38:37 +02:00
280334347b
Add protocol field to WebSocket ( #1022 )
...
* Add protocol field to WebSocket
Signed-off-by: Matteo Joliveau <[email protected] >
* Use HeaderValue instead of String
Signed-off-by: Matteo Joliveau <[email protected] >
* Update axum/src/extract/ws.rs
Co-authored-by: Jonas Platte <[email protected] >
* Update changelog
Co-authored-by: David Pedersen <[email protected] >
Co-authored-by: Jonas Platte <[email protected] >
2022-05-11 08:49:44 +00:00
David Pedersen
96aaac4865
axum: Version 0.5.5 ( #1014 )
2022-05-10 11:43:08 +00:00
David Pedersen
a3a32f493e
Add MethodRouter::{into_make_service, into_make_service_with_connect_info} ( #1010 )
2022-05-08 19:48:48 +02:00
d19beffd6d
Handle GET, HEAD, and OPTIONS correctly in ContentLengthLimit ( #989 )
...
* Handle `GET`/`HEAD`/`OPTIONS` in `ContentLengthLimit`
* changelog
* Apply suggestions from code review
Co-authored-by: Marcus Griep <[email protected] >
* Don't allow GET/HEAD/OPTIONS with `transfer-encoding: chunked`
* simplify constructing chunked body
* Update axum/src/extract/content_length_limit.rs
Co-authored-by: Jonas Platte <[email protected] >
Co-authored-by: Marcus Griep <[email protected] >
Co-authored-by: Jonas Platte <[email protected] >
2022-05-05 09:17:54 +02:00
David Pedersen
a723ed1453
axum: Version 0.5.4 ( #973 )
2022-04-26 16:50:44 +02:00
David Pedersen
79f6cde3b1
Update to tower-http 0.3.0 ( #965 )
...
* Update to tower-http 0.3.0
* changelog link
2022-04-25 14:59:16 +00:00
Arniu Tseng and David Pedersen
ebecac57a3
Add FromExtractor and deprecate extractor_middleware ( #957 )
...
* Add from_extractor and deprecate extractor_middleware
* Fix clippy warnings
* Update CHANGELOG.md
* Clean doc
* Add ExtractorMiddleware* back for compatibility
* Revert "Update CHANGELOG.md"
* remove dedundant docs
* allow re-exporting deprecated types
Co-authored-by: David Pedersen <[email protected] >
2022-04-24 15:31:17 +00:00
8084b242d5
Add response::ErrorResponse and response::Result ( #921 )
...
* feat: add response::{Error, Result}
This type makes for efficient use of the `?` operator when in a function
with multiple return error types that all implement `IntoResponse`.
Signed-off-by: Nathaniel McCallum <[email protected] >
* misc adjustments from PR review
* Rename to `ErrorResponse` and `ResultResponse`
* nitpicky docs changes
* update changelog
* changelog wording
* Apply suggestions from code review
Co-authored-by: Jonas Platte <[email protected] >
Co-authored-by: David Pedersen <[email protected] >
Co-authored-by: Jonas Platte <[email protected] >
2022-04-21 16:24:29 +02:00
David Pedersen and Jonas Platte
061e66c236
axum: Version 0.5.3 ( #947 )
...
* axum: Version 0.5.3
* Update axum/CHANGELOG.md
Co-authored-by: Jonas Platte <[email protected] >
Co-authored-by: Jonas Platte <[email protected] >
2022-04-19 17:00:51 +02:00
David Pedersen
2adb34c8aa
Revert "Allow Error: Into<Infallible> for Route::{layer, route_layer} ( #924 )" ( #946 )
...
This reverts commit ca7ecb159b .
2022-04-19 16:47:27 +02:00
David Pedersen
883a1cfd8f
axum: Version 0.5.2
2022-04-19 16:19:43 +02:00
David Pedersen
ca7ecb159b
Allow Error: Into<Infallible> for Route::{layer, route_layer} ( #924 )
...
* Allow `Error: Into<Infallible>` for `Route::{layer, route_layer}`
Fixes https://github.com/tokio-rs/axum/issues/922
* changelog
2022-04-19 16:16:54 +02:00
David Pedersen
afcefb4a70
Add AppendHeaders ( #927 )
...
* Add `AppendHeaders`
* axum changelog
2022-04-17 23:14:04 +02:00
David Calavera and David Pedersen
83e1a15040
Fix trailing redirection with query parameters ( #936 )
...
* Fix trailing redirection with query parameters
When the request URI matches a route that need a trailing slash, or has an extra trailing slash, the redirect URI is not generated correctly.
This change adds or removes a trailing slash to the path part of the URI, instead of the full URI, preserving query parameters during redirection.
Signed-off-by: David Calavera <[email protected] >
* Make trailing slash logic safer
Extract parts from Uri and recreate it, so it doesn't bump
into corner cases with string manipulation.
Signed-off-by: David Calavera <[email protected] >
* Remove extra assignment.
Signed-off-by: David Calavera <[email protected] >
* Update axum/src/routing/mod.rs
Co-authored-by: David Pedersen <[email protected] >
* changelog
Co-authored-by: David Pedersen <[email protected] >
2022-04-17 21:12:52 +00:00
Grachev Mikhail
4c936dbb52
Fix a typo in CHANGELOG.md ( #906 )
2022-04-04 09:26:39 +02:00
Tristan Bouchard and David Pedersen
d417910a16
Add Field::chunk ( #901 )
...
* Added chunk function to multipart field
This fixes not being able to stream data from a multipart directly into a file or other output.
* doc comment for clarification of usage and &mut self
* fixed formatting
* Corrected example to reflex best practices
* Removed unwrap
* clean up docs
* update changelog
Co-authored-by: David Pedersen <[email protected] >
2022-04-04 09:26:11 +02:00
David Pedersen
3e716f303f
axum: Version 0.5.1
2022-04-03 20:23:18 +02:00
Jonas Platte
1191b58083
Add RequestParts::extract ( #897 )
2022-04-01 09:25:15 +02:00