Skip to main content

dkdc_db_server/
lib.rs

1pub mod api;
2
3use std::sync::Arc;
4
5use dkdc_db_core::DkdcDb;
6
7/// Start the server on the given address.
8pub async fn serve(db: DkdcDb, host: &str, port: u16) -> std::io::Result<()> {
9    let state = Arc::new(db);
10    let app = api::router(state);
11
12    let addr = format!("{host}:{port}");
13    let listener = tokio::net::TcpListener::bind(&addr).await?;
14    tracing::info!("dkdc-db server listening on {addr}");
15    axum::serve(listener, app).await?;
16
17    Ok(())
18}