1
0
Fork 0
icann-rdap/icann-rdap-srv/src/bin/rdap-srv.rs
Daniel Baumann b06d3acde8
Adding upstream version 0.0.22.
Signed-off-by: Daniel Baumann <daniel@debian.org>
2025-05-08 18:41:54 +02:00

52 lines
1.6 KiB
Rust

use {
envmnt::{get_or, get_parse_or, get_u16},
icann_rdap_srv::{
config::{
data_dir, debug_config_vars, ListenConfig, ServiceConfig, StorageType, AUTO_RELOAD,
BOOTSTRAP, LISTEN_ADDR, LISTEN_PORT, LOG, UPDATE_ON_BOOTSTRAP,
},
error::RdapServerError,
server::Listener,
},
tracing_subscriber::{
fmt, prelude::__tracing_subscriber_SubscriberExt, util::SubscriberInitExt, EnvFilter,
},
};
#[tokio::main(flavor = "multi_thread")]
async fn main() -> Result<(), RdapServerError> {
dotenv::dotenv().ok();
tracing_subscriber::registry()
.with(fmt::layer())
.with(EnvFilter::from_env(LOG))
.init();
debug_config_vars();
let listen_addr = get_or(LISTEN_ADDR, "127.0.0.1");
let listen_port = get_u16(LISTEN_PORT, 3000);
let storage_type = StorageType::new_from_env()?;
let auto_reload: bool = get_parse_or(AUTO_RELOAD, true)?;
let bootstrap: bool = get_parse_or(BOOTSTRAP, false)?;
let update_on_bootstrap: bool = get_parse_or(UPDATE_ON_BOOTSTRAP, false)?;
let listener = Listener::listen(
&ListenConfig::builder()
.ip_addr(listen_addr)
.port(listen_port)
.build(),
)
.await?;
listener
.start_server(
&ServiceConfig::builder()
.storage_type(storage_type)
.data_dir(data_dir())
.auto_reload(auto_reload)
.bootstrap(bootstrap)
.update_on_bootstrap(update_on_bootstrap)
.build(),
)
.await?;
Ok(())
}