#tcp-connection #tcp #io #serialization #read-write #send-receive #object

连接

可以读取和写入可序列化数据的 TCP 连接

6 个版本

0.2.5 2023 年 3 月 31 日
0.2.4 2023 年 3 月 30 日
0.1.0 2023 年 3 月 26 日

#1709异步

MIT 许可证

14KB
133

连接 💌

github crates.io docs.rs build status codecov

一种基于 TCP 的连接,可以发送和接收可序列化对象。

用法

将其添加到您的 Cargo.toml 中

[dependencies]
connection = "0.2.5"

您可以通过以下方式创建一个 Connection

use connection::Connection;

#[tokio::main]
async fn main() {
  let mut conn = Connection::connect("127.0.0.1:8080").await.unwrap();
}

您可以使用 Connection 发送和接收可序列化对象

use connection::Connection;
use serde::{Serialize, Deserialize};

/// A (de)serializable type shared between client and server
#[derive(Serialize, Deserialize)]
struct Message {
  id: u32,
  data: String,
}

/// Code running client side
async fn client_side(mut client_conn: Connection) {
  let message = Message {
    id: 1,
    data: "Hello, world!".to_string(),
  };

  client_conn.write::<Message>(&message).await.unwrap();
}

/// Code running server side
async fn server_side(mut server_conn: Connection) {
  let message: Message = server_conn.read::<Message>().await.unwrap().unwrap();
}

依赖项

~3–12MB
~126K SLoC