谷歌開源 Kotlin 版本 gRPC

2021-01-08 開源中國

谷歌開源了 gRPC-Kotlin/JVM,讓開發者可以在 Kotlin 項目中更方便地使用 gRPC,以更簡單的方式構建可靠的網絡連接服務。

gRPC 是谷歌開源的高性能、通用 RPC 框架,支持多種程式語言,包括 C++、Java、Objective-C、Python、Ruby、Go、C# 與 Node.js 等。gRPC 基於 Protocol Buffers,它面向移動和基於 HTTP/2 標準設計,帶來諸如雙向流、流控、頭部壓縮、單 TCP 連接上的多復用請求等特性。這些特性使得其在行動裝置上表現更好,更省電且節省空間佔用。

谷歌認為,將 gRPC 與世界上第二流行的 JVM 程式語言 Kotlin 結合,開發者可以構建從行動應用程式到雲端微服務的一切。此項目構建在 gRPC 的 Java API 之上,提供了對 Kotlin 友好的 gRPC 類,支持 Kotlin 協程。

下面來看一個例子。首先需要一個 proto 定義,這是一個語言無關的服務接口定義:

運行 gRPC Kotlin 生成器之後,能夠以協程的形式實現服務:

並從客戶端異步調用它:

協程非常適合用於異步編程,而 Kotlin 版本的 gRPC 則使它變得更容易。

開發者如果希望在自己的項目中使用 gRPC Kotlin,需要同時添加生成器和 grpc-java 配置。目前 gRPC Kotlin 仍處於測試階段,初始版本為 0.1.1 版本。

