#future #async #testing #no-std

no-std futures-micro

最小化、与no-std兼容的异步预览

8个版本 (4个重大变更)

1.0.0-rc02021年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

Download history 4716/week @ 2024-03-14 5048/week @ 2024-03-21 4908/week @ 2024-03-28 5069/week @ 2024-04-04 4919/week @ 2024-04-11 5919/week @ 2024-04-18 4609/week @ 2024-04-25 5842/week @ 2024-05-02 5272/week @ 2024-05-09 5508/week @ 2024-05-16 5484/week @ 2024-05-23 5687/week @ 2024-05-30 4936/week @ 2024-06-06 4676/week @ 2024-06-13 4870/week @ 2024-06-20 3992/week @ 2024-06-27

19,256 每月下载量
46 crate 中使用 46 (5 直接)

Apache-2.0 WITH LLVM-exception

15KB
226

futures-micro

License Package Documentation

作为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