> when serializing, all signed integers need to be sign-extended to 64 bits, to support interop between different integer types
FWIW, I think it'd be awesome if the only wire integer format were a bignum, in order to support full interoperability between integer types. Maybe even do that same for floats, too …
https://github.com/google/protobuf/tree/master/conformance
Here are some of the quirks of protobuf:
I do think protobuf is a great technology overall. But it has some complexities too; I wouldn't want to oversell its simplicity and have people be unpleasantly surprised when they come across them later. :)