Spaces:
Running
Running
File size: 871 Bytes
60fa15e 9c8dea2 60fa15e 9c8dea2 60fa15e 9c8dea2 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | use axum::{
body::Body,
http::{Request, Response},
middleware::{self, Next},
routing::get,
Router,
};
use std::time::Instant;
async fn track_time(req: Request<Body>, next: Next) -> Response<Body> {
let start = Instant::now();
let response = next.run(req).await;
let latency = start.elapsed().as_micros(); // Microseconds for precision
let mut response = response;
response.headers_mut().insert(
"x-process-time-us",
latency.to_string().parse().unwrap(),
);
response
}
#[tokio::main]
async fn main() {
let app = Router::new()
.route("/", get(|| async { "Fastest code on HF" }))
.layer(middleware::from_fn(track_time)); // Wrap everything in the timer
let listener = tokio::net::TcpListener::bind("0.0.0.0:7860").await.unwrap();
axum::serve(listener, app).await.unwrap();
} |