開源一個動態解析protobuf的工具


好久沒寫博客了,主要是這一年技術沒啥長進都打雜了,還有就是生活瑣事越來越多,人也越來越懶了…… 之前項目中用到了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地址:https://github.com/zhanjindong/protobuf-tool

其中動態解析用的是百度的jprotobuf,但是官方的版本不支持類似上面“Entry”嵌套“Entry”的格式,還有不支持repeated,我fork了一個版本:https://github.com/zhanjindong/jprotobuf

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM