David Pedersen
4194cf70da
Change WebSocket API to use an extractor ( #121 )
...
Fixes https://github.com/tokio-rs/axum/issues/111
Example usage:
```rust
use axum::{
prelude::*,
extract::ws::{WebSocketUpgrade, WebSocket},
response::IntoResponse,
};
let app = route("/ws", get(handler));
async fn handler(ws: WebSocketUpgrade) -> impl IntoResponse {
ws.on_upgrade(handle_socket)
}
async fn handle_socket(mut socket: WebSocket) {
while let Some(msg) = socket.recv().await {
let msg = if let Ok(msg) = msg {
msg
} else {
// client disconnected
return;
};
if socket.send(msg).await.is_err() {
// client disconnected
return;
}
}
}
```
2021-08-07 17:26:23 +02:00
Laurențiu Nicola
68f826ef3b
Simplify tracing-subscriber initialization ( #128 )
2021-08-05 19:43:03 +02:00
Spencer Gilbert and David Pedersen
3cd0c0fd45
Set RUST_LOG environment var for all examples using tracing ( #123 )
...
* Set RUST_LOG environment var for all examples using tracing
Signed-off-by: Spencer Gilbert <[email protected] >
* Update examples/multipart_form.rs
Co-authored-by: David Pedersen <[email protected] >
2021-08-05 11:25:03 +02:00
David Pedersen
5c12328892
Replace hyper::Server with axum::Server in docs ( #118 )
...
* Replace `hyper::Server` with `axum::Server` in docs
* Change readme as well
2021-08-04 15:38:51 +02:00
Jonas Platte
015f6e0c21
Fix typos found by typos-cli ( #113 )
2021-08-04 12:09:39 +02:00
David Pedersen
9fbababc3a
Make it clear how to run all examples ( #92 )
...
* Handle errors in websocket example
* Make it clear how to run all examples
2021-08-02 23:09:09 +02:00
David Pedersen
d843f4378b
Make websocket handlers support extractors ( #41 )
2021-07-30 15:19:53 +02:00
David Pedersen
8faed8120f
Docs improvements ( #37 )
2021-07-22 15:00:33 +02:00
David Pedersen
5a5710d290
Rename to axum ( #28 )
2021-07-09 21:36:14 +02:00
David Pedersen
356f1c8424
Generic request body ( #22 )
...
Fixes #21
2021-06-19 12:50:33 +02:00
David Pedersen
1002685a20
Rename to awebframework ( #13 )
2021-06-13 11:22:02 +02:00
David Pedersen
7a051eb2d0
Fix static file serving in examples ( #10 )
2021-06-13 00:17:17 +02:00
David Pedersen
b3bc4e024c
Add RoutingDsl::{serve, into_make_service} ( #8 )
2021-06-12 21:44:40 +02:00
David Pedersen
c9c507aece
Add support for websockets ( #3 )
...
Basically a copy/paste of whats in warp.
Example usage:
```rust
use tower_web::{prelude::*, ws::{ws, WebSocket}};
let app = route("/ws", ws(handle_socket));
async fn handle_socket(mut socket: WebSocket) {
while let Some(msg) = socket.recv().await {
let msg = msg.unwrap();
socket.send(msg).await.unwrap();
}
}
```
2021-06-12 20:50:30 +02:00