1
Fork 0

inbox: Create crate

This commit is contained in:
Steffo 2024-11-12 19:51:34 +01:00
parent f99c8bdf2a
commit cef5e8c19b
Signed by: steffo
GPG key ID: 5ADA3868646C3FC0
4 changed files with 45 additions and 1 deletions

View file

@ -1,3 +1,3 @@
[workspace]
resolver = "2"
members = ["acrate-core", "acrate-hostmeta", "acrate-nodeinfo"]
members = ["acrate-core", "acrate-hostmeta", "acrate-inbox", "acrate-nodeinfo"]

12
acrate-inbox/Cargo.toml Normal file
View file

@ -0,0 +1,12 @@
[package]
name = "acrate-inbox"
version = "0.1.0"
edition = "2021"
[dependencies]
anyhow = "1.0.93"
axum = "0.7.7"
log = "0.4.22"
micronfig = "0.3.0"
pretty_env_logger = "0.5.0"
tokio = { version = "1.41.1", features = ["macros", "net", "rt-multi-thread"] }

View file

@ -0,0 +1,3 @@
micronfig::config!(
ACRATE_INBOX_BIND_ADDRESS: String,
);

29
acrate-inbox/src/main.rs Normal file
View file

@ -0,0 +1,29 @@
use anyhow::Context;
mod config;
#[tokio::main]
async fn main() -> anyhow::Result<std::convert::Infallible> {
pretty_env_logger::init();
log::debug!("Logging initialized!");
log::trace!("Creating Axum router...");
let app = axum::Router::new();
log::trace!("Axum router created successfully!");
log::trace!("Creating Tokio listener...");
let bind_address = config::ACRATE_INBOX_BIND_ADDRESS();
let listener = tokio::net::TcpListener::bind(bind_address)
.await
.context("failed to bind listener to address")?;
log::trace!("Tokio listener bound to: {bind_address}");
log::debug!("Starting server...");
axum::serve(listener, app)
.await
.context("server exited with error")?;
log::error!("Server exited with no error, panicking.");
panic!("server exited with no error");
}