Files
enclave-server/src/main.rs
T
2026-08-15 07:14:56 +02:00

47 lines
988 B
Rust

pub mod config;
pub mod protocol;
pub mod server;
pub mod signature;
use std::{
net::{IpAddr, Ipv4Addr, SocketAddr},
sync::Arc,
};
use axum::{
Router,
extract::{State, WebSocketUpgrade},
response::Response,
routing::{any, get},
};
use crate::server::Server;
#[tokio::main]
async fn main() -> anyhow::Result<()> {
let server = Server::new().await?;
let app = Router::new()
.route("/meta", get(meta))
.route("/", any(ws_handler))
.with_state(server.clone());
let listener = tokio::net::TcpListener::bind(SocketAddr::new(
IpAddr::V4(Ipv4Addr::new(0, 0, 0, 0)),
server.config.port,
))
.await?;
axum::serve(listener, app).await?;
Ok(())
}
async fn meta(State(server): State<Arc<Server>>) -> String {
serde_json::to_string(&server.config.meta.clone()).unwrap()
}
async fn ws_handler(State(server): State<Arc<Server>>, ws: WebSocketUpgrade) -> Response {
server.ws_handler(ws).await
}