`prost-serde-derive` is a procedural macro for serializing/deserializing structs generated by [Prost] with [Serde]. ## How to use When using [tonic-build], add type attribute to the structs/enums like following: ```rust 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(...); } ``` Make sure to include [base64](https://crates.io/crates/base64) to your dependencies when `bytes` type is used in your proto. [Prost]: https://github.com/tokio-rs/prost [Serde]: https://serde.rs [tonic-build]: https://github.com/hyperium/tonic