Skip to main content
Version: Latest-3.5

Protobuf Guides

Never use required​

As the project involving, any fields may become optional. But if it is defined as required, it can not be removed.

So required should not be used.

Never change the ordinal​

To be back compatible, the ordinal of the field SHOULD NOT be changed.

Naming

file name​

The names of messages are all lowercase, with underscores between words. Files should end in .proto.

my_message.proto            // Good
mymessage.proto // Bad
my_message.pb // Bad

Message Name​

Message names start with a capital letter and have a capital letter for each new word, with no underscores, and with PB as postfix: MyMessagePB

message MyMessagePB       // Good
message MyMessage // Bad
message My_Message_PB // Bad
message myMessagePB // Bad

field name​

The names of messages are all lowercase, with underscores between words.

optional int64 my_field = 3;        // Good
optional int64 myField = 3; // Bad