9 个版本

0.3.0-已弃用2019年11月15日
0.3.0-alpha.82019年8月30日

#16 in #crossbeam

每月下载量 28 次

MIT 许可证

11KB
194 行代码

channel-async

build status crates.io version docs.rs docs MIT licensed

  • 此软件包不再维护 *

由于 crossbeam 和 tokio 之间的交互,建议您使用 async-std 中的通道

Futures 0.3 Stream 上对 crossbeam-channel 的 Async/stream 扩展。它主要用于与 Tokio 一起使用。

文档

使用方法

首先,将以下内容添加到您的 Cargo.toml

[dependencies]
channel-async = "0.3.0-alpha.8"

接下来,将以下内容添加到您的软件包中

use futures::{FutureExt, TryFutureExt};

#[tokio::main]
async fn run_channels() {
    let (tx, rx) = channel_async::unbounded(Duration::from_millis(100));

    let send_fut = async move {
        for i in 1..100 {
            tx.send(i).await.expect("Failed to send");
        }
    };
    
    tokio::spawn(send_fut);

    let recv_fut = async move {
      let rcvd: Vec<_> = rx.collect().await;
      rcvd
    };
    
    let rcvd = recv_fut.await;
    
    println!("Received {} messages", rcvd.len());
}

许可证

本项目采用 MIT 许可证

贡献

除非您明确声明,否则您提交的任何有意包含在 tls-async 中的贡献,都应按照 MIT 许可证许可,不附加任何额外的条款或条件。

依赖项

~6MB
~108K SLoC