14个稳定版本

3.0.4 2019年12月4日
3.0.1 2019年12月3日
2.1.3 2019年12月3日
1.0.1 2019年12月2日

#904异步

每月下载量 34

MIT 许可证

10KB
165

dyn-future

这是一个实现方便且快速动态Futures的小型crate。

该库提供的类型 DynFuture<T> 旨在替代原始的 Box<dyn Future<Output = T>>

易用性

该库设计得非常简单,无需设置即可使用。您可以自由地混合来自依赖项的原始boxed futures,而不会出现任何问题。

DynFuture<T> 可以像 Box<dyn Future<Output = T>> 一样使用,并且通常只需在现有代码中运行查找和替换即可。

DynFuture<T> 可以像任何其他future一样等待,但它具有固定大小。

它仅应作为 Box<dyn Future<Output = T>> 的替代品使用。如果可能,您应始终首选使用 async fn 的静态解析future。

编译开销

dyn-future努力保持小型化并最小化依赖关系。如果您有任何问题或改进建议,请随时提出。

为什么?

提供的 DynFuture<T> 类型比原始实现更快。具体快多少取决于全局分配器、CPU逻辑处理器的数量以及发送的future的大小。尽管一般来说,DynFuture<T> 总是更快。

目前我们提供了一些极其简单的基准测试。这些基准测试可以绝对得到改进。这是我愿意帮助的地方,因为我在编写基准测试方面并不出色。

由于未来类型的缺乏变化,这些结果并不能代表现实世界的收益。我使用dyn-future对私有代码库进行了一些基准测试,处理动态未来所花费的时间提高了8倍以上。

贡献

dyn-future欣然接受贡献!

提交一个PR,我会查看的。

依赖

~200KB