Compare commits

...

2 commits

Author SHA1 Message Date
cef5e8c19b
inbox: Create crate 2024-11-12 19:51:34 +01:00
f99c8bdf2a
core: Delete nodeinfo table
Apparently nodeinfo shouldn't be cached
2024-11-12 19:23:03 +01:00
6 changed files with 45 additions and 11 deletions

View file

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

View file

@ -1 +0,0 @@
DROP TABLE nodeinfo;

View file

@ -1,9 +0,0 @@
CREATE TABLE nodeinfo (
nodeinfo_schema VARCHAR NOT NULL,
nodeinfo_href VARCHAR NOT NULL,
nodeinfo_data JSON NOT NULL,
last_updated TIMESTAMP NOT NULL,
PRIMARY KEY(nodeinfo_href)
);

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");
}