Files
web-template-rs/src/lib.rs
dobiadi 7721000281
All checks were successful
build-and-pudh / docker (push) Successful in 3m33s
Change text
2024-10-24 01:51:22 +02:00

32 lines
816 B
Rust

use std::{io, time::Duration};
use axum::{routing, Router};
use tokio::net::TcpListener;
use tokio_util::sync::CancellationToken;
use tower_http::{timeout::TimeoutLayer, trace::TraceLayer};
pub struct Config {
pub listen_port: u16,
}
pub async fn run(config: Config, token: CancellationToken) -> Result<(), io::Error> {
let app = Router::new()
.route("/", routing::get(|| async { "Hello kube world!" }))
.layer((
TraceLayer::new_for_http(),
TimeoutLayer::new(Duration::from_secs(10)),
));
let listener = TcpListener::bind(("0.0.0.0", config.listen_port))
.await
.unwrap();
let _ = axum::serve(listener, app)
.with_graceful_shutdown(async move {
token.cancelled().await;
})
.await;
Ok(())
}