pipey 0.2.1

A lightweight HTTP-to-WebSocket event delivery service.
Documentation
use pipey::Pipey;
use tokio::signal;
use tracing::{error, info};

#[actix_web::main]
async fn main() -> std::io::Result<()> {
    let (server, app_state) = Pipey::run_server().await?;

    let handle = server.handle();

    tokio::spawn(server);

    match signal::ctrl_c().await {
        Ok(()) => {
            info!("received shutdown signal");

            app_state.shutdown().await;
            info!("Arifa shutdown complete");

            handle.stop(true).await;
            info!("HTTP server stopped");
        }
        Err(err) => {
            error!(error = %err, "failed to listen for shutdown signal");
        }
    }

    Ok(())
}