46 lines
1.1 KiB
Rust
Raw Normal View History

use std::net::SocketAddr;
2024-06-07 16:27:52 +02:00
use tokio::net::TcpListener;
use tower_http::cors::{Any, CorsLayer};
use tower_http::trace;
use tower_http::trace::TraceLayer;
use tracing::Level;
use crate::routing::{index, simplify, table};
2024-06-05 22:09:12 +02:00
2024-06-05 20:41:00 +02:00
mod expressions;
mod parsing;
2024-06-05 22:09:12 +02:00
mod routing;
mod config;
mod utils;
2024-06-05 22:09:12 +02:00
#[tokio::main]
async fn main() {
let addr = SocketAddr::from(([0, 0, 0, 0], config::PORT));
let listener = TcpListener::bind(&addr)
2024-06-05 22:09:12 +02:00
.await
.unwrap();
tracing_subscriber::fmt()
.with_target(false)
.compact()
.init();
2024-06-05 22:09:12 +02:00
let routes = simplify::router()
.merge(table::router())
.merge(index::router());
2024-06-05 20:41:00 +02:00
let app = routes
.layer(CorsLayer::new().allow_origin(Any))
.layer(TraceLayer::new_for_http()
.make_span_with(trace::DefaultMakeSpan::new()
.level(Level::INFO))
.on_response(trace::DefaultOnResponse::new()
.level(Level::INFO))
);
tracing::info!("Starting server on: {addr}");
axum::serve(listener, app.into_make_service()).await.unwrap();
2024-06-05 20:41:00 +02:00
}