Rust in Everything
基于 async-stream 0.3.6

在本站中

本站是开源的,仓库在 yuxuetr/rustineverything。这一部分的链接都指向提交 ceffc19(2026-10-31),行号以它为准。

先说结论:本站框架的代码里没有 stream!,也没有手写的 Stream。Cargo.lock 里有 async-stream 0.3.6,是两个依赖带进来的。

  1. 依赖树里的 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,两段都不在运行路径上。
  2. 哪里可以用:搜索增量重建的进度推送、论文解读的逐篇结果、全表扫描改分页流,三处各自为什么现在不用;一个跑过的 try_stream! + axum Sse 进度推送示例,实测客户端断开时生产也跟着停、? 出错时客户端只看到连接中断;以及一条可以执行的重估条件。
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"]

💬 关联讨论

发起讨论
加载中...