5 个版本 (2 个稳定版)
1.0.1 | 2021 年 7 月 31 日 |
---|---|
0.3.0 | 2021 年 5 月 19 日 |
0.2.0 | 2021 年 5 月 17 日 |
0.1.0 | 2021 年 4 月 19 日 |
#1662 in Rust 模式
14KB
327 行
QCOMMS
qcomms 是一个小型库,提供了一种简单的消息传递特征。它还提供了心跳和其它流辅助功能。
use qcomms::ObjComms;
use serde::{Serialize, Deserialize};
use async_std::task;
use async_std::task::sleep;
use async_std::net::{TcpListener, TcpStream};
#[derive(Serialize, Deserialize, Debug)]
pub struct Message {
hello: String,
val: u32,
}
#[async_std::main]
async fn main() {
task::spawn(async move {
let listener = TcpListener::bind("127.0.0.1:3022").await.unwrap();
let (mut stream, _) = listener.accept().unwrap();
let message: Message = stream.rx().await.unwrap();
println!("{:?}", message);
});
let m = Message {
hello: "hello".to_string(),
val: 12,
};
task::sleep(Duration::from_secs(1)).await;
let mut stream = TcpStream::connect("127.0.0.1:3022").await.unwrap();
stream.tx(&m).await.unwrap();
}
lib.rs
:
qcomms 只与 async std 兼容。这一决定是为了使用户不局限于 tokio 生态系统
依赖关系
~6–18MB
~218K SLoC