Skip to main content

Crate eventsrc_client

Crate eventsrc_client 

Source
Expand description

Backend-neutral SSE client APIs with two explicit public modes:

The default reqwest feature provides extension trait impls for reqwest::Response and reqwest::RequestBuilder, including validation of HTTP status and content-type.

§One-Shot Usage

Inside an async context:

use futures_util::StreamExt;
let response = reqwest::Client::new()
    .get("https://example.com/v1/stream")
    .send()
    .await?;

use eventsrc_client::oneshot::EventSourceExt as _;

let mut stream = response.event_source()?;

while let Some(event) = stream.next().await {
    let event = event?;
    println!("{}", event.data());
}

§Replayable Usage

Inside an async context:

use eventsrc_client::replayable::EventSourceExt as _;
use futures_util::StreamExt;

let mut stream = reqwest::Client::new()
    .get("https://example.com/events")
    .event_source()?;

while let Some(event) = stream.next().await {
    let event = event?;
    println!("{}", event.data());
}

§Retry Policies

Replayable mode separates retry classification from retry timing:

Built-in policies:

Modules§

error
Unified client-layer error types and helpers.
oneshot
One-shot SSE consumption over a single accepted body stream.
replayable
Reconnecting SSE consumption with replay and retry support.