#byte #serde #serialization #no-std #derive-deserialize #serde-derive

no-std serde_bytes_ng

优化处理 [u8; N]&[u8]Vec<u8> 的 Serde

3 个版本

0.1.2 2023年12月10日
0.1.1 2023年12月10日
0.1.0 2023年12月9日

#1810编码

Download history 1240/week @ 2024-03-14 1215/week @ 2024-03-21 1147/week @ 2024-03-28 1247/week @ 2024-04-04 1294/week @ 2024-04-11 1743/week @ 2024-04-18 1349/week @ 2024-04-25 1841/week @ 2024-05-02 1955/week @ 2024-05-09 1934/week @ 2024-05-16 2236/week @ 2024-05-23 1909/week @ 2024-05-30 2170/week @ 2024-06-06 2375/week @ 2024-06-13 2372/week @ 2024-06-20 2220/week @ 2024-06-27

9,622 每月下载量
用于 12 个 crate (直接使用 3 个)

MIT/Apache

28KB
727

ci crates.io

serde-bytes-ng

集成 serde_bytes 和泛型字节数组支持。

目标是贡献给上游 serde_bytes,但由于作者没有回应,创建了一个具有泛型字节数组支持以及最新 serde_bytes 代码的独立 crate,以便可以作为一个 crate 发布。

示例

use serde::{Deserialize, Serialize};

#[derive(Deserialize, Serialize)]
struct Efficient<'a> {
    #[serde(with = "serde_bytes_ng")]
    bytes: &'a [u8],

    #[serde(with = "serde_bytes_ng")]
    byte_buf: Vec<u8>,

    #[serde(with = "serde_bytes_ng")]
    byte_array: [u8; 188],

    #[serde(with = "serde_bytes_ng", borrow)]
    byte_array_ref: &'a [u8; 188],

}

lib.rs:

包装类型以启用对 [u8; N]&[u8]Vec<u8> 的优化处理。

这个 crate 是 serde_bytes 的分支,增加了对 [u8; N]&[u8; N] 的支持。

#[derive(Deserialize, Serialize)]
struct Efficient<'a> {
    #[serde(with = "serde_bytes_ng")]
    bytes: &'a [u8],

    #[serde(with = "serde_bytes_ng")]
    byte_buf: Vec<u8>,

    #[serde(with = "serde_bytes_ng")]
    byte_array: [u8; 188],

    #[serde(with = "serde_bytes_ng", borrow)]
    byte_array_ref: &'a [u8; 188],
}

依赖项

~110–350KB