David Pedersen
f66893fbda
Add missing version for serde_json in Cargo.toml
...
No idea how that went away
2022-06-10 16:57:53 +02:00
David Pedersen
968ee44631
Sort dependencies in Cargo.tomls ( #1076 )
...
* sort dependencies
* check sorted deps on CI
* this should fail
* does caching matter?
* fix sorting
2022-06-10 08:59:17 +02:00
David Pedersen
453202b490
Document all cargo features ( #1079 )
2022-06-10 08:46:09 +02:00
David Pedersen
b6a2d9dba7
Use consistent todo comment casing
2022-06-09 20:47:23 +02:00
David Pedersen
7aa3f35129
axum: Version 0.5.7 ( #1075 )
2022-06-08 16:08:11 +02:00
David Pedersen
fbb4786851
axum-extra: Version 0.3.4 ( #1074 )
2022-06-08 15:58:37 +02:00
David Pedersen
a9eb4ac527
axum-core: Version 0.2.5 ( #1073 )
2022-06-08 15:56:56 +02:00
David Pedersen
ef750799fa
Automatically handle http_body::LengthLimitError ( #1048 )
...
* Automatically handle `http_body::LengthLimitError`
* add tower-http dev dep to axum-core
* just make it a link
* Make `FailedToBufferBody` an enum
* Fix tests now that tower-http handles `Content-Length`
* Bring back explanation for `LengthLimitError`
* remove todo we likely can't fix
* improve wording in docs
2022-06-08 13:47:57 +00:00
David Pedersen
73b1bafbf8
Add AsyncReadBody ( #1072 )
...
* Add `AsyncReadBody`
* changelog
* sort cargo.toml
2022-06-08 11:02:42 +02:00
David Pedersen
115a47b191
Remove tower's buffer feature ( #1071 )
...
Turns out we're not using it anymore and it saves depending on tokio-util.
2022-06-08 07:58:56 +00: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
David Pedersen
19fe93262f
Use impl IntoResponse less in docs ( #1049 )
2022-05-22 13:41:29 +02:00
David Pedersen
5948cde6c1
Support customizing rejections for #[derive(TypedPath)] ( #1012 )
...
* Support customizing rejections for `#[derive(TypedPath)]`
* changelog
* clean up
2022-05-17 21:36:05 +02:00
David Pedersen
be71e7b286
Fix vulnerability in example-stream-to-file example ( #1040 )
...
* Fix vulnerability in example-stream-to-file example
* Save files to separate directory
2022-05-17 12:38:15 +02:00
David Pedersen
7d88bd3a66
Check for multiple body extractors in debug_handler ( #1036 )
...
* Check for multiple body extractors in `debug_handler`
* changelog link
2022-05-16 14:11:40 +00:00
David Pedersen
05529c8efc
Check Request and Path in debug_handler ( #1035 )
...
* Check `Request` and `Path` in `debug_handler`
* changelog links
* Include errors with the input
2022-05-16 10:05:17 +00:00
David Pedersen
316e20fbd9
axum: Version 0.5.6 ( #1033 )
2022-05-15 23:05:00 +02:00
David Pedersen
3e722379ac
Add changelog link
2022-05-15 20:07:29 +02:00
David Pedersen
61c4e19598
axum-extra: 0.3.2 ( #1034 )
2022-05-15 20:01:00 +02:00
David Pedersen
a8e2390724
Add axum-tungstenite to ecosystem
2022-05-15 17:26:52 +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
0b856b938f
Document "debugging handler type errors" on Handler ( #1024 )
2022-05-11 20:56:57 +02: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
David Pedersen
cfdac03c8d
axum-extra: Version 0.3.1 ( #1016 )
2022-05-10 12:05:36 +00:00
David Pedersen
46e6d3493b
axum-macros: Version 0.2.1 ( #1015 )
2022-05-10 11:46:17 +00:00
David Pedersen
96aaac4865
axum: Version 0.5.5 ( #1014 )
2022-05-10 11:43:08 +00:00
David Pedersen
2353ee788c
Make docs around extracting Request more explicit ( #1013 )
2022-05-10 11:00:57 +00:00
David Pedersen
7774cfd1f7
Update static file server example ( #1011 )
2022-05-08 19:52:34 +00:00
David Pedersen
852e548e19
Support #[derive(FromRequest)] on enums ( #1009 )
...
* Support `#[from_request(via(...))]` on enums
* Check `#[from_request]` on variants
* check for non enum/struct and clean up
* changelog
* changelog
* remove needless feature
* changelog ref
2022-05-08 20:04:56 +02:00
David Pedersen
a3a32f493e
Add MethodRouter::{into_make_service, into_make_service_with_connect_info} ( #1010 )
2022-05-08 19:48:48 +02:00
David Pedersen
6bd726f4a9
Refactor #[derive(FromRequest)] to make illegal state unrepresentable ( #1004 )
2022-05-06 16:53:12 +02:00
David Pedersen
b5183afbec
Support wildcards in typed paths ( #1003 )
...
* Support wildcards in typed paths
* changelog
2022-05-06 13:05:30 +02:00
David Pedersen and Jonas Platte
4ff78e552d
Support Option and Result in typed paths ( #1001 )
...
* Support `Option` and `Result` in typed paths
* changelog
* Update axum-extra/CHANGELOG.md
Co-authored-by: Jonas Platte <[email protected] >
* fix one more
Co-authored-by: Jonas Platte <[email protected] >
2022-05-06 09:42:10 +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
d1043db254
Fix driving readiness for example-rest-grpc-multiplex ( #988 )
2022-05-03 09:21:49 +00:00
David Pedersen
5be73c1064
axum-core: Version 0.2.4 ( #984 )
2022-05-02 11:52:24 +02:00
David Pedersen
8dd6070574
Implement IntoResponse for (Parts | Request<()>, $(impl IntoResponseParts)+, impl IntoResponse) ( #980 )
...
* Implement `IntoResponse for (Parts | Request<()>, $(impl IntoResponseParts)+, impl IntoResponse)`
Fixes #979
* changelog
* docs
* changelog ref
2022-04-29 22:08:47 +02:00
David Pedersen
1fe4558362
Move examples to separate workspace ( #978 )
...
* Move examples to separate workspace
* update commands to run examples
* remove debug
2022-04-29 18:53:41 +02:00
David Pedersen
5bb924b3a2
Implement IntoResponse and IntoResponseParts for http::Extensions ( #975 )
...
* Implement `IntoResponse` and `IntoResponseParts` for `http::Extensions`
Requires a new release of `http`.
* remove http patch
* changelog ref
2022-04-29 17:28:24 +02:00
David Pedersen
a3b6cbc99c
axum-extra: Version 0.3.0 ( #974 )
...
* axum-extra: Version 0.3.0
* add tower-http update to changelog
2022-04-27 10:27:41 +02:00
David Pedersen
700617963f
Move private and signed cookies behind feature flags ( #949 )
...
* move signed cookies into their own module
* Require features for private/signed cookies
* enable "cookie" feature when enabling private/signed cookies
* add `#[cfg]`s in a few more places
2022-04-27 10:11:16 +02:00
David Pedersen
a723ed1453
axum: Version 0.5.4 ( #973 )
2022-04-26 16:50:44 +02:00
David Pedersen
0702c59c7d
axum-core: Version 0.2.3 ( #966 )
2022-04-26 14:19:47 +00:00
David Pedersen
23f20ea1f3
Replace ByteStr with Arc<str> ( #971 )
2022-04-26 10:16:38 +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
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
598e6935df
axum-core: Version 0.2.2
2022-04-19 16:17:52 +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 Pedersen
3e716f303f
axum: Version 0.5.1
2022-04-03 20:23:18 +02:00
David Pedersen
bcda1a97db
axum-core: Version 0.2.1
2022-04-03 20:21:16 +02:00
David Pedersen
530b0906f7
Fix changelog date
2022-04-03 20:20:50 +02:00
David Pedersen
950dde2664
axum-extra: Version 0.2.1
2022-04-03 20:18:01 +02:00
David Pedersen
405e3f8c44
Add SpaRouter ( #904 )
2022-04-03 18:29:37 +02:00
David Pedersen
2270cf7b3e
Add "stream to file" example ( #903 )
...
* Add "stream to file" example
* add title tag
2022-04-03 12:28:29 +02:00
David Pedersen
01a4c88d7a
Add PrivateCookieJar ( #900 )
2022-04-01 16:37:55 +02:00
David Pedersen
da3ca22301
Fix SignedCookieJar with custom key type ( #899 )
2022-04-01 11:40:42 +02:00
David Pedersen
5d0a7b440c
axum-extra: Version 0.2.0
2022-03-31 20:48:17 +02:00
David Pedersen
f69d2dbf40
axum-macros: Version 0.2.0
2022-03-31 20:45:01 +02:00
David Pedersen
cf12b3aa0f
Fix version of axum used locally
2022-03-31 20:45:01 +02:00
David Pedersen
fec64bc1b6
axum: Version 0.5.0
2022-03-31 20:37:45 +02:00
David Pedersen
fba2faa38f
axum-core: Version 0.2.0 ( #894 )
2022-03-31 20:36:12 +02:00
David Pedersen
d7860ea9e2
Copy over changelogs from v0.4.x branch ( #893 )
...
* Copy over changelogs from v0.4.x branch
Preparing to release 0.5
* bump crate versions
2022-03-31 20:21:55 +02:00
David Pedersen
21552fe434
Remove bound from into_make_service_with_connect_info ( #892 )
...
Fixes #859
2022-03-31 16:49:49 +00:00
David Pedersen
56e2d57320
Change Handler to have an associated Future type ( #879 )
...
* Change `Handler` to have an associated `Future` type
This removes `#[async_trait]` from `Handler` and replaces that with an
associated `Future` type.
As hinted at in #878 I'm working on something with types that need to
implement `Handler`. I'm doing that by wrapping other `Handler` types so
I can implement `Handler` by simply delegating and thus don't need to
allocate another box for `#[async_trait]`. This change makes that
possible.
It does make `Handler` less ergonomic to implement but thats a very
niche feature so I'm fine with that. It wouldn't be appropriate for
`FromRequest` IMO.
* changelog
2022-03-21 13:32:06 +00:00
David Pedersen
6175f95f41
Unseal handler trait ( #878 )
2022-03-21 11:55:31 +01:00
David Pedersen
2c985246ba
Fix out of date docs for Json ( #871 )
...
Fixes https://github.com/tokio-rs/axum/issues/865
2022-03-19 01:24:28 +01:00
David Pedersen and Jonas Platte
437fe5b931
Make status codes for JsonRejection more precise ( #868 )
...
* Fix status codes for `JsonRejection` rejections
Fixes #865
* Apply suggestions from code review
Co-authored-by: Jonas Platte <[email protected] >
Co-authored-by: Jonas Platte <[email protected] >
2022-03-18 16:53:39 +01:00
David Pedersen
33ee55e52c
Add example for consuming request body in middleware and extractor ( #861 )
2022-03-18 15:41:38 +00:00
David Pedersen
a0ae0c48aa
Make RequestParts::body_mut return &mut Option<B> ( #869 )
2022-03-18 15:39:13 +00:00
David Pedersen
debc3f5be9
Don't run nightly on CI ( #870 )
...
* Exclude sqlx example
Getting an ICE
https://github.com/tokio-rs/axum/runs/5602144413?check_suite_focus=true .
Will look into that later.
* actually it was nightly's fault
* and don't test things on nightly
2022-03-18 16:28:23 +01:00
David Pedersen and Jonas Platte
88974f4299
Add missing changelog items ( #845 )
...
* Add missing changelog items
* Update axum/CHANGELOG.md
Co-authored-by: Jonas Platte <[email protected] >
Co-authored-by: Jonas Platte <[email protected] >
2022-03-09 15:07:41 +00:00
David Pedersen
14960e9a11
fix changelog links
2022-03-09 15:43:54 +01:00
David Pedersen
401c7a324a
Fix routing for opaque nested services ( #842 )
...
* Fix routing for opaque nested services
* Also test `MatchedPath`
* clean up and more comments
2022-03-09 11:25:06 +01:00
David Pedersen
70e3024068
Don't set extension we never use ( #844 )
...
* Remove unused internal helper
* Don't set extension we never use
2022-03-09 11:05:24 +01:00
David Pedersen
f9a94ca7eb
Add security note about extract::Host ( #839 )
2022-03-09 10:18:12 +01:00
David Pedersen
19eda2f566
fix ups: include all crates in workspace
2022-03-08 21:32:54 +01:00
David Pedersen
dfa2e3b09f
Fix nesting of opaque services that paths that contain params ( #841 )
...
* checkpoint
* fix it
* more consistent macros
* fix msrv
2022-03-08 21:27:44 +01:00
David Pedersen
0600eff31a
Use IntoResponse rather than Response::builder internally ( #837 )
2022-03-07 16:49:03 +01:00
David Pedersen
87a2b0dac1
Implement IntoResponseParts for Option<T> ( #838 )
2022-03-07 16:37:34 +01:00
David Pedersen
b05a5c6dfe
Make it more obvious that NEST_TAIL_PARAM is reserved ( #836 )
2022-03-06 16:01:14 +00:00
David Pedersen
a438e6b106
Refactor storing URL params in extensions ( #833 )
2022-03-06 12:41:16 +01:00
David Pedersen and Jonas Platte
f045f2356c
Add cookie management to axum-extra ( #816 )
...
* Cookie management
* fix feature
* Update axum-extra/src/extract/cookie.rs
Co-authored-by: Jonas Platte <[email protected] >
* add tests
* Apply suggestions from code review
Co-authored-by: Jonas Platte <[email protected] >
* less convoluted wording
* changelog
* Make the jars themselves implement `IntoResponseParts`
* dedup tests
* fix docs
Co-authored-by: Jonas Platte <[email protected] >
2022-03-04 10:53:36 +01:00
David Pedersen
ae22154979
Add example for implementing IntoResponseParts ( #825 )
2022-03-04 10:53:17 +01:00
David Pedersen
1614ef7a22
Fix inconsistent double slash when nesting routes ( #824 )
2022-03-04 09:28:44 +01:00
David Pedersen
90e74f12c4
Requires paths start with a / ( #823 )
...
* Requires routes to start with `/`
* Also check routes in `TypedPath`
* changelog
* changelog links
2022-03-03 23:24:27 +00:00
David Pedersen
d943ba6d81
Replace HasRoutes with Into<Router> ( #819 )
...
* Move `HasRoutes` into axum
* fix doc test
* Just use `Into<Router>`
2022-03-03 21:50:31 +00:00
David Pedersen
1c8f09268b
Implement IntoResponseParts for more tuples ( #817 )
2022-03-03 08:07:00 +01:00
David Pedersen
5f54855b05
Remove IntoResponse and IntoResponseParts impls for Version ( #815 )
2022-03-02 13:07:16 +00:00
David Pedersen
84c725a1ae
Make IntoResponseParts more flexible ( #813 )
...
* Make `IntoResponseParts` more flexible
* fix `impl<T> IntoResponseParts for TypedHeader<T>`
* fix
2022-03-02 11:41:14 +00:00
David Pedersen
24359ebd4d
Move TypedHeader into root ( #803 )
2022-03-01 16:00:42 +00:00
David Pedersen
2428d99081
Export AddExtension from middleware ( #811 )
...
* Export `AddExtension` from `middleware`
* Move `AddExtension` into `extension` module
2022-03-01 13:59:33 +00:00
David Pedersen
bad3abb960
Remove out of date docs
...
These accidentally weren't removed in https://github.com/tokio-rs/axum/pull/790
2022-03-01 14:09:30 +01:00
David Pedersen
2de202da40
Remove AddExtensionLayer ( #807 )
...
* Remove `AddExtensionLayer`
Its deprecated on 0.4.x so we can remove it from `main`.
* changelog
2022-03-01 13:59:43 +01:00
David Pedersen
094fd71d1a
Move Extension into root ( #804 )
2022-03-01 09:12:45 +01:00
David Pedersen
a2b568c7c1
Implement tower::Layer for Extension ( #801 )
...
* Implement `tower::Layer` for `Extension`
* changelog
2022-03-01 00:39:22 +01:00