一个最小的异步执行器,允许您对未来进行阻塞
Pollster 是一个用于 Rust 的极其简洁的异步执行器,可让您阻塞一个线程,直到未来的任务完成。
use pollster::FutureExt as _;
let my_fut = async {};
let result = my_fut.block_on();就是这样。这就是它所做的一切。没有更多,也没有更少。没有必要拉来 50 个箱子来评估未来。
现在 async 函数已经稳定了,我们越来越多地看到 Rust 生态系统中的库都暴露了 async
API。这对于想要构建高并发 Web 应用程序的人来说非常棒!
然而,我们中许多人并不是在构建高并发的 Web 应用程序,而是最终面临一个我们无法从同步代码中轻松调用的 async 函数。如果您处于这种情况,那么 pollster 就是为您而设计的:它允许您在不启动像 tokio 或 async_std 这样的重量级运行时的情况下,对未来的代码进行原地评估。
不幸的是,pollster 不能用于 所有 未来,因为有些未来需要特定的运行时或反应器。有关pollster何时和在何处可用的更多信息,请参阅这里。但是,如果您已经在创建此类未来时引入了所需的依赖项,那么您的依赖树中可能已经包含了用于轮询未来的block_on版本,因此请使用它。
在使用 macro crate 功能时,可以使用属性宏来标记 async fn main():
暂无开放 Issues,或尚未同步最近议题。