歡迎您光臨本站 註冊首頁

谷歌開源 Kotlin 版本 gRPC

←手機掃碼閱讀     admin @ 2020-04-20 , reply:0

谷歌開源了 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 定義,這是一個語言無關的服務介面定義:


 message HelloRequest {
   string name = 1;
 }
 
 message HelloReply {
   string message = 1;
 }
 
 service Greeter {
   rpc SayHello (HelloRequest) returns (HelloReply) {}
 }

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


 private class HelloWorldService: GreeterCoroutineImplBase() {
  override suspend fun sayHello(request: HelloRequest) = HelloReply
      .newBuilder()
      .setMessage("Hello ${request.name}")
      .build()
 }

並從客戶端非同步呼叫它:


 val request = HelloRequest.newBuilder().setName(name).build()
 val response = async { stub.sayHello(request) }
 println("Received: ${response.await().message}")

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

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

詳細內容點此檢視


[admin ]

來源:OsChina
連結:https://www.oschina.net/news/115011/use-grpc-with-kotlin
谷歌開源 Kotlin 版本 gRPC已經有188次圍觀

http://coctec.com/news/all/show-post-230821.html