Существует ли хорошая реализация C для буферов протокола Google
Google официально предоставляет С++-реализацию буферов протокола Google,
но я ищу реализацию C.
Я не буду использовать его сам, но я надеюсь, что я смогу использовать этот инструмент для создания
C для наших определений буферов протокола Google, которые я могу передать разработчикам C.
Я не ищу никаких функций RPC, просто кодирования и декодирования сообщений буфера протокола Google.
Ответы
Ответ 1
Используйте protobuf-c (теперь на Github как protobuf-c).
С их официального сайта:
Этот пакет предоставляет генератор кода и библиотеки времени выполнения для использования Буферы протокола из чистого C (не C++).
Он использует модифицированную версию protoc
под названием protoc-c
.
Ответ 2
Там также Nanopb, который является более легким.
Например, он не сохраняет имена сообщений и полей в коде, поэтому интроспекция (поиск по имени) невозможен.
Ответ 3
pbtools - это еще одна альтернатива. Он генерирует быстрый исходный код на C для кодирования и декодирования протобуф-сообщений.
Кроме того, здесь есть список других реализаций C: https://github.com/protocolbuffers/protobuf/blob/master/docs/third_party.md