> Stack mentioned a compatibility mode that uses the proto2 semantics. We can define protobuf's version by using syntax = "proto2" or syntax = "proto3" in proto files with proto3 compiler. I think this is what Stack mentioned as compatibility mode.
https://github.com/golang/protobuf/blob/master/proto/proto3_proto/proto3.proto#L32 > Did some more googling, found this: > > https://groups.google.com/d/msg/protobuf/Z6pNo81FiEQ/fHkdcNtdAwAJ > > Feng Xiao appears to be a Google engineer, and suggests workarounds like > packing the fields into a byte type. No mention of a PB2 compatibility mode. > Also here: > > https://groups.google.com/d/msg/protobuf/bO2L6-_t91Q/-zIaJAR9AAAJ > > Participants say that unknown fields were dropped for automatic JSON > encoding, since you can't losslessly convert to JSON without knowing the > type. Feng mentions in the thread: > The following are the main new features in language version 3: Does it mean that, if the syntax = "proto3", there are no compatibility mode because of the changes of how to handle enum or missing fields between proto3 "specification" and proto2 "specification"? On the other hand, if files are compiled with the syntax = "proto2", I think we could treat the generated files as with protobuf 2.x "runtime". Best - Tsuyoshi --------------------------------------------------------------------- To unsubscribe, e-mail: common-dev-unsubscr...@hadoop.apache.org For additional commands, e-mail: common-dev-h...@hadoop.apache.org