erlang_protobuffs,使用的是我自己fork出来的分支,因为修改了下write file部分,如果内容相同的话,就不写入,避免修改文件,这样include的那些pb.hrl,不会频繁的编译代码。

git clone git@gitcafe.com:Roowe/erlang_protobuffs_example.git

然后执行下./bootstrap,会自动去git clone erlang_protobuffs。然后根据提示操作就可以了。

工具脚本是protoc-erl,可以稍微改改路径就可以用了,支持生成单个proto文件或者多个proto文件。

生成的头文件放在include/,erl放在src,这个可以根据自己需求做调整。

补充

  • 生成的hrl,msg name全部被转成小写,并且每个record声明前都会加ifndef的东西。
  • 模块名加了_pb的后缀

这两个因素影响了后面要写的gpb,gpb默认不会加这些“料”,但是有办法加。已经在使用erlang_protobuffs,也可以无痛切换到gpb的。