David Pedersen
2cf28c6794
Improve error message of MissingExtension
rejections ( #72 )
...
Now includes the name of missing type.
2021-08-01 15:50:57 +02:00
David Pedersen
6f30d4aa6a
Improve documentation for router ( #71 )
...
Fixes #67
2021-08-01 15:42:50 +02:00
David Pedersen
f581e3efb2
Clarify required response body type when routing to tower::Service
s ( #69 )
2021-08-01 15:42:12 +02:00
David Pedersen
593f3e115f
Clean up TLS example
2021-08-01 13:48:39 +02:00
David Pedersen
ea82acd175
Add sessions and cookies examples ( #65 )
...
Uses [`async-session`](https://crates.io/crates/async-session ).
2021-08-01 09:15:44 +02:00
David Pedersen
30058dbbed
Use main
for build status in readme
2021-08-01 08:48:31 +02:00
programatik29
3b579c7215
Add TLS example (with rustls) ( #57 )
2021-08-01 08:32:47 +02:00
David Pedersen
f67abd1ee2
Add extractor for remote connection info ( #55 )
...
Fixes https://github.com/tokio-rs/axum/issues/43
With this you can get the remote address like so:
```rust
use axum::{prelude::*, extract::ConnectInfo};
use std::net::SocketAddr;
let app = route("/", get(handler));
async fn handler(ConnectInfo(addr): ConnectInfo<SocketAddr>) -> String {
format!("Hello {}", addr)
}
// Starting the app with `into_make_service_with_connect_info` is required
// for `ConnectInfo` to work.
let make_svc = app.into_make_service_with_connect_info::<SocketAddr, _>();
hyper::Server::bind(&"0.0.0.0:3000".parse().unwrap())
.serve(make_svc)
.await
.expect("server failed");
```
This API is fully generic and supports whatever transport layer you're using with Hyper. I've updated the unix domain socket example to extract `peer_creds` and `peer_addr`.
2021-07-31 21:36:30 +02:00
David Pedersen
407aa533d7
Return 405 Method Not Allowed
for unsupported method for route ( #63 )
...
Fixes https://github.com/tokio-rs/axum/issues/61
2021-07-31 21:05:53 +02:00
songww
49dd1ca49a
Fix docs typo ( #58 )
2021-07-31 17:17:33 +02:00
David Pedersen
5407247e90
Implement Deref
for extractors ( #56 )
...
Fixes https://github.com/tokio-rs/axum/issues/54
2021-07-31 14:54:10 +02:00
David Pedersen
100ecea581
Mention benchmark in readme
2021-07-31 14:53:12 +02:00
David Pedersen
132da26d5b
Add unix domain socket example ( #53 )
...
Not actually related to Axum, can be implemented directly with Hyper, but I figure its nice to have for demonstration and might help catch accidental breaking changes in the future.
2021-07-31 12:22:38 +02:00
David Pedersen
d88212c015
Implement Sink
and Stream
for WebSocket
( #52 )
...
Among other things, this makes [`StreamExt::split`](https://docs.rs/futures/0.3.16/futures/stream/trait.StreamExt.html#method.split ) accessible so one can read and write at the same time.
2021-07-31 10:51:41 +02:00
Eduardo Canellas
4fbc99c6ef
docs: fix typo ( #45 )
2021-07-31 00:06:27 +02:00
David Pedersen
6c1279a415
Version 0.1.1
2021-07-30 17:20:38 +02:00
David Pedersen
446cfca753
Bring back badges
2021-07-30 17:18:54 +02:00
David Pedersen
ca34b4184a
Update changelog for 0.1.0 release
2021-07-30 17:17:25 +02:00
David Pedersen
5d2580a9d8
Misc readme fixes
2021-07-30 17:17:18 +02:00
David Pedersen
272e22a23b
Release prep
2021-07-30 15:56:01 +02:00
David Pedersen
94d2b5f8a6
Misc readme/docs improvements
2021-07-30 15:51:59 +02:00
David Pedersen
d843f4378b
Make websocket handlers support extractors ( #41 )
2021-07-30 15:19:53 +02:00
David Pedersen
d927c819d3
Clarify docs around body extractors
2021-07-23 00:27:08 +02:00
David Pedersen
f25f7f90ff
Implement IntoResponse
for Body
2021-07-22 21:22:46 +02:00
David Pedersen
1fb80a1129
Implement IntoResponse
for HeaderMap
2021-07-22 21:21:53 +02:00
David Pedersen
6d483a623a
Add testing example with real HTTP server
2021-07-22 21:12:40 +02:00
David Pedersen
9a419de290
Misc clean up
2021-07-22 21:12:29 +02:00
David Pedersen
ba9c03d146
Update links
2021-07-22 19:39:08 +02:00
David Pedersen
9db3b92df4
Remove disclaimer from readme
2021-07-22 15:50:46 +02:00
David Pedersen
7c37bb818a
Update goals in readme
2021-07-22 15:44:59 +02:00
David Pedersen
21db427077
Update examples readme
2021-07-22 15:42:04 +02:00
David Pedersen
e4a0199c76
Add missing TOC link
2021-07-22 15:38:55 +02:00
David Pedersen
6705e79ed7
Add todos example ( #38 )
2021-07-22 15:38:32 +02:00
David Pedersen
8faed8120f
Docs improvements ( #37 )
2021-07-22 15:00:33 +02:00
David Pedersen
a658c94f23
Use correct error type if Json
serialization fails
...
Fixes https://github.com/davidpdrsn/axum/issues/35
2021-07-22 13:26:14 +02:00
David Pedersen
f32d325e55
Make extractors easier to write ( #36 )
...
Previously extractors worked directly on `Request<B>` which meant you
had to do weird tricks like `mem::take(req.headers_mut())` to get owned
parts of the request.
This changes that instead to use a new `RequestParts` type that have
methods to "take" each part of the request. Without having to do weird
tricks.
Also removed the need to have `B: Default` for body extractors.
2021-07-22 13:23:50 +02:00
David Pedersen
e544fe1c39
More flexible generic responses
2021-07-22 11:14:55 +02:00
David Pedersen
028c472c84
Add Multipart
extractor for consuming multipart/form-data
requests ( #32 )
...
Multipart implementation on top of `multer`
2021-07-14 16:53:37 +02:00
David Pedersen
e641caefaf
Remove hyper-h1
and hyper-h2
features ( #31 )
2021-07-14 16:29:06 +02:00
David Pedersen
341ad61240
Clarify body extractors
2021-07-10 23:46:14 +02:00
David Pedersen
62da1eac00
Allow extractor_middleware
to extract the body
2021-07-10 23:39:40 +02:00
David Pedersen
2e2f697f80
Minor docs improvements
2021-07-09 23:39:39 +02:00
David Pedersen
1cbd43cfc4
Add extractor_middleware
( #29 )
...
Converts an extractor into a middleware so it can be run for many routes
without having to repeat it in the function signature.
2021-07-09 23:38:59 +02:00
David Pedersen
0c19fa4d52
Minor readme improvements
2021-07-09 21:42:41 +02:00
David Pedersen
f5fa64dae6
Name is no longer pending
2021-07-09 21:37:44 +02:00
David Pedersen
5a5710d290
Rename to axum ( #28 )
2021-07-09 21:36:14 +02:00
David Pedersen
3cd4a1d6a6
Fix for service as bottom handler ( #27 )
...
Would previously fail because of a mismatch in error types.
2021-07-06 09:40:25 +02:00
David Pedersen
c4d266e94d
Allow errors ( #26 )
...
This changes error model to actually allow errors. I think if we're going to use this for things like tonic's route we need a more flexible error handling model. The same `handle_error` adaptors are still there but services aren't required to have `Infallible` as their error type. The error type is simply propagated all the way through.
2021-07-05 16:18:39 +02:00
David Pedersen
3fc7f1880f
Rename tokio-postgres example
2021-06-19 15:40:46 +02:00
David Pedersen
8d8cc3ba3d
Examples readme ( #25 )
...
* Examples readme
* link?
2021-06-19 14:06:49 +02:00