Si vous recherchez une solution C++, Kenton Varda a soumis un patch à protobuf vers août 2015 qui ajoute le support des appels writeDelimitedTo() et readDelimitedFrom() qui sérialisent/désérialisent une séquence de messages proto vers/depuis un fichier d'une manière compatible avec la version Java de ces appels. Malheureusement, ce patch n'a pas encore été approuvé, donc si vous voulez cette fonctionnalité, vous devrez la fusionner vous-même.
Une autre option est que Google a ouvert le code de lecture/écriture du fichier protobuf à travers d'autres projets. Le site ou-outils contient, par exemple, les classes RecordReader y RecordWriter qui sérialisent/désérialisent un flux proto vers un fichier.
Si vous voulez des versions autonomes de ces classes qui n'ont presque pas de dépendances externes, j'ai un fork de or-tools qui ne contient que ces classes. Voir : https://github.com/moof2k/recordio
Lire et écrire avec ces classes est très simple :
File* file = File::Open("proto.log", "w");
RecordWriter writer(file);
writer.WriteProtocolMessage(msg1);
writer.WriteProtocolMessage(msg2);
...
writer.Close();