Wire:基於安卓的谷歌的Protocol Buffers的開源實現
Google 的 Protocol Buffers 的開源實現,專為 Android 和 Java 設計。
Protocol Buffers 模式語言和二進位制編碼均由 Google 定義。Wire 是 Square 的一個獨立實現,專為 Android 和 Java 設計。
對於模式中定義的每種訊息型別,Wire 都會生成一個不可變的模型類及其構建器。生成的程式碼看起來像您手工編寫的程式碼:它有文件、有格式並且很簡單。Wire 的 API 應該讓喜歡Effective Java 的程式設計師感到賓至如歸。
Wire 中有一些有趣的設計決策:
- Wire 訊息宣告public final欄位而不是通常的 getter 方法。這減少了生成的程式碼和執行的程式碼。更少的程式碼對 Android 程式尤其有益。
- Wire 避免了大小寫對映。picture_urls在模式中宣告的欄位會產生一個 Java 欄位, picture_urls而不是傳統的pictureUrls駝峰式大小寫。雖然這個名字一開始感覺很彆扭,但當你使用grep或更復雜的搜尋工具時,它會很棒。在模式、Java 原始碼和資料之間導航時不再需要對映。它還為呼叫程式碼提供了一個溫和的提醒,即 proto 訊息有點特殊。
- 原始型別總是裝箱的。如果某個欄位不存在,則其值為null。這用於自然可選的欄位,例如時期未知的恐龍。由於模式演變,欄位也可能為空:如果明天我們在carnivore訊息定義中新增一個布林值,今天的資料將沒有該欄位的值。
從 3.0.0 版本開始,Wire 可以生成 Kotlin 程式碼。請參閱 Wire Compiler & Gradle Plugin以瞭解如何配置您的構建。
相關文章
- Protocol Buffers 系列 (1) - 什麼是Protocol Buffers?Protocol
- Protocol Buffers 在 iOS 中的使用ProtocoliOS
- 谷歌將在 Kotlin 中支援 Protocol Buffers 資料格式谷歌KotlinProtocol
- 基於Flutter實現的 IT換換(已開源)Flutter
- Protocol Buffers 3 學習Protocol
- 安卓開發:安卓底部選單欄的實現,RadioGroup 和Fragment安卓Fragment
- Python 在Python中使用Protocol Buffers基礎介紹PythonProtocol
- 還在用JSON? Google Protocol Buffers 更快更小 (實踐篇)JSONGoProtocol
- C#語言下使用gRPC、protobuf(Google Protocol Buffers)實現檔案傳輸C#RPCGoProtocol
- 基於Vue實現可以拖拽排序的樹形表格(已開源)Vue排序
- 基於RecordRTC的安卓端上傳錄影優化安卓優化
- 基於.NET 5實現的開源通用許可權管理平臺
- 很值得收藏的安卓開源控制元件庫安卓控制元件
- 基於.Net開發的ChatGPT客戶端,相容Windows、IOS、安卓、MacOS、LinuxChatGPT客戶端WindowsiOS安卓MacLinux
- 鴻蒙系統和安卓的區別 鴻蒙系統是基於安卓嗎鴻蒙安卓
- [資源]基於 Pytorch 的 TorchGAN開源了!PyTorch
- 開源一個自用的Android IM庫,基於Netty+TCP+Protobuf實現。AndroidNettyTCP
- 分享一個開源的windows安卓投屏工具,scrcpyWindows安卓
- 恢復安卓谷歌套件安卓谷歌套件
- 谷歌開源的 GAN 庫–TFGAN谷歌
- 基於開源Tars的動態負載均衡實踐負載
- 基於jquery實現的ExceljQueryExcel
- JsonUtil(基於Jackson的實現)JSON
- 基於JVMTI的Agent實現JVM
- 基於YARP實現的FastGithubASTGithub
- 基於註解的springboot+mybatis的多資料來源元件的實現Spring BootMyBatis元件
- 基於小米開源 Soar 的 Hyperf 元件元件
- 基於efcore的分表元件開源元件
- 還在用JSON? Google Protocol Buffers 更快更小 (原理篇)JSONGoProtocol
- 基於Flutter實現的仿開眼視訊AppFlutterAPP
- 基於微服務框架Micronaut和Eventuate Tram實現分散式事務的開源案例微服務框架分散式
- [開源] gev (支援 websocket 啦): Go 實現基於 Reactor 模式的非阻塞網路庫WebGoReact模式
- 【開源】基於.net6+gtksharp實現的Linux下的圖形介面串列埠除錯工具Linux串列埠除錯
- 基於 appium 的安卓 UI 及多裝置相容測試工具APP安卓UI
- Web新趨勢:HTML over-the-wire的實現Unpoly框架WebHTML框架
- 實現在安卓平臺下的即時通訊安卓
- 基於Masstransit實現Eventbus的功能
- 基於Python的Xgboost模型實現Python模型