Да, это в значительной степени идея. Не должно иметь значения, какую библиотеку вы используете, если она соответствует спецификации. Обратите внимание, что одни и те же данные могут представляться немного по-разному, например, порядок полей не должен иметь значения для клиента, и хотя обычно для клиентов - это запись полей в порядке возрастания, от клиентов явно требуется обрабатывать поля в любом порядке. Все, что я здесь говорю, это то, что это не может быть точно такими же байтами в том же порядке , но это должно нормально работать с любого клиента.
Обратите внимание, что некоторые реализации могут предлагать дополнительные функции (* кашель *, как мой предлагает поддержку наследования), предназначенные для использования в основном только в рамках этого одного клиента. В этом случае я бы: ожидал, что эти функции будут очевидны при использовании, и b: он должен всегда по-прежнему генерировать действительный поток protobuf (вы можете просто проигнорировать эти поля или поддержать их как bytes
для поездки в оба конца).