13 unstable releases (5 breaking)

new 0.6.0 Jul 21, 2024
0.5.0 Dec 6, 2023
0.4.0 Aug 11, 2023
0.3.1 Jul 24, 2023
0.1.0 Mar 11, 2022

#81 in WebAssembly

Download history 49993/week @ 2024-03-31 45530/week @ 2024-04-07 46785/week @ 2024-04-14 44247/week @ 2024-04-21 38288/week @ 2024-04-28 42578/week @ 2024-05-05 48074/week @ 2024-05-12 43102/week @ 2024-05-19 45347/week @ 2024-05-26 49332/week @ 2024-06-02 48168/week @ 2024-06-09 45825/week @ 2024-06-16 48150/week @ 2024-06-23 44068/week @ 2024-06-30 52171/week @ 2024-07-07 45049/week @ 2024-07-14

192,855 downloads per month
Used in 321 crates (37 directly)

MIT/Apache

84KB
1.5K SLoC

HTTP requests library for WASM Apps. It provides idiomatic Rust bindings for the web_sys fetch, WebSocket and EventSource APIs.

Examples

HTTP

let resp = Request::get("/path")
    .send()
    .await
    .unwrap();
assert_eq!(resp.status(), 200);

WebSocket

use gloo_net::websocket::{Message, futures::WebSocket};
use wasm_bindgen_futures::spawn_local;
use futures::{SinkExt, StreamExt};

let mut ws = WebSocket::open("wss://echo.websocket.org").unwrap();
let (mut write, mut read) = ws.split();

spawn_local(async move {
    write.send(Message::Text(String::from("test"))).await.unwrap();
    write.send(Message::Text(String::from("test 2"))).await.unwrap();
});

spawn_local(async move {
    while let Some(msg) = read.next().await {
        console_log!(format!("1. {:?}", msg))
    }
    console_log!("WebSocket Closed")
})

EventSource

use gloo_net::eventsource::futures::EventSource;
use wasm_bindgen_futures::spawn_local;
use futures::{stream, StreamExt};

let mut es = EventSource::new("http://api.example.com/ssedemo.php").unwrap();
let stream_1 = es.subscribe("some-event-type").unwrap();
let stream_2 = es.subscribe("another-event-type").unwrap();

spawn_local(async move {
    let mut all_streams = stream::select(stream_1, stream_2);
    while let Some(Ok((event_type, msg))) = all_streams.next().await {
        console_log!(format!("1. {}: {:?}", event_type, msg))
    }
    console_log!("EventSource Closed");
})

Dependencies

~7–9.5MB
~184K SLoC