futures-rs
futures-rs copied to clipboard
Zero-cost asynchronous programming in Rust
When I use debugger to debug my tool with `try_join_all` or other `join` functions in futures, I want to replace `try_join_all` with non-parallel versions for easy debugging. I wrote helper...
This updates most `Future` combinators to preserve `Clone` when available on the base `Future`. For motivation, imagine you have some complicated `Future` that is not `Clone` and requires `.shared()` to...
This creates an efficient bounded bytes channel implementing `Async{Read,Write}`, similar to [`tokio::io::duplex`](https://docs.rs/tokio/1.29.1/tokio/io/fn.duplex.html) but is unidirectional by default. It can be used glue together interfaces accepting a reader and a writer,...
The obstruction to ```rust trait TryFuture: Future { type Ok; type Error; } ``` originally stated in https://github.com/rust-lang/futures-rs/issues/1776#issuecomment-518307092 no longer exists. This PR provides an insight into what taking such...
I would like to propose the addition of a new abstraction: `OptionStream`. I would expect it to have the same `Item` as the underlying stream when it's built from an...
I've found it to be very surprising behaviour that `poll_flush` on a `Sender` returns `Poll::Ready` despite the channel not being empty. This PR attempts to fix this by checking the...
This enables `poll()`ing to fill the buffer without producing or consuming the Stream's outputs. `Buffered` and `FuturesOrdered` will also poll their inner futures produced by the stream, since they have...
This PR adds `is_some` and `is_none` to OptionFuture. This is useful when you only want to poll the `OptionFuture` if it contains a future (i.e treat `None` as `never`).
Hi there! So this is a really fun issue I spent some time debugging. I had written an adapter that sits on top of a `Peekable`. I had some code...
This is a tracking issue for consistency in APIs that use closures in futures 0.4. For individual cases, see below. (Especially #1889, #2470, and #2518 have some discussion on this)...