Commit graph

1294 commits

Author SHA1 Message Date
Jonas Platte
a3e19465ac
Move header name validity checks to compile time (#661) 2021-12-27 18:25:47 +01:00
Sabrina Jewson
7df611319e
Fix axum-extra's optional feature documentation (#663) 2021-12-27 18:12:46 +01:00
David Pedersen
9f5f29dfba
axum-extra: Version 0.1.1 (#658)
- Add `middleware::from_fn` for creating middleware from async functions ([#656])

[#656]: https://github.com/tokio-rs/axum/pull/656
2021-12-27 15:23:02 +01:00
Jonas Platte
0a399ed0fa
A few small refactorings (#655)
* Simplify json content-type check

* Import HeaderMap from http instead of from headers

The headers crate is an optional dependency and its HeaderMap re-export
is `#[doc(hidden)]`.

* Use headers re-export in axum in examples
2021-12-27 14:02:38 +01:00
David Pedersen
f4716084a7
Add middleware::from_fn for creating middleware from async fns (#656)
* Add `middleware::from_fn` for creating middleware from async fns

* More trait impls for `Next`

* Make `Next::run` consume `self`

* Use `.router_layer` in example, since middleware returns early

* Actually `Next` probably shouldn't impl `Clone` and `Service`

Has implications for backpressure and stuff

* Simplify `print-request-response` example

* Address review feedback

* add changelog link
2021-12-27 14:01:26 +01:00
ttys3
3841ef44d5
Fix session cookie example (#638)
* refactor: refine session cookie example

* refactor: refine session_cookie extraction

* refactor: avoid to_owned()

* chore: refine debug log

Co-authored-by: 荒野無燈 <ttys3.rust@gmail.com>
2021-12-22 15:27:13 +01:00
David Pedersen
4c48efc861
axum: Version 0.4.3 (#650) 2021-12-21 15:41:03 +01:00
Jonas Platte
ce6ad399ef
Fix a typo (#635) 2021-12-17 13:15:07 +01:00
Jonas Platte
f7049054bf
Re-export the headers crate when the headers feature is active (#630) 2021-12-15 15:14:03 +01:00
lz1998
dea36db400
Use HttpBody type alias internally (#624)
* use 'crate::body::HttpBody' instead of 'http_body::Body'

* use 'crate::body::Bytes' instead of 'bytes::Bytes'

* rustfmt

* fix warning

* Update axum/src/routing/method_routing.rs

Co-authored-by: David Pedersen <david.pdrsn@gmail.com>

* Update axum/src/routing/method_routing.rs

Co-authored-by: David Pedersen <david.pdrsn@gmail.com>

Co-authored-by: David Pedersen <david.pdrsn@gmail.com>
2021-12-14 12:58:45 +01:00
David Pedersen
4625e1953b
Allow duplicate itoa dependency (#626)
Once the community has updated to itoa 1.0 we can remove this.
2021-12-14 11:56:16 +01:00
David Pedersen
ba42783df2
Example for defining routes and handlers close together (#621) 2021-12-12 23:54:18 +01:00
David Pedersen
c50b55384c
Add ExtensionsAlreadyExtracted to PathRejection (#619)
* Add `ExtensionsAlreadyExtracted` to `PathRejection`

* format imports

* changelog
2021-12-12 23:51:18 +01:00
David Pedersen
ecf3359980
Fix misc warnings from CI (#620) 2021-12-12 17:21:29 +01:00
Kai Jewson
d9bf100216
Don't drop leading spaces in SSE responses (#600)
* Don't drop leading spaces in SSE responses

* Mention leading space fix in changelog

Co-authored-by: David Pedersen <david.pdrsn@gmail.com>
2021-12-12 16:11:15 +00:00
Kai Jewson
980a0a466e
Simplify Websocket implementation (#615)
* Remove `WebSocketUpgradeResponse`

* Move protocol selection to `WebSocketUpgrade::protocols`
2021-12-12 17:05:28 +01:00
Kai Jewson
6feea82d61
Enforce stronger validation of SSE values (#599)
* Enforce stronger validation of SSE values

* Mention `sse::Event` strictness in changelog

Co-authored-by: David Pedersen <david.pdrsn@gmail.com>
2021-12-12 16:03:20 +00:00
Kai Jewson
9344d27cfa
Improve documentation of sse::Event (#601) 2021-12-12 16:56:07 +01:00
Kai Jewson
9ed18d92cf
Use AtomicU32 in RouteId (#616) 2021-12-12 14:19:30 +00:00
Kai Jewson
b7cc3d4645
Clarify that servers shouldn't implement Websocket ping/pong (#617) 2021-12-12 15:08:00 +01:00
Jonas Platte
b1623ce7f2
Add AddExtension::layer (#607) 2021-12-10 22:56:56 +01:00
Jonas Platte
c8c0bb2ce1
Fix a typo (#605) 2021-12-10 18:34:31 +01:00
David Pedersen
3a259dcec7
axum-debug: Version 0.3.2 (#598)
- Support checking `FromRequest` bounds for extractors whose request body is something else than
  `axum::body::Body`. Use `#[debug_handler(body = YourBodyType)]` to use a different request body
  type ([#595])

[#595]: https://github.com/tokio-rs/axum/pull/595
2021-12-09 10:52:31 +01:00
David Pedersen
8895926f73
Support customizing the request body type in #[debug_handler] (#595) 2021-12-08 19:37:18 +01:00
David Pedersen
4b85b227e1 Update changelog with v0.3.4
This was shipped from the `v0.3.x` branch so wasn't moved to `main`.
2021-12-08 18:38:14 +01:00
David Pedersen
8e439b17f3
Clean up deny.toml (#597) 2021-12-08 18:37:02 +01:00
David Pedersen
9f6be24ecd
axum: Version 0.4.2 (#592)
* axum: Version 0.4.2

This time depending on the correct version of axum-core.

* add missing changelog links
2021-12-06 12:03:13 +00:00
David Pedersen
8e1341d1f6
Release axum, axum-core, and axum-debug (#591) 2021-12-06 10:30:09 +01:00
Kai Jewson
dfb06e721c
Introduce Response type alias as a shorthand for Response<BoxBody> (#590)
* Introduce `Response` type alias as a shorthand

* Don't re-export `Response` at the crate root
2021-12-05 19:16:46 +01:00
David Pedersen
cbb34869d8
Fix debug_handler for Result<impl IntoResponse, Error> and friends (#588)
Fixes #587
2021-12-04 18:24:58 +01:00
David Pedersen
628921bcad
axum-debug 0.3 (#586)
Forgot to ship this one so the latest version would generate wrong code.
2021-12-03 22:42:10 +01:00
David Pedersen
6dcb406ab8 Remove axum-handle-error-extract from ECOSYSTEM.md
Its been integrated into axum 0.4.
2021-12-02 20:47:54 +01:00
David Pedersen
a63843d6c5
Release axum, axum-core, and axum-extra (#582) 2021-12-02 20:02:38 +01:00
David Pedersen
3ec680cce7
Provide more data in Path deserialization error (#574)
* Provide more error in `Path` deserialization error

* Rename

* Add error kind for deserializing sequences

* Rename

* Fix wrong docs

* Rename `MissingRouteParams`

* Rename error to have more consistency

* Rename internal error

* Update changelog

* One last renaming, for now

* Add tests

* Tweak changelog a bit
2021-12-02 08:51:29 +01:00
David Pedersen
66c5142d0c
Update tower-http (#581)
Updates to 0.2 which was just published.
2021-12-01 20:14:25 +00:00
David Pedersen
254d8fde17
Move FromRequest and IntoResponse into new axum-core crate (#564)
* Move `IntoResponse` to axum-core

* Move `FromRequest` to axum-core

* some clean up

* Remove hyper dependency from axum-core

* Fix docs reference

* Use default

* Update changelog

* Remove mention of default type
2021-11-30 13:46:13 +00:00
david-perez
f95c974406
Remove dependency on tower-http's add-extension feature (#580)
It is not currently being used, since `axum/src/add_extension.rs` "is
vendored from `tower-http` to reduce public dependencies".
2021-11-30 14:22:50 +01:00
david-perez
0c3e4a6f3d
Reduce NotFound's visibility (#579)
It is only used in the crate's `routing` module.
2021-11-30 12:37:51 +00:00
david-perez
affab9b4ec
Use Self in RouterFuture's impl block (#578)
For consistency with the other method and the rest of the codebase.
2021-11-30 12:37:05 +00:00
Kai Jewson
2b6dba49cb
Remove the associated Body type on IntoResponse (#571) 2021-11-28 18:52:18 +01:00
Kai Jewson
decdd4c948
Avoid double-boxing bodies where possible (#569)
* Avoid double-boxing bodies where possible

* Extract `try_downcast` to `util` module
2021-11-27 10:20:31 +01:00
David Pedersen
96b353b556
Add Cached extractor (#565)
* extra: Add `Cached` extractor

`Cached` wraps another extractor and caches its result in request
extensions.

* Use newtype to avoid overriding extensions of the same type

* Rename type param
2021-11-25 10:14:31 +00:00
Pure White
5a5800c1ae
feat: default to charset=utf-8 for text content type (#554)
* feat: default to charset=utf-8 for text content type

* added changelog && fix comment

* fix workflow
2021-11-25 08:31:30 +00:00
EdorianDark
c5a33addb7
Add tower-cookies to ecosystem (#562) 2021-11-24 17:44:34 +01:00
John Teske
b5b0c0e491
Update routing layer documentation (#560) 2021-11-24 06:57:29 +00:00
David Pedersen
6d0abd447c
axum-debug: Version 0.2.2 (#553)
- Fix regression causing errors when `#[debug_handler]` was used on functions with multiple
  extractors ([#552])

[#552]: https://github.com/tokio-rs/axum/pull/552
2021-11-22 09:40:35 +00:00
David Pedersen
27e848fbe8
Fix #[debug_handler] for multiple extractors (#552)
* Fix `#[debug_handler]` for multiple extractors

It generated a function for each extractor to check the type but those
functions didn't have unique names.

Fixed by including all idents in the `arg: Extractor` token tree in the
name of the function generated. Not sure there is a simpler way to fix
it.

* just use a counter

* don't need visit feature anymore
2021-11-22 10:28:43 +01:00
Jonas Platte
69fee5864d
Use .to_owned() instead of .to_string() to turn &str into String (#548) 2021-11-19 22:15:47 +00:00
David Pedersen
ab9f1ef993
Change how Resources are added to Routers (#544) 2021-11-19 21:59:07 +01:00
David Pedersen
44a49cb199
axum-debug: Version 0.2.1 (#545)
- Make macro handle more cases such as mutable extractors and handlers taking
  `self` ([#518])

[#518]: https://github.com/tokio-rs/axum/pull/518
2021-11-19 20:38:30 +00:00