flnet_wasm/
lib.rs

1use flmodules::broker::Broker;
2use flnet::{config::NodeConfig, network::{NetworkMessage, Network}, web_rtc::WebRTCConn};
3use thiserror::Error;
4use web_rtc::web_rtc_spawner;
5use web_socket_client::WebSocketClient;
6
7pub mod web_rtc;
8pub mod web_rtc_setup;
9pub mod web_socket_client;
10
11
12#[derive(Error, Debug)]
13pub enum NetworkSetupError {
14    #[error(transparent)]
15    Broker(#[from] flmodules::broker::BrokerError),
16    #[error(transparent)]
17    WebSocket(#[from] web_socket_client::WSClientError),
18    #[error(transparent)]
19    Network(#[from] flnet::network::NetworkError)
20}
21
22pub async fn network_start(
23    node_config: NodeConfig,
24    signal_url: &str,
25) -> Result<Broker<NetworkMessage>, NetworkSetupError> {
26    let webrtc = WebRTCConn::new(web_rtc_spawner()).await?;
27    let ws = WebSocketClient::connect(signal_url).await?;
28    Ok(Network::start(node_config.clone(), ws, webrtc).await?)
29}