相關焦點

  • gRPC 1.21.0 發布,谷歌開源的高性能 RPC 框架
    grpc 1.21.0 發布了。
  • gRPC 1.30.1 發布,谷歌開源的高性能 RPC 框架
    gRPC 1.30.1 發布了。
  • 眾包翻譯文檔分享 |《 gRPC 官方文檔中文版》
    《gRPC 官方文檔中文版》日前在開源中國眾包平臺翻譯完成,現發布與各位 OSCer 共享:http://doc.oschina.net/grpcgRPC  是一個高性能
  • GRPC:谷歌發布的首款基於HTTP/2和protobuf的RPC框架
    GRPC是一個高性能、開源、通用的RPC框架,面向移動和HTTP/2設計,是由谷歌發布的首款基於Protocol Buffers的RPC框架。目前提供C、Java和Go語言版本,這三個版本的源碼全都託管在Github上,分別是:grpc, grpc-java, grpc-go。
  • gRPC首頁、文檔和下載 - RPC 框架 - OSCHINA - 中文開源技術交流...
    gRPC是一個高性能、開源和通用的 RPC 框架,面向移動和 HTTP/2 設計。目前提供 C、Java 和 Go 語言版本,分別是:grpc, grpc-java, grpc-go. 其中 C 版本支持 C, C++, Node.js, Python, Ruby, Objective-C, PHP 和 C# 支持.
  • 眾包翻譯文檔分享 |《 gRPC 官方文檔中文版》 - OSCHINA - 中文...
    《gRPC 官方文檔中文版》日前在開源中國眾包平臺翻譯完成,現發布與各位 OSCer 共享:http://doc.oschina.net/grpcgRPC  是一個高性能
  • gRPC 1.8.2 發布,Google 高性能 RPC 框架
    gRPC 1.8.2 已發布,該版本主要是修復 bug,具體如下:下載地址gRPC 是一個高性能、開源、通用的 RPC 框架,面向移動和 HTTP/2 設計
  • 微軟正式發布 gRPC-Web for .NET 支持多種程式語言
    今年一月份的時候,微軟曾宣布對 gRPC-Web for .NET 的實驗性支持,現在它已正式發布。  gRPC 是谷歌開源的高性能、通用 RPC 框架,支持包括 .NET 在內的多種程式語言。它面向移動和基於 HTTP/2 標準設計,但當前,瀏覽器中無法實現 gRPC HTTP/2 規範,因為沒有瀏覽器 API 能夠對請求進行足夠的細粒度控制。
  • 微軟正式推出 gRPC-Web for .NET
    今年一月份的時候,微軟曾宣布對 gRPC-Web for .NET 的實驗性支持,現在它已正式發布。gRPC 是谷歌開源的高性能、通用 RPC 框架,支持包括 .NET 在內的多種程式語言。它面向移動和基於 HTTP/2 標準設計,但當前,瀏覽器中無法實現 gRPC HTTP/2 規範,因為沒有瀏覽器 API 能夠對請求進行足夠的細粒度控制。gRPC-Web 是解決此問題並使 gRPC 在瀏覽器中可用的標準化協議。gRPC-Web 即 gRPC for Web Clients。
  • 微軟正式推出 gRPC-Web for .NET 面向移動和基於 HTTP/2 標準設計
    今年一月份的時候,微軟曾宣布對 gRPC-Web for .NET 的實驗性支持,現在它已正式發布。  gRPC 是谷歌開源的高性能、通用 RPC 框架,支持包括 .NET 在內的多種程式語言。它面向移動和基於 HTTP/2 標準設計,但當前,瀏覽器中無法實現 gRPC HTTP/2 規範,因為沒有瀏覽器 API 能夠對請求進行足夠的細粒度控制。
  • 什麼樣的 RPC 才是好用的 RPC
    谷歌 gRPCgRPC最近發布了1.0版本,他是谷歌公司用c++開發的一個RPC框架,並提供了多種客戶端。協議定義先定義一個.proto的文件,例如    // Obtains the feature at a given position.
  • 花椒服務端 gRPC 開發實踐
    為了讓客戶端更專注業務實現,降低接口聯調測試成本,我們選用了 gRPC 方案。gRPC 是一個高性能、通用的開源 RPC 框架,由 Google 開發並基於 HTTP/2 協議標準而設計,基於 ProtoBuf(Protocol Buffers)序列化協議開發,且支持當前主流開發語言。
  • gRPC 1.30.0 發布,谷歌開源的高性能 RPC 框架
    gRPC 1.30.0 發布了。
  • golang gRPC 負載均衡方案
    import &34;import &34;server = grpc.NewServer( grpc.KeepaliveParams(keepalive.ServerParameters{MaxConnectionAge: 2 * time.Minute}),)
  • 聊聊我開源RPC框架的那些事
    >02 開源的魅力開源出來之後,大部小夥伴都是比較支持的,有很多小夥伴都參與了進來一起完善開源之後,也經常會受到像:「你有本事別用現成的框架寫一個啊?」>開源絕對是編程領域最美妙的事情之一,大幅提高了我們的生產力。
  • Google 高性能 RPC 框架 gRPC 1.0.0 發布
    gRPC是一個高性能、開源、通用的RPC框架,面向移動和HTTP/2設計,是由谷歌發布的首款基於Protocol Buffers的RPC框架。
  • .NET 開源項目 StreamJsonRpc 介紹「上篇」
    StreamJsonRpc 是一個實現了 JSON-RPC 通信協議的開源 .NET 庫,在介紹 StreamJsonRpc目前 JSON-RPC 的版本已發展到 2.0,JSON-RPC 2.0 與 1.0 的約定規範是不一樣的。2.0 包含一個名為 jsonrpc 且值為 2.0 的成員,而 1.0 版本是不包含的。所以我們可以很容易在兩個版本間區分出 2.0。JSON-RPC 在客戶端與服務端之間交換的所有成員名應是區分大小寫的,函數、方法、過程都認為是可互換的。
  • Kotlin入門(1)-環境配置
    JetBrains,作為目前廣受歡迎的Java IDE IntelliJ 的提供商,在 Apache 許可下已經開源其Kotlin 程式語言。kotlin官方網站2.特點簡潔務實安全互操作性如何下載kotlin包??
  • 開源軟體之Kotlin:試幾個IDE,新手認為VScode編程Kotlin比較香
    當然,這裡的標題要闡述的話題,和一人客以前開源系列的文章風格是強相關的。所以這裡其實在探討程式語言Kotlin的集成開發環境IDE的問題,是以新手為核心,以開源跨平臺和免費為標準,特此說明,以此避免不必要的口舌紛爭。
  • Kotlin 一統天下?Kotlin/Native 支持 iOS 和 Web 開發
    該版本引入了一系列新功能,包括對多平臺項目的實驗性支持 —— 允許開發者在針對 JVM 和 JavaScript 的模塊之間共享代碼,以及多項對語言方面的改進 —— 包括支持在注釋中使用數組字面量。更多關於 1.2 版本新功能的內容,點此查看。此外,值得關注的就是協程這個特性了。雖然協程仍然被標記為實驗性狀態,但官方特意說明了這裡「實驗性」代表的含義。