#数据通道 #WebRTC #异步

async-datachannel

数据通道的异步包装器

8 个不稳定版本 (3 个重大更改)

0.4.0 2022年11月29日
0.3.0 2022年3月9日
0.2.2 2021年9月22日
0.1.2 2021年9月15日

并发 中排名第 438

Download history 90/week @ 2024-03-12 100/week @ 2024-03-19 88/week @ 2024-03-26 67/week @ 2024-04-02 34/week @ 2024-04-09 44/week @ 2024-04-16 34/week @ 2024-04-23 49/week @ 2024-04-30 74/week @ 2024-05-07 98/week @ 2024-05-14 41/week @ 2024-05-21 61/week @ 2024-05-28 92/week @ 2024-06-04 50/week @ 2024-06-11 1/week @ 2024-06-18 1/week @ 2024-06-25

每月下载量:186
用于 libp2p-webrtc

Apache-2.0 或 MIT

16KB
269

async-datachannel

License Cargo Documentation

datachannel crate 的异步包装器。完整示例请查看 examples 目录。

请注意,此 crate 目前仅与 tokio 运行时兼容。如果您有兴趣支持其他运行时,请告诉我。

快速入门

use async_datachannel::{Message, PeerConnection, PeerId, RtcConfig};
use futures::io::{AsyncReadExt, AsyncWriteExt, channel::mpsc};

let ice_servers = vec!["stun:stun.l.google.com:19302"];
let conf = RtcConfig::new(&ice_servers);
let (tx_sig_outbound, mut rx_sig_outbound) = mpsc::channel(32);
let (tx_sig_inbound, rx_sig_inbound) = mpsc::channel(32);
let listener = PeerConnection::new(&conf, (tx_sig_outbound, rx_sig_inbound))?;

// TODO: Wire up `tx_sig_inbound` and `rx_sig_outbound` to a signalling
// mechanism.

let mut dc = listener.dial("Hangout").await?;
dc.write(b"Hello").await?;

let mut buf = vec![0; 32];
let n = dc.read(&mut buf).await?;
assert_eq!(b"World", &buf[..n]);

许可证

许可协议为以下之一

任选其一。

贡献

除非您明确声明,否则根据 Apache-2.0 许可证定义,您提交的任何有意包含在作品中的贡献都将根据上述协议进行双重许可,不附加任何额外条款或条件。

依赖关系

~11–22MB
~366K SLoC