6 releases (breaking)

0.6.0 Mar 29, 2024
0.5.0 Oct 4, 2023
0.4.0 Feb 21, 2022
0.3.0 Jan 11, 2022
0.1.0 Jun 28, 2020

#20 in HTTP client

Download history 19805/week @ 2024-12-15 9868/week @ 2024-12-22 12173/week @ 2024-12-29 22070/week @ 2025-01-05 24808/week @ 2025-01-12 24725/week @ 2025-01-19 26258/week @ 2025-01-26 26665/week @ 2025-02-02 26423/week @ 2025-02-09 24461/week @ 2025-02-16 31807/week @ 2025-02-23 30402/week @ 2025-03-02 32978/week @ 2025-03-09 33959/week @ 2025-03-16 37451/week @ 2025-03-23 37523/week @ 2025-03-30

143,854 downloads per month
Used in 298 crates (57 directly)

MIT/Apache

21KB
403 lines

Provides a simple wrapper for reqwest to provide an Event Source implementation. You can learn more about Server Sent Events (SSE) take a look at the MDN docs This crate uses eventsource_stream to wrap the underlying Bytes stream, and retries failed requests.

Example

let mut es = EventSource::get("http://localhost:8000/events");
while let Some(event) = es.next().await {
    match event {
        Ok(Event::Open) => println!("Connection Open!"),
        Ok(Event::Message(message)) => println!("Message: {:#?}", message),
        Err(err) => {
            println!("Error: {}", err);
            es.close();
        }
    }
}

reqwest-eventsource

Provides a simple wrapper for reqwest to provide an Event Source implementation. You can learn more about Server Sent Events (SSE) take a look at the MDN docs This crate uses eventsource_stream to wrap the underlying Bytes stream, and retries failed requests.

Example

let mut es = EventSource::get("http://localhost:8000/events");
while let Some(event) = es.next().await {
    match event {
        Ok(Event::Open) => println!("Connection Open!"),
        Ok(Event::Message(message)) => println!("Message: {:#?}", message),
        Err(err) => {
            println!("Error: {}", err);
            es.close();
        }
    }
}

License: MIT OR Apache-2.0

Dependencies

~5–20MB
~210K SLoC