//! Multithreaded: MNW-integrated forum software. //! //! # Design //! //! The competitive positioning, moderation policy, and rollback runbook live in //! the maintainer wiki; the risk history is in the gitignored `docs/audit_review.md`. //! pub mod auth; pub mod config; pub mod csrf; pub mod error_page; pub mod internal_auth; pub mod link_preview; pub mod maintenance; pub mod routes; pub mod seed; pub mod storage; pub mod templates; pub mod trusted_proxy; use config::Config; use sqlx::PgPool; use std::sync::Arc; /// Shared application state available to all handlers. #[derive(Clone)] pub struct AppState { pub db: PgPool, pub config: Config, pub http: reqwest::Client, /// Link preview fetcher. `LinkPreviewFetcher::Http` in production with an /// SSRF-safe redirect policy; `LinkPreviewFetcher::Noop` in tests. pub link_preview: link_preview::LinkPreviewFetcher, pub s3: Option>, }