muito interessante sua colocação sobre o Protobuff, não conhecia e além disso são formas interessantes de resolver os problemas que se iniciaram errado e alguém provavelmente pode ter tido a mesma idéia mas preferiram deixar o jogo que já estava funcionando a 10 anos

EDIT: vale um post explicando o protobuff? Eu meio que entendi a teoria rs. e no caso existe um framework? escrevo human-readable e converte para protobuff?

Bom, eu usei pouco o Protobuf, então não sei se entendo tanto a ponto de escrever um post (talvez um introdutório, veremos).

A ideia básica é que vc cria um arquivo contendo o formato da mensagem (por exemplo, "Usuario" com os campos "id" e "nome", etc), e o compilador do Protobuf gera o código correspondente na linguagem desejada. Na documentação tem a lista de linguagens.

Basicamente, ele cria as classes que correspondem à mensagem que vc definiu. Aí vc usa essas classes para preencher com os dados e depois escreve tudo no arquivo binário. Este arquivo, por sua vez, pode ser lido por código em qualquer outra linguagem (desde que tenha sido gerado pelo mesmo arquivo com o formato).

Quanto a questão do human readable, já tem funções prontas para converter de/para texto (tanto para JSON quanto para um formato de texto próprio), bem útil para debugar. Não sei se tem framework pronto, mas meu chute é que alguém já deve ter feito :-)

Fiz um post sobre Protobuf, o objetivo é ser apenas uma introdução, mas acho que dá pra pegar a ideia geral da coisa:

https://www.tabnews.com.br/kht/protobuf-um-formato-binario-bem-compacto-ou-devo-usar-json-pra-tudo

Boa leitura! :-)

Muito obrigado por disponibilizar! Ficou muito bem organizado e entendível, melhor resposta que do ChatGPT kkkkk Espero um dia precisar usar isso, na teoria eu entendi tudo :)