arcature 2026.1.0

Arcature application framework: a high-level Application facade over the certified Arcature subsystems, with the low-level Axum/Tower escape hatch preserved.
Documentation
use crate::App;
use axum::serve::Listener;

impl App<()> {
    /// Serve the application on a caller-provided listener.
    ///
    /// The listener is bound explicitly by the caller and passed in — Arcature
    /// does no hidden port selection or internal binding. Any Axum
    /// [`Listener`] works; on a Tokio runtime this includes `tokio::net::TcpListener`
    /// and `tokio::net::UnixListener`.
    ///
    /// This serves a stateless application (`App<()>`). Provide state with
    /// [`App::with_state`] before serving.
    ///
    /// Returns `Ok(())` when the server stops. To drive shutdown from the
    /// caller, use [`App::serve_with_shutdown`].
    pub async fn serve<L>(self, listener: L) -> std::io::Result<()>
    where
        L: Listener,
        L::Addr: std::fmt::Debug,
    {
        axum::serve(listener, self.router).await
    }
}