18 releases (11 breaking)
0.13.0 | Jul 30, 2024 |
---|---|
0.12.2 | Dec 20, 2023 |
0.12.0 | Nov 15, 2023 |
0.11.0 | Nov 7, 2022 |
0.2.0 | Jul 24, 2019 |
#19 in HTTP client
102,036 downloads per month
Used in 17 crates
(12 directly)
300KB
1.5K
SLoC
eventsource-client
Client for the Server-Sent Events protocol (aka EventSource).
Requirements
Requires tokio.
Usage
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.)
Features
- 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.
Stability
Early stage release for feedback purposes. May contain bugs or performance issues. API subject to change.
Dependencies
~5–15MB
~206K SLoC