在本站中
本站是开源的,仓库在 yuxuetr/rustineverything。这一部分的链接都指向提交 ceffc19(2026-10-31),行号以它为准。
先说结论:本站框架的代码里没有 stream!,也没有手写的 Stream。Cargo.lock 里有 async-stream 0.3.6,是两个依赖带进来的。
- 依赖树里的 async-stream:框架里唯一用到
Stream的地方是后台批量审核的for_each_concurrent;sea-orm 1.1.20 的Paginator::into_stream用stream!加?分页读,本站用的是fetch_page,没走它;dioxus-fullstack 0.7.9 的 SSE 客户端用try_stream!逐行解析text/event-stream,它的服务端却用无界通道加spawn,本站没有 SSE,两段都不在运行路径上。 - 哪里可以用:搜索增量重建的进度推送、论文解读的逐篇结果、全表扫描改分页流,三处各自为什么现在不用;一个跑过的
try_stream!+ axumSse进度推送示例,实测客户端断开时生产也跟着停、?出错时客户端只看到连接中断;以及一条可以执行的重估条件。
flowchart TB lock["Cargo.lock:async-stream 0.3.6"] --> sea["sea-orm 1.1.20"] lock --> dx["dioxus-fullstack 0.7.9"] sea --> into["Paginator::into_stream:stream! + ?"] dx --> cli["SSE 客户端:try_stream!"] into -.->|"本站用 fetch_page"| no1["不在运行路径上"] cli -.->|"本站没有 SSE"| no2["不在运行路径上"] site["框架代码"] --> fe["for_each_concurrent(8):唯一的 Stream"]
💬 关联讨论
发起讨论加载中...