How does protocol buffer handle versioning?

Google designed protobuf to be pretty forgiving with versioning:

  • unexpected data is either stored as “extensions” (making it round-trip safe), or silently dropped, depending on the implementation
  • new fields are generally added as “optional”, meaning that old data can be loaded successfully

however:

  • do not renumber fields – that would break existing data
  • you should not normally change the way any given field is stored (i.e. from a fixed-with 32-bit int to a “varint”)

Generally speaking, though – it will just work, and you don’t need to worry much about versioning.

Leave a Comment

Hata!: SQLSTATE[HY000] [1045] Access denied for user 'divattrend_liink'@'localhost' (using password: YES)