1extern crate starstraw;
2
3use axum::Router;
4use starstraw::*;
5use std::env::var;
6
7#[tokio::main]
8async fn main() {
9 dotenv::dotenv().ok(); let port: u16 = match var("PORT") {
12 Ok(v) => v.parse::<u16>().unwrap(),
13 Err(_) => 8080,
14 };
15
16 let database = Database::new(Database::env_options(), ServerOptions::truthy()).await;
18 database.init().await;
19
20 let app = Router::new()
22 .nest("/", starstraw::api::routes(database.clone()))
23 .fallback(starstraw::api::not_found);
24
25 let listener = tokio::net::TcpListener::bind(format!("127.0.0.1:{port}"))
26 .await
27 .unwrap();
28
29 println!("Starting server at http://localhost:{port}!");
30 axum::serve(listener, app).await.unwrap();
31}