设为首页收藏本站

LUPA开源社区

 找回密码
 注册
文章 帖子 博客
LUPA开源社区 首页 业界资讯 开源资讯 查看内容

谷歌开源Kotlin版本gRPC

2020-4-20 14:47| 发布者: joejoe0332| 查看: 1065| 评论: 0|原作者: oschina|来自: oschina

摘要: 谷歌开源了 gRPC-Kotlin/JVM,让开发者可以在 Kotlin 项目中更方便地使用 gRPC,以更简单的方式构建可靠的网络连接服务。gRPC 是谷歌开源的高性能、通用 RPC 框架,支持多种编程语言,包括 C++、Java、Objective-C、 ...

谷歌开源了 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 版本。

详细内容点此查看。


酷毙

雷人

鲜花

鸡蛋

漂亮
  • 快毕业了,没工作经验,
    找份工作好难啊?
    赶紧去人才芯片公司磨练吧!!

最新评论

关于LUPA|人才芯片工程|人才招聘|LUPA认证|LUPA教育|LUPA开源社区 ( 浙B2-20090187 浙公网安备 33010602006705号   

返回顶部