Tokio 改版 的 RFC
2017年9月19日
大家好,Tokio 社区!
Carl、Alex 和我一直在努力开发简化、精简和聚焦 Tokio 项目的方法。作为这项工作的一部分,我们编写了第一个 Tokio RFC!
以下是关于提案内容的快速概览。
-
在
tokio-core
中添加一个全局事件循环,默认情况下自动管理。 此更改消除了在绝大多数情况下设置和管理您自己的事件循环的需要。- 此外,通过使
Handle
同时实现Send
和Sync
并弃用Remote
,消除tokio-core
中Handle
和Remote
之间的区别。 因此,即使使用自定义事件循环也变得更简单。
- 此外,通过使
-
将所有任务执行功能与 Tokio 解耦,而是通过标准的 futures 组件提供。 与事件循环一样,提供一个默认的全局线程池,足以满足大多数用例,从而无需任何手动设置。
- 此外,当在线程本地运行任务(对于非
Send
futures)时,提供更可靠的 API,以帮助避免丢失唤醒。
- 此外,当在线程本地运行任务(对于非
-
在新的
tokio
crate 中提供上述更改,它是今天tokio-core
的精简版本,并且最终可能会重新导出tokio-io
的内容。tokio-core
crate 已被弃用,但为了向后兼容性仍将可用。 从长远来看,大多数用户应该只需要依赖tokio
即可使用 Tokio 栈。 -
文档重点主要放在
tokio
上,而不是tokio-proto
上。 提供更广泛的 cookbook 风格的示例和通用指南,以及更深入的 futures 使用指南。
总而言之,这些更改,以及 async/await,应该会在使 Tokio 成为对新手友好的库方面取得长足的进步。 请查看 RFC 并留下您的反馈!
一旦我们就 RFC 达成共识,我们计划成立一个实现期的工作组,主要专注于文档和示例。 从那时起,我们将与 Hyper 团队合作,以确定故事的下一章。 敬请关注!
—Aaron Turon