#serde-json #tokio #serialization #values #deserialize #frame #transport

tokio-serde-json

使用Serde进行JSON序列化和反序列化帧值,轻松实现Tokio JSON传输所需的实用工具

4个版本 (破坏性更新)

0.3.0 2019年10月7日
0.2.0 2018年11月9日
0.1.0 2018年8月16日
0.0.0 2017年3月14日

#202 in #transport

Download history 36/week @ 2024-03-24 90/week @ 2024-03-31 26/week @ 2024-04-07 45/week @ 2024-04-14 42/week @ 2024-04-21 32/week @ 2024-04-28 64/week @ 2024-05-05 62/week @ 2024-05-12 42/week @ 2024-05-19 62/week @ 2024-05-26 71/week @ 2024-06-02 33/week @ 2024-06-09 27/week @ 2024-06-16 74/week @ 2024-06-23 21/week @ 2024-06-30 210/week @ 2024-07-07

每月337次下载
用于 2 crates

MIT许可证

12KB
130

Tokio / Serde的JSON绑定

使用Serde进行JSON序列化和反序列化帧值,轻松实现Tokio JSON传输所需的实用工具。

文档

用法

要使用tokio-serde-json,首先在您的Cargo.toml中添加以下内容:

[dependencies]
tokio-serde-json = "0.2"

然后,在您的crate中添加以下内容:

extern crate tokio_serde_json;

use tokio_serde_json::{ReadJson, WriteJson};

许可证

本项目采用MIT许可证

贡献

除非您明确说明,否则您提交给tower-web的任何贡献都应按MIT许可证授权,无需任何额外条款或条件。


lib.rs:

StreamSink适配器,用于使用JSON序列化和反序列化值。

此crate提供从缓冲区流或流的适配器,将缓冲区流或流转换为值流,通过执行JSON编码或解码来实现。预期每个产生的缓冲区包含一个序列化的JSON值。具体的实现策略由用户决定。一种选择是使用length_delimitedtokio-io

示例

use futures::prelude::*;

use serde_json::json;

use tokio::{codec::{FramedWrite, LengthDelimitedCodec}, net::TcpStream};

use tokio_serde_json::WriteJson;

#[tokio::main]
async fn main() {
    // Bind a server socket
    let socket = TcpStream::connect("127.0.0.1:17653")
        .await
        .unwrap();

    // Delimit frames using a length header
    let length_delimited = FramedWrite::new(socket, LengthDelimitedCodec::new());

    // Serialize frames with JSON
    let mut serialized = WriteJson::new(length_delimited);

    // Send the value
    serialized.send(json!({
      "name": "John Doe",
      "age": 43,
      "phones": [
        "+44 1234567",
        "+44 2345678"
      ]
    })).await.unwrap()
}

有关完整的工作服务器和客户端示例,请参阅示例目录。

依赖关系

~3.5MB
~74K SLoC