Preliminary support for protobuf 3.0
opinali opened this issue · 1 comments
opinali commented
Major new release finally out, or close: 3.0.0-alpha-2 available now, together with the first public gRPC also in alpha status. The openrtb-core and doubleclick-core/doubleclick-openrtb libraries may support proto3, after proto3 is released as GA.
Some expected advantages:
- Official support for a wider range of languages and platforms (useful at least to compile the RTB model, since utilities like validator, etc. are Java-specific).
- New
Any
type will make OpenRTB extensions less verbose / easier to use. - Built-in support for JSON, if good enough (esp. adequate support for extensions), may allow us to remove lots of code, and also make at least the openrtb-core library way more useful to arbitrary languages since the RTB model + JSON serialization are 90% of users' needs.
- The JavaNano option may be useful for Android, especially if the rest of the library is also ported to Android. Idea to consider if there's significant user demand.
Expected disadvantages:
- Breaking change:
Any
is nicer, but not backwards compatible with the proto2 extension system. But that's a good tradeoff, and impacts only theext
fields. - Breaking change: No
hasXxx()
methods anymore. Easy to fix, but potentially lots of small changes for people owning significant code.
Current plan:
- Version 0.8.0 of the libraries will be tested with the proto3 compiler and runtime library. They provide full backwards compatibility for proto2, so everything should just work, without any changes or impact.
- After the proto3 GA, the next release of the openrtb libraries will depend on proto3 for compilation and runtime. But they will keep proto2 syntax, so no impact at all yet.
- Final step will be moving the libraries to proto3 syntax.
opinali commented
Preliminary support implemented as planned in the 0.8.0 betas. Reopen this or file new bug for tracking future changes for proto3 syntax.