5 unstable releases
0.3.2 | Jul 30, 2020 |
---|---|
0.3.1 | Mar 4, 2020 |
0.3.0 | Mar 2, 2020 |
0.2.0 | Jan 22, 2020 |
0.1.0 | Dec 23, 2019 |
#3 in #encodes
22,103 downloads per month
Used in 17 crates
(3 directly)
33KB
757 lines
sse-codec
A futures_codec
that encodes and decodes Server-Sent Event/Event Sourcing streams.
Documentation
On docs.rs.
Installation
With cargo-edit
do:
cargo add sse-codec
Or in Cargo.toml:
[dependencies]
sse-codec = "0.3.2"
Related
License
lib.rs
:
A futures_codec
that encodes and decodes Server-Sent Event/Event Sourcing streams.
It emits or serializes full messages, and the meta-message retry:
.
Examples
use sse_codec::{decode_stream, Event};
use futures::stream::TryStreamExt; // for try_next()
let response = surf::get("https://some-site.com/events").await?;
let mut events = decode_stream(response);
while let Some(event) = events.try_next().await? {
println!("incoming: {:?}", event);
match event {
Event::Retry { retry } => {
// change a retry timer value or something
}
Event::Message { event, .. } if event == "stop" => {
break;
}
Event::Message { id, event, data } => {
if let Some(id) = id {
// change the last event ID
}
// handle event here
}
}
}
EventSource tests from the web-platform-tests suite. See https://github.com/web-platform-tests/wpt/tree/master/eventsource
Dependencies
~3MB
~60K SLoC