#serialization #json #binary #ron #string #default #fork

no-std nanoserde

makepad-tinyserde 的分支,不包含任何外部依赖。支持 json、二进制和 ron。 #[derive(Clone, Debug, Default, DeJson, SerJson)] pub struct Property { pub name: String, #[nserde(default)] pub value: String, #[nserde(rename = "type")] pub ty: String, }

35 个版本

0.2.0-beta.02024年7月28日
0.1.37 2024年1月25日
0.1.35 2023年9月1日
0.1.33 2023年7月22日
0.1.18 2020年7月20日

#111编码

Download history 2760/week @ 2024-05-01 2954/week @ 2024-05-08 2620/week @ 2024-05-15 3162/week @ 2024-05-22 3823/week @ 2024-05-29 3206/week @ 2024-06-05 4306/week @ 2024-06-12 4214/week @ 2024-06-19 3496/week @ 2024-06-26 2966/week @ 2024-07-03 5346/week @ 2024-07-10 6087/week @ 2024-07-17 4146/week @ 2024-07-24 4116/week @ 2024-07-31 4629/week @ 2024-08-07 4089/week @ 2024-08-14

18,304 每月下载量
用于 43 个 crate (32 个直接使用)

MIT/Apache

120KB
3.5K SLoC

nanoserde

Github Actions Crates.io version Documentation Discord chat

移除了所有依赖的 makepad-tinyserde 的分支。构建树中不再包含 syn、proc_macro2 或 quote!

> cargo tree
nanoserde v0.1.0 (/../nanoserde)
└── nanoserde-derive v0.1.0 (/../nanoserde/derive)

示例

use nanoserde::{DeJson, SerJson};

#[derive(Clone, Debug, Default, DeJson, SerJson)]
pub struct Property {
    pub name: String,
    #[nserde(default)]
    pub value: String,
    #[nserde(rename = "type")]
    pub ty: String,
}

更多示例,请参阅 tests

特性支持矩阵

特性 json bin ron toml
serialization yes yes yes no
deserialization yes yes yes no
容器:Struct yes yes yes no
容器:Tuple Struct no yes yes no
容器:枚举 yes yes yes no
字段: std::collections::HashMap yes yes yes no
字段: std::vec::Vec yes yes yes no
字段: Option yes yes yes no
字段: i*/f*/String/T: De*/Ser* yes yes yes no
字段属性: #[nserde(default)] yes no yes no
字段属性: #[nserde(rename = "")] yes yes yes no
字段属性: #[nserde(proxy = "")] no yes no no
容器属性: #[nserde(default)] yes no yes no
容器属性: #[nserde(rename = "")] yes yes yes no
容器属性: #[nserde(proxy = "")] yes yes no no
容器属性: #[nserde(transparent)] yes no no no

库功能

默认启用所有功能。要仅启用特定格式,使用以下方式导入 nanoserde:

nanoserde = { version = "*", default-features = false, features = ["std", "{format feature name}"] }

在你的 Cargo.toml 中导入,并添加以下一个或多个库功能

格式 功能名称
二进制 binary
JSON json
RON ron
TOML toml

依赖项