Если под «подобными буферам протокола Google» вы подразумеваете способность генерировать код для нескольких языков, то, вероятно, такой вещи не существует.Эмулировать типы сумм в языках, которые их не поддерживают, в лучшем случае неудобно (попробуйте сопоставить паттерны при форсировании: например, вариант).Так что имеет смысл оставить их, если основной целью являются основные языки.
Если вы удовлетворены использованием только haskell / ocaml / независимо от выбора.Для haskell существуют злаки , бинарные , safecopy и, возможно, другие.Существует piqi проект для ocaml.