If “like Google’s protocol buffers,” you mean the ability to generate code for multiple languages, then this probably doesn’t exist. Emulation of types of sums in languages that do not support them is inconvenient at best (try matching the template by boost: option, for example). Therefore, it makes sense to leave them if the main goal is the main languages.
If you are satisfied using only haskell / ocaml / all kinds of choices. Haskell has cereal , binary , safecopy, and possibly others. There is a piqi project for ocaml .
source share