dns-resolver-rs 0.1.1

A simple DNS resolver server built with Axum and Tokio
Documentation
use axum::http::Method;
use axum::routing::get;
use axum::{Router, serve};
use dns_resolver_rs::server::{resolve_dns, resolve_ip};
use tokio::net::TcpListener;
use tower::ServiceBuilder;
use tower_http::cors::{Any, CorsLayer};
use tower_http::services::ServeDir;
use tracing::Level;
use tracing_subscriber::FmtSubscriber;

#[tokio::main]
async fn main() {
    let subscriber = FmtSubscriber::builder()
        .with_max_level(Level::TRACE)
        .finish();
    tracing::subscriber::set_global_default(subscriber).expect("setting default subscriber failed");

    let cors = CorsLayer::new()
        .allow_methods([Method::GET])
        .allow_origin(Any);

    let app = Router::new()
        .route("/resolve", get(resolve_dns))
        .route("/reverse_resolve", get(resolve_ip))
        .fallback_service(ServeDir::new("static"))
        .layer(ServiceBuilder::new().layer(cors));

    let listener = TcpListener::bind("0.0.0.0:3000").await.unwrap();
    println!("DNS Resolver server running on http://localhost:3000");
    serve(listener, app).await.unwrap();
}