Protox is a great library to allow Protobuf to be used in Elixir.
While developing a span catcher for OpenTelemetry I found that I needed to decode a protobuf format message.
Here is the repo if you are interested:
https://github.com/chriseyre2000/span_eater
To construct the protobuf file I looked at the readme of opentelemetry_exporter, which pointed me to the protobuf definitions:
https://github.com/open-telemetry/opentelemetry-proto/tree/v0.11.0
I chose to simplify these into a single file (it’s not that large).
Protobuf is a wire format serializer. This means that if you send a Protobuf message any language that can use protobuf can read the message (provided that both side have the definition).
Given that this proto file has been implemented by a number of OpenTelemetry consumers it can be assumed to be stable.