4 releases (breaking)
0.4.0 | Jul 2, 2024 |
---|---|
0.3.0 | May 29, 2024 |
0.2.0 | Apr 4, 2024 |
0.1.0 | Mar 6, 2024 |
#2608 in Command line utilities
130KB
179 lines
nu
streaming plugin: nu_plugin_from_sse
This plugin was forked from the nu_plugin_example.
Install with Cargo
From within nushell:
cargo install --locked nu_plugin_from_sse
plugin use ~/.cargo/bin/nu_plugin_from_sse
# and then restart nu or use plugin add to activate
Usage
nu_plugin_from_sse
provides one command:
from sse
This command transforms HTTP SSE (Server-Sent Events) into structured records with the shape:
{
id: string, // Unique identifier for the SSE event
event: string, // Type of event
data: string // Data payload of the event
}
known issue: nu table buffering #12129
If your SSE endpoint dispatches initial events upon connection, then pauses—awaiting rare updates—you won't see any output until the first new update after connecting. This behavior is due to nu's table buffering mechanism, where a duration timeout is factored in only during active input processing.
An easy workaround for this issue is to pipe to
each
.
example
Copy this text to your clipboard:
event: creatureAlert
id: 1
data: {"id":"uni123","type":"Unicorn","lat":45.4235,"lon":-75.6979,"urgency":"high","desc":"Injured near Crystal River."}
Use bp
to pipe it:
bp | from sse | update data { from json }
live example
http get https://ndyg.cross.stream/projects/enchanted-animal-rescue/rescue-feed |
from sse |
update data { from json }
Dependencies
~24–54MB
~1M SLoC