#serde-derive #prost #macro-derive #serialization #structs #derive-deserialize #generated

prost-serde-derive

使用 Serde 将 Prost 生成的结构体进行序列化和反序列化的宏

5 个版本

0.1.5 2024 年 3 月 22 日
0.1.4 2024 年 3 月 21 日
0.1.2 2023 年 3 月 30 日
0.1.1 2023 年 2 月 13 日
0.1.0 2022 年 12 月 19 日

1479编码

Download history 21/week @ 2024-04-04 4/week @ 2024-04-11 7/week @ 2024-04-18 10/week @ 2024-04-25 3/week @ 2024-05-02 8/week @ 2024-05-09 58/week @ 2024-05-16 98/week @ 2024-05-23 108/week @ 2024-05-30 117/week @ 2024-06-06 178/week @ 2024-06-13 188/week @ 2024-06-20 168/week @ 2024-06-27 164/week @ 2024-07-04 340/week @ 2024-07-11 316/week @ 2024-07-18

每月下载量 1,035

自定义许可协议

40KB
940

prost-serde-derive 是一个过程宏,用于使用 ProstSerde 对由 Prost 生成的结构体进行序列化和反序列化。

如何使用

当使用 tonic-build 时,将类型属性添加到结构体/枚举中,如下所示

fn main() {
    tonic_build::configure()
        .type_attribute("some.proto.SomeStruct", "#[derive(prost_serde_derive::Deserialize, prost_serde_derive::Serialize)]")
        // Add following if you have to allow missing non-nullable fields when deserializing (will be filled with the default value)
        .type_attribute("some.proto.SomeStruct", "#[prost_serde_derive(use_default_for_missing_fields)]")
        // Add following if you have to allow deserializing even if there are type errors
        .type_attribute("some.proto.SomeStruct", "#[prost_serde_derive(omit_type_errors)]")
        // Serializing/deserializing Prost enumerations are also available
        .type_attribute("some.proto.SomeEnum", "#[derive(prost_serde_derive::Deserialize, prost_serde_derive::Serialize)]")
        .compile(...);
}

当在您的 proto 中使用 bytes 类型时,请确保将 base64 包含到您的依赖中

依赖项

~2.5MB
~52K SLoC