博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
开源一个动态解析protobuf的工具
阅读量:6605 次
发布时间:2019-06-24

本文共 797 字,大约阅读时间需要 2 分钟。

好久没写博客了,主要是这一年技术没啥长进都打杂了,还有就是生活琐事越来越多,人也越来越懒了…… 之前项目中用到了Protobuf,然后测试发现这玩意不好测,总不能每次定个协议或者改下都要编译Java代码吧。于是我这边写了简单的工具,动态的解析PB文件。效果如下:

“选择请求协议”和“选择响应协议”就是选择定义的PB,比如下面这个文件:

package perf.pb;option optimize_for = LITE_RUNTIME;message Entry {    required string key = 1;    optional bytes value = 2;    repeated Entry extinfo = 3;}message Request {    repeated Entry entry = 1; } message Response { repeated Entry entry = 1; }

 另外工具支持一些简单的功能,比如“保存”,“另存为”(将PB文件和数据打包在一起),生成PB二进制的数据等:

我们用的http,但核心代码就是动态解析PB文件和将数据绑定到JTree上,有需要的朋友可以拿源码改下,因为急着实现功能,所以代码很乱。

 

关于PB文件格式有几点:

1)支持import,工具会自动处理引用;

2)支持repeated

3)支持默认值,包括枚举的默认值

4)必须要指定package

5)不支持message嵌套

还有如果运行有问题,看下你Java环境指向的jdk或jre的lib目录下有没有tools.jar,没有的话从别的目录拷过来就可以了。

 

GitHub地址:

其中动态解析用的是百度的jprotobuf,但是官方的版本不支持类似上面“Entry”嵌套“Entry”的格式,还有不支持repeated,我fork了一个版本:

 

转载地址:http://xngio.baihongyu.com/

你可能感兴趣的文章
php保存canvas生成的图片
查看>>
HTML5 定位
查看>>
禁止http 缓存的方法
查看>>
python windows下安装pip(三)
查看>>
Android图像处理(二)--Paint,Canvas,ColorMatrix详细
查看>>
Android 百度地图
查看>>
常见设计模式之【模板模式】
查看>>
Kolla - 使用docker安装部署openstack
查看>>
Mysql登录时提示1045的解决办法
查看>>
MySql 远程连接中phpmyadmin的设置
查看>>
类型判断时instanceof和equals的不同用法
查看>>
设计师与客户:迁就难出好设计
查看>>
discuz 门户diy实现翻页功能的修改记录
查看>>
授之以渔-运维平台应用模块一(应用树篇)
查看>>
pcDuino裸板程序-led
查看>>
3d打印机要火了还需时日
查看>>
关于Nature的.net版框架
查看>>
Hp DL380服务器硬盘故障数据恢复过程
查看>>
RAID磁盘阵列技术及数据恢复原理
查看>>
JAVA 动态配置 (配置源={properties,redis})
查看>>