Client for the Server-Sent Events protocol (aka EventSource).
Requires tokio.
Example that just prints the type of each event received:
use eventsource_client as es;
let mut client = es::ClientBuilder::for_url("https://example.com/stream")?
.header("Authorization", "Basic username:password")?
.build();
client
.stream()
.map_ok(|event| println!("got event: {:?}", event))
.map_err(|err| eprintln!("error streaming events: {:?}", err));
(Some boilerplate omitted for clarity; see examples directory for complete, working code.)
- tokio-based streaming client.
- Supports setting custom headers on the HTTP request (e.g. for endpoints requiring authorization).
- Retry for failed connections.
- Reconnection if connection is interrupted, with exponential backoff.
Early stage release for feedback purposes. May contain bugs or performance issues. API subject to change.