๐Ÿ“Protobuf: updating message types

  • int32, uint32, int64, uint64, bool are all compatible (+enum)

  • sint32, sint64 are compatible

  • string, bytes are compatible (as long as bytes are valid UTF-8)

  • embedded messages are compatible with bytes (if bytes contain an encoded version of message)

  • fixed32, sfixed32, fixed64, sfixed64 are compatible

  • optional and repeated are compatible

  • moving one/multiple optional fields into oneof is safe (as long as only one of the fields is present)

Backlinks