electrum-client-netagnostic 0.21.2

Electrum client library that is network agnostic. Supports plaintext, TLS, WebSocket and Onion servers.
Documentation
//! WebSocket example
//!
//! Run with: cargo run --example websocket --features use-websocket

use electrum_client_netagnostic::{Client, ElectrumApi};

fn main() {
    // Test WSS (secure WebSocket)
    // You can override the server with environment variables:
    //   WSS_SERVER=wss://your-server:port cargo run --example websocket --features use-websocket
    let wss_server =
        std::env::var("WSS_SERVER").unwrap_or_else(|_| "wss://rostrum.riften.net:443".to_string());

    println!("Testing WSS connection to {}...", wss_server);
    match Client::new(&wss_server) {
        Ok(client) => {
            println!("Connected to WSS server!");
            match client.ping() {
                Ok(()) => println!("WSS ping successful!"),
                Err(e) => println!("WSS ping failed: {:?}", e),
            }
        }
        Err(e) => println!("WSS connection failed: {:?}", e),
    }

    // Test WS (plaintext WebSocket)
    let ws_server = std::env::var("WS_SERVER")
        .unwrap_or_else(|_| "ws://rostrum.cauldron.quest:50003".to_string());

    println!("\nTesting WS connection to {}...", ws_server);
    match Client::new(&ws_server) {
        Ok(client) => {
            println!("Connected to WS server!");
            match client.ping() {
                Ok(()) => println!("WS ping successful!"),
                Err(e) => println!("WS ping failed: {:?}", e),
            }
        }
        Err(e) => println!("WS connection failed: {:?}", e),
    }
}