#nushell-plugin #server-sent-events #event-stream #plugin #http-server #nushell #http

bin+lib nu_plugin_from_sse

Nushell 插件,用于将 HTTP 服务器发送事件流转换为结构化数据

4 个版本 (破坏性更新)

0.4.0 2024年7月2日
0.3.0 2024年5月29日
0.2.0 2024年4月4日
0.1.0 2024年3月6日

#1921命令行工具

Download history 5/week @ 2024-04-09 4/week @ 2024-05-21 125/week @ 2024-05-28 4/week @ 2024-06-04 7/week @ 2024-06-11 159/week @ 2024-07-02

每月下载量:159

MIT 和可能 CC-PDDC

130KB
179

nu 流式插件: nu_plugin_from_sse

此插件是从 nu_plugin_example 分支出来的。

使用 Cargo 安装

在 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

用法

nu_plugin_from_sse 提供一个命令

sse

此命令将 HTTP SSE(服务器发送事件)转换为具有已知形状的结构化记录

{
  id: string,    // Unique identifier for the SSE event
  event: string, // Type of event
  data: string   // Data payload of the event
}

已知问题:nu 表缓冲 #12129

如果您的 SSE 端点在连接时发送初始事件然后暂停——等待罕见的更新——您将看不到任何输出,直到连接后第一次新的更新。这种行为是由于 nu 的 表缓冲机制,其中仅在活动输入处理期间考虑了持续时间超时。

此问题的简单解决方案是将输出重定向到 each

示例

将此文本复制到您的剪贴板

event: creatureAlert
id: 1
data: {"id":"uni123","type":"Unicorn","lat":45.4235,"lon":-75.6979,"urgency":"high","desc":"Injured near Crystal River."}


使用 bp 来重定向它

bp | from sse | update data { from json }

output

实时示例

http get https://ndyg.cross.stream/projects/enchanted-animal-rescue/rescue-feed |
    from sse |
    update data { from json }

依赖项

~24–54MB
~1M SLoC