futures-stream-select-all

A futures library adapter for merging the output of several streams.

It implements a binary-tree structure to efficiently perform select for any amount of undelying streams.

Usage

First, add this to your Cargo.toml:

toml [dependencies] futures-stream-select-all = "0.1"

Next, add this to your crate:

```rust extern crate futures-stream-select-all;

use futuresstreamselectall::selectall; ```

Example

```rust use futures::{stream, Stream, Future}; use futuresstreamselectall::selectall;

let stream_a = stream::iter(vec![Ok(0), Ok(1)]);
let stream_b = stream::iter(vec![Ok(2), Ok(3), Ok(4)]);
let stream_c = stream::iter(vec![Ok(5)]);

let mut values = select_all::<_, _, ()>(vec![stream_a, stream_b, stream_c])
    .collect()
    .wait()
    .unwrap();
values.sort();
assert_eq!(values, vec![0, 1, 2, 3, 4, 5]);

```

License

futures-stream-select-all is primarily distributed under the terms of the MIT license.

See LICENSE-MIT for details.