reqwest_eventsource/
lib.rs

1//! Provides a simple wrapper for [`reqwest`] to provide an Event Source implementation.
2//! You can learn more about Server Sent Events (SSE) take a look at [the MDN
3//! docs](https://developer.mozilla.org/en-US/docs/Web/API/Server-sent_events/Using_server-sent_events)
4//! This crate uses [`eventsource_stream`] to wrap the underlying Bytes stream, and retries failed
5//! requests.
6//!
7//! # Example
8//!
9//! ```ignore
10//! let mut es = EventSource::get("http://localhost:8000/events");
11//! while let Some(event) = es.next().await {
12//!     match event {
13//!         Ok(Event::Open) => println!("Connection Open!"),
14//!         Ok(Event::Message(message)) => println!("Message: {:#?}", message),
15//!         Err(err) => {
16//!             println!("Error: {}", err);
17//!             es.close();
18//!         }
19//!     }
20//! }
21//! ```
22
23#[macro_use]
24extern crate thiserror;
25
26mod error;
27mod event_source;
28mod reqwest_ext;
29pub mod retry;
30
31pub use error::{CannotCloneRequestError, Error};
32pub use event_source::{Event, EventSource, ReadyState};
33pub use reqwest_ext::RequestBuilderExt;