Message
Messages are the most complex concept in Protobuf. This is why we are going to split this section into multiple subsections. We will talk about these concepts in the following order:
- Options: They are repeated in all the following concepts
- Field, reserved, map, and oneof: These concepts are all about defining fields and specifying some serialization behavior
- Nested messages
EBNF – Message syntax
messageBody = "{" { field | enum | message | option | oneof | mapField | reserved } "}" message = "message" ident messageBody
Option
Since we are already familiar with options at this point, we can skip them. However, I still want to mention all the types that you can look for in the descriptor.proto (check https://github.com/protocolbuffers/protobuf/blob/main/src/google/protobuf/descriptor.proto) file so that you can check all the possible options available. Here is the list per concept:
message ->
MessageOptions...