8个版本 (4个重大变更)
1.0.0-rc0 | 2021年7月28日 |
---|---|
0.5.0 | 2021年3月13日 |
0.4.0 | 2020年11月6日 |
0.3.1 | 2020年8月23日 |
0.1.1 | 2020年8月11日 |
#21 在 #tests
19,256 每月下载量
在 46 个 crate 中使用 46 (5 直接)
15KB
226 行
futures-micro
作为futures-lite相对于futures:更小。
特性
-
编写所有内容的异步函数的工具。
-
小巧,只有一个依赖项。
-
100%
no_std
支持,无需堆分配! -
完整的稳定编译器支持 - 不使用夜间功能!
-
引导工具
poll_fn
- 将函数包装成future。pin!()
- 将值固定到栈上。
-
Futures接口降级(从异步函数中获取poll接口)
waker()
获取当前唤醒器。sleep()
等待直到被唤醒。
-
常用功能
yield_once()
- 让其他future执行一些工作。or()
- 返回第一个完成的future的结果。or!()
-or()
,但变量参数。zip()
- 当两个future都完成时返回结果。zip!()
-zip()
,但变量参数。ready!()
- 解包就绪值或返回挂起。
状态
测试版?这里提供的API现在看起来相当合理。
如果您遗漏了某些内容,您可能正在寻找 futures-lite。
缺少/删除的API
在这个crate中,您将找不到许多API。一些是为了保持crate的轻量和小型,易于编译而移除的,而另一些则曾经在这里,但后来被移除。这些包括
pending()
- 永不完成,现在在libcore中作为core::future::pending()
ready()
- 在首次轮询时完成,现在在libcore中作为core::future::ready()
poll_state
- 将一个函数和一些状态包装成一个future。/// outdated poll_state(INITIAL, |state, ctx| {...}).await /// replacement (NOTE: `*state` should be replaced by `state`) let mut state = INITIAL; poll_fn(move |ctx| { ... }).await
变更日志
0.5.0 - 2021-03-13
- 切换到使用
pin-project-lite
进行pin projections,移除了大部分不安全的代码。 - 移除了
next_poll
。它并不很有用,并且我们的实现可能并不稳健。这可能解释了为什么我在futures-lite
中找不到它。
版权和许可证
版权(c)2020 James Laver, Matthieu le Brazidec, Stjepan Glavina, Erik Zscheile, futures-micro贡献者,futures-lite贡献者
许可根据Apache License,版本2.0(https://apache.ac.cn/licenses/LICENSE-2.0),带有LLVM异常(https://spdx.org/licenses/LLVM-exception.html)。
除非您明确说明,否则您有意提交的任何贡献,根据Apache-2.0许可证定义的工作内容,应按上述方式许可,不附加任何额外条款或条件。
依赖关系
~46KB