Wire:基於安卓的谷歌的Protocol Buffers的開源實現

banq發表於2021-06-09

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

相關文章