harlequinn 0.1.1

A real-time networking library primarily aimed at games.
Documentation
use std::fs;

use bytes::Bytes;

use harlequinn::{Certificate, EndpointEvent, HqEndpoint, MessageOrder};

fn main() {
    let mut endpoint = HqEndpoint::new_client("example-protocol");

    let certificate_der = fs::read("./cert.der").unwrap();
    let certificate = Certificate::from_der(&certificate_der).unwrap();
    let socket_addr = "127.0.0.1:9001".parse().unwrap();
    endpoint.connect(socket_addr, "localhost", certificate);

    let mut events = Vec::new();

    loop {
        endpoint.poll_events(&mut events);

        for event in events.drain(..) {
            match event {
                EndpointEvent::ConnectionRequested {
                    peer_id,
                    socket_addr,
                    ..
                } => {
                    endpoint.accept(peer_id);
                    println!("Server connected: {}", socket_addr);

                    endpoint.send_message(
                        peer_id,
                        Bytes::from(&[1, 2, 3, 4][..]),
                        MessageOrder::Unordered,
                    );
                }
                EndpointEvent::Disconnected { .. } => {
                    println!("Server disconnected");
                }
                _ => {}
            }
        }

        std::thread::sleep(std::time::Duration::from_millis(100));
    }
}