Commit Graph
243 Commits
Author SHA1 Message Date
David PedersenandGitHub b7665b209a Fix CI (#2054) 2023-06-22 23:20:46 +02:00
Jerry WangandGitHub 7208cdf795 Fix the cargo hack check (#2013) 2023-05-18 18:40:19 +00:00
David PedersenandGitHub db300efc33 Remove impl Connected<&AddrStream> for SocketAddr (#1954) 2023-04-21 18:24:47 +02:00
877e3fe4de Move TypedHeader to axum-extra (#1850)
Co-authored-by: Michael Scofield <[email protected]>
Co-authored-by: Jonas Platte <[email protected]>
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
6703f8634c Remove B type param: Follow ups (#1789)
Co-authored-by: Jonas Platte <[email protected]>
Co-authored-by: Michael Scofield <[email protected]>
2023-04-21 17:45:31 +02:00
4e4c29175f Remove B type param (#1751)
Co-authored-by: Jonas Platte <[email protected]>
Co-authored-by: Michael Scofield <[email protected]>
2023-04-21 17:45:31 +02:00
David PedersenandGitHub 39bb28130d Enable println warning (#1929) 2023-04-14 22:26:56 +02:00
David PedersenandGitHub 6b106f4bab Log built-in rejections (#1890) 2023-04-11 16:57:49 +02:00
David PedersenandGitHub 24f8dc53f4 Update rest-grpc-multiplex example to include reflection (#1902) 2023-04-01 20:49:36 +02:00
9da1897688 Add a diesel and diesel-async example (#1853)
Co-authored-by: David Pedersen <[email protected]>
2023-03-28 17:32:00 +02:00
Jonas PlatteandGitHub 2600c22703 Make tracing-aka-logging example more realistic (#1869) 2023-03-21 11:17:31 +01:00
David PedersenandGitHub 8e1eb8979f Update to syn 2 (#1862) 2023-03-18 19:23:27 +00:00
dc480f7b0e Re-integrate examples into the root workspace (#1466)
Co-authored-by: David Pedersen <[email protected]>
2023-03-10 12:02:11 +01:00
e7eda0e416 Add low level OpenSSL example (#1828)
Co-authored-by: David Pedersen <[email protected]>
2023-03-10 08:51:45 +00:00
2c1dde7c07 Fix static-file-server example instructions (#1832)
Co-authored-by: MoisesPotato <[email protected]>
2023-03-10 09:51:22 +01:00
db22b7309d Remove remnants of spa feature (#1802)
Co-authored-by: David Pedersen <[email protected]>
2023-03-03 14:43:19 +00:00
David PedersenandGitHub 279a8e2bf0 Add example showing how to run axum on hyper 1.0 (#1791) 2023-02-26 19:05:12 +01:00
David PedersenandGitHub 1dc4b44472 Use JsonRejection::{status, body_text} in customize extractor error example (#1790) 2023-02-25 15:02:02 +01:00
David PedersenandGitHub 27f05ad32e Remove SpaRouter (#1784) 2023-02-25 11:05:23 +01:00
David PedersenandGitHub f726f16b6d Update to tower-http 0.4 (#1783) 2023-02-24 20:51:30 +00:00
David PedersenandGitHub 143c415955 Add MockConnectInfo (#1767) 2023-02-17 13:09:29 +01:00
FrankRehandGitHub 6d815e2b0a Fix some comments in websockets example (#1702) 2023-01-20 14:43:47 +01:00
tottotoandGitHub b07918b213 Update to tonic 0.8 (#1700) 2023-01-20 10:34:44 +01:00
David PedersenandGitHub 00d20eb007 Simpify parse-body-based-on-content-type example (#1697) 2023-01-14 18:39:09 +01:00
8d92902c8e Updated websocket example to improve clarity and to be more distinct from chat example (#1637)
Co-authored-by: David Pedersen <[email protected]>
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 MeineandGitHub 7192c590c9 add more comments to chat example (#1665) 2023-01-08 15:24:19 +00:00
Lukas KalkhoranandGitHub 71e83291e1 Fix typo (#1646) 2022-12-16 10:16:09 +00:00
tottotoandGitHub 6c133be5b7 Refactor initializing tracing-subscriber in examples (#1596)
* Refactor initializing tracing-subscriber

* Revert "Refactor initializing tracing-subscriber"

This reverts commit 0876260bf9 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
tottotoandGitHub 2c74c538dd Fix clippy warning in example (#1597) 2022-11-29 23:39:11 +00:00
David PedersenandGitHub 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 PedersenandGitHub 468985373a Add example of how to test WebSockets (#1535) 2022-11-18 15:40:21 +01:00
David PedersenandGitHub 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 PedersenandGitHub 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
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 <[email protected]>

* cargo fmt fix

* change error mapping

Co-authored-by: David Pedersen <[email protected]>
2022-11-08 20:40:20 +01:00
David PedersenandGitHub 199a7a66b8 Expand static file serving example (#1471) 2022-10-11 07:42:48 +00:00
Valentin BrandlandGitHub 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 PlatteandGitHub 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
HoruandGitHub a3c58a18ed Fix typo in example (#1439) 2022-10-01 13:49:15 +00:00
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 <[email protected]>
Co-authored-by: David Pedersen <[email protected]>
2022-09-25 15:10:33 +00:00
Jonas PlatteandGitHub 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
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 <[email protected]>
2022-09-24 11:29:53 +00:00
Jonas PlatteandGitHub 69d64cecc3 Split RouterService off of Router (#1381) 2022-09-22 12:10:55 +02:00
David PedersenandGitHub 112f5354ab Add example showing how to return anyhow::Errors (#1398) 2022-09-19 20:42:08 +00:00
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 <[email protected]>

* fix copy/paste errors

* rename type params

Co-authored-by: Jonas Platte <[email protected]>
2022-08-25 16:04:54 +02:00
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 <[email protected]>

* 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 <[email protected]>

* remove `impl FromRequest for Either*`

Co-authored-by: Jonas Platte <[email protected]>

* 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 <[email protected]>

Co-authored-by: Jonas Platte <[email protected]>

* remove unused import

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

* fix trybuild expected output

Co-authored-by: Jonas Platte <[email protected]>
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
789f51ba1a Extend custom rejection examples (#1276)
* examples: Created new `error-handling` example

* examples(error-handling): Add error codes and responses

* examples(error-handling): `custom_extractor`

* examples(error-handling): `derive_from_request`

* examples(error-handling): Using POST instead of GET

* examples(error-handling): Using `thiserror` for `derive_from_request`

* examples(error-handling): Using `snake-case` for routes

* revert(error-handling): Use `From` impl instead of `thiserror`

refs: 3533d96215

* examples(error-handling): Removed chrono

* examples: merged `error-handling` and `customize-extractor-error`

* examples(customize-extractor-error): Improved error codes

* examples(customize-extractor-error): rustfmt

* examples(customize-extractor-error): Removed `matched-path` feature

Co-authored-by: David Pedersen <[email protected]>

* examples(customize-extractor-error): added `publish=false` to `Cargo.toml`

Co-authored-by: David Pedersen <[email protected]>

* examples(customize-extractor-error): Fix env filter

* examples(customize-extractor-error): Added README

* examples(customize-extractor-error): Added `with_rejection` comments

* examples(customize-extractor-error): Added `custom_extractor` comments

* examples(customize-extractor-error):Typo on `with_rejection`

* examples(customize-extractor-error): Added `boilerplate` con to `custom_extractor`

* examples(customize-extractor-error): Added `derive_from_request` comments

* examples(customize-extractor-error): typo impossible

* examples(customize-extractor-error): typos

* examples(customize-extractor-error): replaced `extensions` with `extract`

* examples(customize-extractor-error): typo `from`

Co-authored-by: David Pedersen <[email protected]>

Co-authored-by: David Pedersen <[email protected]>
2022-08-19 13:11:03 +00:00
David PedersenandGitHub e7f1c88cd4 Always store state in an Arc (#1270)
* Add extension and state benchmarks

* wip

* Arc the state everywhere

* don't require `S: Clone`

* fix example
2022-08-17 20:08:24 +00:00