I agree with Jens.
Currently I think Google protobuf is the best alternative, now that blinkprotocol never seem to reach version 1.0 final, and no C++ reference implementation is available. However, protobuf is far from perfect, no optionals (proto3), AnyOf is a clunky version of dynamic groups, no decimals, etc.
Since there is an official JSON mapping to blinkprotocol (just as for proto3), the need for a JavaScript implementation is not as important (when used in e.g. a REST API). So I think C++ and Java are a minimum.
So, what I'd like to have:
* Reference C++ implementation
* Reference Java implementation (jblink is a start, msgcodec is another...).
* blinkc (protoc equivalent) to generate message classes (with nice builder pattern). A plus if blinkc would be available in Java (as well) to fit into the Java build ecosystem (maven/gradle).
* Protobuf style tag-value format, to simplify schema upgrades in many scenarios. Would be simple to introduce, since there are basically only two datatypes on the wire (VLC and binary) + repeated of each them.
* Official documentation format in blink schema, for messages, fields, enums, types etc. These should be available in the SchemaExchange messages. Compare e.g. proto comments + descriptor.proto or Javadoc. Yes, @doc annotation works, but not so user friendly.
* Final 1.0 version
Perhaps blinkprotocol should be moved to a more standalone github open source project, with e.g. the Java package 'org.blinkprotocol' instead of 'com.pantor' etc?
The page
blinkprotocol.org could be moved to github pages. This way blinkprotocol would not depend so much on a single company that no longer prioritize it, and at the same time lower the threshold for external contributors.
If there would be an effort into making blinkprotocol final and truly open source, then I'd be happy to contribute :-)
Regards,
Mikael