19 个版本

0.1.3 2023年3月5日
0.1.2 2023年3月5日
0.0.15 2023年3月5日
0.0.14 2022年7月18日
0.0.12 2021年10月17日

网络编程 中排名第 1831

Download history 3/week @ 2024-03-08 2/week @ 2024-03-15 22/week @ 2024-03-29 3/week @ 2024-04-05

每月下载 69
用于 gorgon

MIT/Apache

27KB
284

docs.rs docs

Cyberdeck

一个用于在 Rust 中轻松创建 WebRTC 数据通道连接的库。

cargo add cyberdeck
let mut peer = Peer::new(|peer_id, e| async move {
    match e {
        PeerEvent::DataChannelMessage(c, m) => {
            println!(
                "{}::Recieved a message from channel {} with id {}!",
                peer_id,
                c.label(),
                c.id()
            );
            let msg_str = String::from_utf8(m.data.to_vec()).unwrap();
            println!(
                "{}::Message from DataChannel '{}': {}",
                peer_id,
                c.label(),
                msg_str
            );
        }
        PeerEvent::DataChannelStateChange(c) => {
            if c.ready_state() == RTCDataChannelState::Open {
                println!("{}::DataChannel '{}'", peer_id, c.label());
                c.send_text("Connected to client!".to_string())
                    .await
                    .unwrap();
            } else if c.ready_state() == RTCDataChannelState::Closed {
                println!("{}::DataChannel '{}'", peer_id, c.label());
            }
        }
        PeerEvent::PeerConnectionStateChange(s) => {
            println!("{}::Peer connection state: {} ", peer_id, s)
        }
    }
})
.await?;
let answer = peer.receive_offer(&offer).await?;

信令服务器

WebRTC 以其最基本的形式通过客户端和服务器交换表示其网络信息的字符串来工作。信令服务器就是通过它交换这些信息的某些API。您可以在以下示例中看到使用单个 POST http 处理器实现的简单信令服务器 这里

cargo run --example signaling_server

许可证

本项目可使用以下任一许可证:

任选其一。

贡献

除非您明确说明,否则根据 Apache-2.0 许可证定义的,您提交给 cyberdeck 的任何有意贡献,均应按上述方式双许可,不附加任何额外条款或条件。

依赖项

~32–43MB
~843K SLoC