Что касается protobuf, я вообще не понимаю его смысла в эмбеде. Этот протокол разрабатывался прежде всего как замена JSON, и как такая замена он неплох. Но в случаях, когда мы имеем нативную возможность работать со структурами, конструкции вроде protobuf не имеют никакого смысла.