pama 发表于 2019-10-22 16:35
Tags:async crate tokio runtime async-std async-task futures
我现在知道的有 futures-preview tokio runtime async-std async-task;这些库到底是个什么关系?哪种情况用哪个?还是可以每一个都同时用在一个项目中,每个库是为了解决什么问题? 眼都花了.
futures-preview
tokio
runtime
async-std
async-task
其实主要是 async-std 和 tokio 的冲突,其他库都只负责自己的事情。
我觉得理想状态是 async-std 就对标 std,tokio 基于 async-std 提供更高级的抽象。不需要重复去做 scheduler。。
tokio我只知道很出名,但没有去仔细学过,最近在看async-std,感觉很丝滑.只是看到这些异步库,不知道历史的,是真的有点晕.多谢谢大大的解答. 对以下内容的回复:
async-std 与 tokio 是竞争,可替代关系。
futures是基础库,已经进入官方,配合实现 async/await 语法。
tokio是rust社区,历史最悠久的异步基础框架,属于3方库。由于历史早,目前rust生态绝大多数需要用到异步的库,都是基于tokio的。
async-std是新出的完全利用async/await从头写起的库,特点是与标准库std的api使用方法尽量保持一致。async-task 是与 async-std 配合的组件。目前 async-std 发展非常迅速。
tokio 和 async-std 的底层都是 futures + mio。
需要提的是,前rust异步生态工作组的几位大佬,全力在写 async-std 的代码。而tokio的作者,至少在开发节奏上,曾经跟rust官方有一小点冲突。
从我个人来讲,未来可能更看好 async-std。
评论区
写评论其实主要是 async-std 和 tokio 的冲突,其他库都只负责自己的事情。
我觉得理想状态是 async-std 就对标 std,tokio 基于 async-std 提供更高级的抽象。不需要重复去做 scheduler。。
tokio我只知道很出名,但没有去仔细学过,最近在看async-std,感觉很丝滑.只是看到这些异步库,不知道历史的,是真的有点晕.多谢谢大大的解答. 对以下内容的回复:
async-std 与 tokio 是竞争,可替代关系。
futures是基础库,已经进入官方,配合实现 async/await 语法。
tokio是rust社区,历史最悠久的异步基础框架,属于3方库。由于历史早,目前rust生态绝大多数需要用到异步的库,都是基于tokio的。
async-std是新出的完全利用async/await从头写起的库,特点是与标准库std的api使用方法尽量保持一致。async-task 是与 async-std 配合的组件。目前 async-std 发展非常迅速。
tokio 和 async-std 的底层都是 futures + mio。
需要提的是,前rust异步生态工作组的几位大佬,全力在写 async-std 的代码。而tokio的作者,至少在开发节奏上,曾经跟rust官方有一小点冲突。
从我个人来讲,未来可能更看好 async-std。