use circle_ws_lib::{spawn_circle_server, ServerConfig}; use clap::Parser; #[derive(Parser, Debug)] #[clap(author, version, about, long_about = None)] struct Args { #[clap(short, long, value_parser, default_value = "127.0.0.1")] host: String, #[clap(short, long, value_parser, default_value_t = 8080)] port: u16, #[clap(long, value_parser)] circle_name: String, #[clap(long, value_parser)] circle_public_key: String, #[clap(long, value_parser, default_value = "redis://127.0.0.1/")] redis_url: String, #[clap(long)] auth: bool, #[clap(long, value_parser)] cert: Option, #[clap(long, value_parser)] key: Option, } #[actix_web::main] async fn main() -> std::io::Result<()> { let args = Args::parse(); std::env::set_var("RUST_LOG", "info,circle_ws_lib=debug"); env_logger::init(); let config = ServerConfig { circle_name: args.circle_name, circle_public_key: args.circle_public_key, host: args.host, port: args.port, redis_url: args.redis_url, enable_auth: args.auth, cert_path: args.cert, key_path: args.key, }; let (server_task, _server_handle) = spawn_circle_server(config)?; server_task.await? }