用途:指导 Rust 项目使用 Serde 完成结构化数据序列化与反序列化,覆盖派生宏、属性配置、枚举表示、自定义实现与格式选择。
主要能力:启用 derive 特性后派生 Serialize/Deserialize;用容器属性(rename、rename_all、deny_unknown_fields、tag/content、untagged、transparent、from/into、bound、remote 等)塑造整体结构;用字段属性(rename、alias、default、skip、skip_serializing_if、serialize_with、deserialize_with、with、flatten、borrow)控制单个字段;在外部、内部、相邻、无标签四种枚举表示间选择;派生不足时手写 impl;在 serde_json、toml、serde_yaml、bincode、rmp-serde、ciborium、serde_qs、csv 间选型。
必要用法:Cargo.toml 中写 serde = { version = "1", features = ["derive"] },不要直接依赖 serde_derive;no_std + alloc 用 default-features = false, features = ["derive", "alloc"]。零拷贝字段需 #[serde(borrow)]。
限制:内部/相邻/无标签枚举反序列化需要 alloc;flatten 不能与父级 deny_unknown_fields 同用;untagged 变体结构不可重叠;bincode 仅适合 Rust 间通信。
适用场景:Web API、配置文件、日志、IPC、跨语言二进制等。资料未提供收费、价格与平台信息。