#opc #tokio #codec #pixel #open-pixel-control

tk-opc

使用 tokio 编码/解码器的 OpenPixelControl 最小复制实现

4 个版本

使用旧的 Rust 2015

0.1.3 2017年4月23日
0.1.2 2017年4月22日
0.1.1 2017年4月22日
0.1.0 2017年4月22日

#10 in #opc

21 每月下载量

MIT 许可证

12KB
349 行代码(不含注释)

最小复制(仅复制到/从 tokio 编码/解码器缓冲对象)的开放像素控制 Rust 库。

示例 OPC 服务器

    let mut core = Core::new().unwrap();
    let handle = core.handle();

    let addr = "127.0.0.1:12345".parse().unwrap();
    let listener = TcpListener::bind(&addr, &handle).unwrap();

    // send the message from the server to another thread...
    let (send, recv) = futures::sync::mpsc::channel(0);

    let server = listener.incoming().for_each(|(stream, _)| {
        let (_, stream) = stream.framed(opc::OPCCodec).split();
        // using this and not 'handle.spawn(...);Ok(())' should guarantee one connection at at time.
        send.clone().sink_map_err(|_| ()).send_all(stream.map_err(|_| ())).then(|_|Ok(()))
    });

依赖项

~610KB
~11K SLoC