// Cargo.toml:
// axum = "0.7"
// tokio = { version = "1", features = ["full"] }
use axum::{routing::get, Router, Json};
use serde::Serialize;
use std::net::SocketAddr;
#[derive(Serialize)]
struct Greeting { message: String }
async fn root() -> &'static str { "Hello, world!" }
async fn greet() -> Json<Greeting> {
Json(Greeting { message: "Hello from JSON".into() })
}
#[tokio::main]
async fn main() {
let app = Router::new()
.route("/", get(root))
.route("/greet.json", get(greet));
let addr = SocketAddr::from(([127, 0, 0, 1], 3000));
let listener = tokio::net::TcpListener::bind(addr).await.unwrap();
println!("Listening on http://{addr}");
axum::serve(listener, app).await.unwrap();
}
Create a free account and build your private vault. Share publicly whenever you want.