To futures-lite as futures-lite is to futures: smaller.
Features:
* Fun tools to write everything as async fns.
* Tiny, no dependencies.
* 100% no_std support, no heap allocation required!
* Complete stable compiler support - Uses no nightly features!
Bootstrap tools:
poll_fn - wrap a function into a future.poll_state - wrap a function and some state into a future.
```rust
/// outdated
poll_state(INITIAL, |state, ctx| {...}).await/// replacement (NOTE: *state should be replaced by state)
let mut state = INITIAL;
poll_fn(move |ctx| { ... }).await
```
pin!() - pin a value to the stack.waker() to get the current waker.sleep() to wait until you are woken.next_poll() - polls a future once, returning it for reuse if pending.pending() - never completes.
rust
/// outdated
pending()
/// replacement
poll_fn(|_| ::core::task::Poll::Pending)
ready() - completes on first poll.
rust
/// outdated
ready(x)
/// replacement
async { x }
yield_once() - lets some other futures do some work .or() - return the result of the first future to complete.or!() - or(), but varargs.zip() - return the result of both futures when they both complete.zip!() - zip(), but varargs.ready!() - unwraps a ready value or returns pending.Beta? The API we have here seems pretty reasonable now.
If there's something you're missing, you may be looking for futures-lite.
This crate uses unsafe for pin projection. We believe the code to be correct,
but we'd welcome more eyes on it.
Yes, we could get rid of them with pin-project-lite, but it's just
hiding the mess and then we couldn't claim zero dependencies.
Copyright (c) 2020 James Laver, Matthieu le Brazidec, Stjepan Glavina, Erik Zscheile, futures-micro contributors, futures-lite contributors
Licensed under Apache License, Version 2.0 (https://www.apache.org/licenses/LICENSE-2.0), with LLVM Exceptions (https://spdx.org/licenses/LLVM-exception.html).
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be licensed as above, without any additional terms or conditions.