#async-io #wasm

websocket-async-io

AsyncWrite/AsyncRead implementations for websockets

1 stable release

1.0.0 Sep 21, 2021

#217 in WebSocket

MIT/Apache

11KB
184 lines

websocket-async-io

Implementations of AsyncRead and AsyncWrite on top of websockets using web-sys)

Example

async fn run() -> Result<(), std::io::Error> {
    let ws = WebsocketIO::new(([127, 0, 0, 1], 8000).into()).await?;
    let (mut reader, mut writer) = ws.split();

    writer.write_all(&[0, 1, 2, 3, 93]).await?;
    writer.write_all(&[42, 34, 93]).await?;
    writer.write_all(&[0, 0, 1, 2, 93]).await?;

    let mut buf = Vec::new();
    for _ in 0..3 {
        reader.read_until(93, &mut buf).await?;
        console_log!("{:?}", buf);
        buf.clear();
    }

    Ok(())
}

lib.rs:

Implementations of AsyncRead and AsyncWrite on top of websockets using web-sys)

Example

let ws = WebsocketIO::new("localhost:8000").await?;
let (mut reader, mut writer) = ws.split();

writer.write_all(&[0, 1, 2, 3, 93]).await?;
writer.write_all(&[42, 34, 93]).await?;
writer.write_all(&[0, 0, 1, 2, 93]).await?;

let mut buf = Vec::new();
for _ in 0..3 {
    reader.read_until(93, &mut buf).await?;
    console_log!("{:?}", buf);
    buf.clear();
}

Dependencies

~6.5–9MB
~172K SLoC