245 Commits

Author SHA1 Message Date
David Pedersen
b1b0e45683 Remove sessions example
There are better libraries these days for doing sessions with axum. So
think this example was just causing more confusion than helping.
2023-07-01 23:12:20 +02:00
Alex Butler
26daec2b17
Update tokio-tungstenite to 0.19 (#2021)
Co-authored-by: David Pedersen <david.pdrsn@gmail.com>
2023-06-23 00:03:30 +02:00
David Pedersen
b7665b209a
Fix CI (#2054) 2023-06-22 23:20:46 +02:00
Jerry Wang
7208cdf795
Fix the cargo hack check (#2013) 2023-05-18 18:40:19 +00:00
David Pedersen
db300efc33
Remove impl Connected<&AddrStream> for SocketAddr (#1954) 2023-04-21 18:24:47 +02:00
David Pedersen
877e3fe4de Move TypedHeader to axum-extra (#1850)
Co-authored-by: Michael Scofield <mscofield0@tutanota.com>
Co-authored-by: Jonas Platte <jplatte+git@posteo.de>
2023-04-21 17:45:31 +02:00
David Pedersen
c97967252d Add serve function and remove Server re-export (#1868) 2023-04-21 17:45:31 +02:00
David Pedersen
6703f8634c Remove B type param: Follow ups (#1789)
Co-authored-by: Jonas Platte <jplatte+git@posteo.de>
Co-authored-by: Michael Scofield <mscofield0@tutanota.com>
2023-04-21 17:45:31 +02:00
David Pedersen
4e4c29175f Remove B type param (#1751)
Co-authored-by: Jonas Platte <jplatte+git@posteo.de>
Co-authored-by: Michael Scofield <mscofield0@tutanota.com>
2023-04-21 17:45:31 +02:00
David Pedersen
39bb28130d
Enable println warning (#1929) 2023-04-14 22:26:56 +02:00
David Pedersen
6b106f4bab
Log built-in rejections (#1890) 2023-04-11 16:57:49 +02:00
David Pedersen
24f8dc53f4
Update rest-grpc-multiplex example to include reflection (#1902) 2023-04-01 20:49:36 +02:00
Georg Semmler
9da1897688
Add a diesel and diesel-async example (#1853)
Co-authored-by: David Pedersen <david.pdrsn@gmail.com>
2023-03-28 17:32:00 +02:00
Jonas Platte
2600c22703
Make tracing-aka-logging example more realistic (#1869) 2023-03-21 11:17:31 +01:00
David Pedersen
8e1eb8979f
Update to syn 2 (#1862) 2023-03-18 19:23:27 +00:00
Jonas Platte
dc480f7b0e
Re-integrate examples into the root workspace (#1466)
Co-authored-by: David Pedersen <david.pdrsn@gmail.com>
2023-03-10 12:02:11 +01:00
Firstyear
e7eda0e416
Add low level OpenSSL example (#1828)
Co-authored-by: David Pedersen <david.pdrsn@gmail.com>
2023-03-10 08:51:45 +00:00
Moises-Herradon-Cueto
2c1dde7c07
Fix static-file-server example instructions (#1832)
Co-authored-by: MoisesPotato <28111500+MoisesPotato@users.noreply.github.com>
2023-03-10 09:51:22 +01:00
John Downey
db22b7309d
Remove remnants of spa feature (#1802)
Co-authored-by: David Pedersen <david.pdrsn@gmail.com>
2023-03-03 14:43:19 +00:00
David Pedersen
279a8e2bf0
Add example showing how to run axum on hyper 1.0 (#1791) 2023-02-26 19:05:12 +01:00
David Pedersen
1dc4b44472
Use JsonRejection::{status, body_text} in customize extractor error example (#1790) 2023-02-25 15:02:02 +01:00
David Pedersen
27f05ad32e
Remove SpaRouter (#1784) 2023-02-25 11:05:23 +01:00
David Pedersen
f726f16b6d
Update to tower-http 0.4 (#1783) 2023-02-24 20:51:30 +00:00
David Pedersen
143c415955
Add MockConnectInfo (#1767) 2023-02-17 13:09:29 +01:00
FrankReh
6d815e2b0a
Fix some comments in websockets example (#1702) 2023-01-20 14:43:47 +01:00
tottoto
b07918b213
Update to tonic 0.8 (#1700) 2023-01-20 10:34:44 +01:00
David Pedersen
00d20eb007
Simpify parse-body-based-on-content-type example (#1697) 2023-01-14 18:39:09 +01:00
Alex Pyattaev
8d92902c8e
Updated websocket example to improve clarity and to be more distinct from chat example (#1637)
Co-authored-by: David Pedersen <david.pdrsn@gmail.com>
2023-01-08 15:51:59 +00:00
David Pedersen
3d31bcb6fb Remove lingering async-graphql example file
It should have been deleted previously
2023-01-08 16:28:45 +01:00
Hans Meine
7192c590c9
add more comments to chat example (#1665) 2023-01-08 15:24:19 +00:00
Lukas Kalkhoran
71e83291e1
Fix typo (#1646) 2022-12-16 10:16:09 +00:00
tottoto
6c133be5b7
Refactor initializing tracing-subscriber in examples (#1596)
* Refactor initializing tracing-subscriber

* Revert "Refactor initializing tracing-subscriber"

This reverts commit 0876260bf9dbd6180c04622da9e08602f45f492d in favor of tracing_subscriber::registry.

* Use EnvFilter::try_from_default_env in chat example

* Use EnvFilter::try_from_default_env in examples
2022-11-30 10:46:19 +01:00
tottoto
2c74c538dd
Fix clippy warning in example (#1597) 2022-11-29 23:39:11 +00:00
David Pedersen
0b26411f39
Change Router::with_state and impl Service for Router<()> (#1552)
* Implement `Service` for `Router<(), B>`

* wip

* wip

* fix some tests

* fix examples

* fix doc tests

* clean up docs

* changelog

* fix

* also call `with_state` when converting `MethodRouter` into a `MakeService`

* suggestions from review
2022-11-24 14:43:10 +00:00
David Pedersen
468985373a
Add example of how to test WebSockets (#1535) 2022-11-18 15:40:21 +01:00
David Pedersen
64960bb19c
Type safe state inheritance (#1532)
* Make state type safe

* fix examples

* remove unnecessary `#[track_caller]`s

* Router::into_service -> Router::with_state

* fixup docs

* macro docs

* add missing docs

* fix examples

* format

* changelog

* Update trybuild tests

* Make sure fallbacks are still inherited for opaque services (#1540)

* Document nesting routers with different state

* fix leftover conflicts
2022-11-18 11:02:58 +00:00
David Pedersen
2e8a7e51a1
Fix Handler::with_state not working if request body was changed via layer (#1536)
Previously

```rust
handler.layer(RequestBodyLimitLayer::new(...)).with_state(...)
```

didn't work because we required the same request body all the way
through.
2022-11-18 11:00:52 +01:00
Konstantin Kostiuk
8d6313afa0
Add example of static-file-server using serve dir with handler as service (#1501)
* add example of static-file-seriver using serve dit with handler as service

* update handle return type in example

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

* cargo fmt fix

* change error mapping

Co-authored-by: David Pedersen <david.pdrsn@gmail.com>
2022-11-08 20:40:20 +01:00
David Pedersen
199a7a66b8
Expand static file serving example (#1471) 2022-10-11 07:42:48 +00:00
Valentin Brandl
ee0b71a4ac
Start second server on different port for metrics endpoint (#1444)
* Start second server on different port for metrics endpoint

* Don't track metrics on metrics server
2022-10-08 01:28:32 +02:00
Jonas Platte
a7d8954178
Use RequestPartsExt more in docs / examples (#1445)
* Use RequestPartsExt more in docs / examples

* Remove unused import
2022-10-04 17:26:51 +00:00
Horu
a3c58a18ed
Fix typo in example (#1439) 2022-10-01 13:49:15 +00:00
Logan Keenan
31638a2b22
Add tokio feature & make tokio optional for WASM support (#1382)
* add server feature and make tokio and hyper/server and tcp optional

* address review comments

* don't mention any specific runtimes in the example

* sort deps

* add `tokio` feature when adding `ws`

* don't always pull in tower feature that pulls in tokio io stuff

* remove usage of `tokio_cr`

* changelog

* depend on tokio version that supports wasm

* don't make it sound like tokio doesn't support wasm

* call out new default feature

Co-authored-by: Fisher Darling <fdarlingco@gmail.com>
Co-authored-by: David Pedersen <david.pdrsn@gmail.com>
2022-09-25 15:10:33 +00:00
Jonas Platte
4847d681b1
Allow Routers to inherit state (#1368)
* Rename Fallback::Custom to Fallback::Service

* Allow Routers to inherit state

* Rename Router::{nest => nest_service} and add new nest method for Routers

* Fix lints

* Add basic tests for state inheritance

* Changelog
2022-09-25 11:56:23 +00:00
Marek Kuskowski
896ffc5fba
Remove ContentLengthLimit (#1400)
* feat: remove ContentLengthLimit

* feat: remove ContentLengthLimit rejections

* fix: update multipart docs

* fix: typo

* feat: add wip extractor code

* feat: revert "feat: add wip extractor code"

* fix: update Multipart docs

* fix: update examples

* fix: missing import in an example

* fix: broken import yet again

* fix: disable default body limit for example

* fix: key value store example

* fix: update expected debug_handler output

* chore: update CHANGELOG

* Update axum/CHANGELOG.md

Co-authored-by: David Pedersen <david.pdrsn@gmail.com>
2022-09-24 11:29:53 +00:00
Jonas Platte
69d64cecc3
Split RouterService off of Router (#1381) 2022-09-22 12:10:55 +02:00
David Pedersen
112f5354ab
Add example showing how to return anyhow::Errors (#1398) 2022-09-19 20:42:08 +00:00
David Pedersen
6d7c277700
Add example for parsing body based on Content-Type (#1320)
* Add example for parsing body based on `Content-Type`

* format

* Update examples/parse-body-based-on-content-type/src/main.rs

Co-authored-by: Jonas Platte <jplatte+git@posteo.de>

* fix copy/paste errors

* rename type params

Co-authored-by: Jonas Platte <jplatte+git@posteo.de>
2022-08-25 16:04:54 +02:00
David Pedersen
be624306f4
Only allow last extractor to mutate the request (#1272)
* Only allow last extractor to mutate the request

* Change `FromRequest` and add `FromRequestParts` trait (#1275)

* Add `Once`/`Mut` type parameter for `FromRequest` and `RequestParts`

* 🪄

* split traits

* `FromRequest` for tuples

* Remove `BodyAlreadyExtracted`

* don't need fully qualified path

* don't export `Once` and `Mut`

* remove temp tests

* depend on axum again

Co-authored-by: Jonas Platte <jplatte+git@posteo.de>

* Port `Handler` and most extractors (#1277)

* Port `Handler` and most extractors

* Put `M` inside `Handler` impls, not trait itself

* comment out tuples for now

* fix lints

* Reorder arguments to `Handler` (#1281)

I think `Request<B>, Arc<S>` is better since its consistent with
`FromRequest` and `FromRequestParts`.

* Port most things in axum-extra (#1282)

* Port `#[derive(TypedPath)]` and `#[debug_handler]` (#1283)

* port #[derive(TypedPath)]

* wip: #[debug_handler]

* fix #[debug_handler]

* don't need itertools

* also require `Send`

* update expected error

* support fully qualified `self`

* Implement FromRequest[Parts] for tuples (#1286)

* Port docs for axum and axum-core (#1285)

* Port axum-extra (#1287)

* Port axum-extra

* Update axum-core/Cargo.toml

Co-authored-by: Jonas Platte <jplatte+git@posteo.de>

* remove `impl FromRequest for Either*`

Co-authored-by: Jonas Platte <jplatte+git@posteo.de>

* New FromRequest[Parts] trait cleanup (#1288)

* Make private module truly private again

* Simplify tuple FromRequest implementation

* Port `#[derive(FromRequest)]` (#1289)

* fix tests

* fix docs

* revert examples

* fix docs link

* fix intra docs links

* Port examples (#1291)

* Document wrapping other extractors (#1292)

* axum-extra doesn't need to depend on axum-core (#1294)

Missed this in https://github.com/tokio-rs/axum/pull/1287

* Add `FromRequest` changes to changelogs (#1293)

* Update changelog

* Remove default type for `S` in `Handler`

* Clarify which types have default types for `S`

* Apply suggestions from code review

Co-authored-by: Jonas Platte <jplatte+git@posteo.de>

Co-authored-by: Jonas Platte <jplatte+git@posteo.de>

* remove unused import

* Rename `Mut` and `Once` (#1296)

* fix trybuild expected output

Co-authored-by: Jonas Platte <jplatte+git@posteo.de>
2022-08-22 12:23:20 +02:00
David Pedersen
79f6aabd02 Make extractor field public in example 2022-08-19 22:38:46 +02:00