谷歌开源 Kotlin 版本 gRPC
谷歌开源了 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 版本。
详细内容点此查看。
谷歌开源 Kotlin 版本 gRPC相关推荐
- 取代C++?谷歌开源编程语言Carbon,网友评价太真实了
目前,Carbon编程语言正处于实验阶段. 在编程语言的世界中,C++的地位举足轻重.在2022年5月的TIOBE编程语言排行榜中,C++位列第四.同样地,谷歌内部也在广泛使用C++. 图源:htt ...
- 谷歌开源Embedding可视化工具
谷歌开源Embedding可视化工具 导读 目前,在深度学习中可以利用多种方法或工具将特征信息转换为低维稠密的向量表示(Embedding),且Embedding在自然语言处理.知识图谱.推荐搜索.机 ...
- 谷歌开源 Python 代码漏洞查找工具 Atheris
聚焦源代码安全,网罗国内外最新资讯! 编译:奇安信代码卫士团队 谷歌安全专家又开源了另外一款自动化模糊测试工具,希望开发人员能够使用该工具在漏洞遭利用前,找到并修复漏洞.这款工具名为"At ...
- 谷歌开源漏洞扫描器“海啸”,专为大型企业服务
聚焦源代码安全,网罗国内外最新资讯! 编译:奇安信代码卫士团队 谷歌开源了一款漏洞扫描器,名为"海啸 (Tsunami)",专用于由数千个甚至是数百万个联网系统组成的大型企业网络 ...
- 谷歌开源文件访问漏洞审计工具 PathAuditor(详解)
聚焦源代码安全,网罗国内外最新资讯! 编译:奇安信代码卫士团队 本周一,谷歌宣布开放 PathAuditor 工具的源代码,帮助开发人员找到和文件访问相关的漏洞,不过它并非受谷歌官方支持的产品. 谷 ...
- 谷歌开源 VR 应用
谷歌带来了堪称 VR 领域的杀手级应用 Tilt Brush #0 DGS (by Netflix) » DGS 简介 | » DGS 仓库 Netflix 开源的 Domain Graph Serv ...
- 【小睿精选·第四期】谷歌开源更快、更高效的 TensorFlow 运行时 TFRT
[小睿精选] [小睿精选]第四弹来啦,本期共收录6条嵌入式资讯信息,希望可以帮到你.欢迎大家在文末留言,唠一唠你关注的话题,说不定下期就有你想要的惊喜! 1.中科蓝讯与阿里"平头哥" ...
- AI周报丨全新图像分类方法ViR,性能全面超越ViT;谷歌开源最大视觉模型V-MoE
01# 行业大事件 全新图像分类方法ViR,参数量下降85%,性能全面超越ViT 近一年来,视觉 Transformer(ViT)在图像任务上大放光芒,比如在图像分类.实例分割.目标检测分析和跟踪等任 ...
- 谷歌开源新模型EfficientNet,或成计算机视觉任务新基础
作者 | Mingxing Tan,Quoc V. Le,Google AI 译者 | 刘畅 责编 | 夕颜 出品 | AI科技大本营(id:rgznai100) 开发一个卷积神经网络(CNN)的成本 ...
最新文章
- ajax前后台交互 .net,使用ajax进行前后台的数据交互
- java之hibernate之 cascade和inverse
- (四)系统虚拟化关键技术
- aqs java 简书,Java并发之AQS原理
- HiccDS共享音乐列表
- 如何在 Asp.Net Core MVC 中处理 null 值
- 【CodeForces - 1150C】Prefix Sum Primes(思维)
- Linux下批量修改文件名
- 如何去除Druid数据监控广告?
- 腾讯云数据库三大产品线统一升级为TDSQL,这是要集中力量干大事! ​
- myeclipse中文界面改颜色_“颜色识别器”安卓APP功能详细介绍
- 额外参数_Redis的复制参数学习笔记
- 表达式求值详解(C++)
- 数字抽奖小程序_两款火爆的抽奖小程序,最高抽2000元现金红包 亲测提现8.59元秒到...
- messagedigest 图片加密_Java中MessageDigest来实现数据加密的方法
- MDI-jade化工软件的安装
- 公众号滑动图代码_微信公众号的代码块插入,及一键排版
- Lumion 11学会像真正的专业人士一样渲染
- 手撸springmvc乞丐版
- 文件夹右击一直转圈圈
热门文章
- python数据类型可变和不可变_python可变数据类型vs不可变数据类型
- apache服务器_Apache的简介与配置(上)
- spring ioc原理_干了5年的Java面试官,把他喜欢问的几十个Spring面试题告诉我了
- 电商美工节日放假页面交稿了么?年味页面看这里
- 值得收藏的图片网站,设计素材不愁,还能承包你一年壁纸
- webstorm代码行数统计_来测试下 2019 你一共写了多少行代码?
- Windows下多线程的使用
- python sqlite3 增删改查(最基本的增删改查)
- 高性能计算(HPC)的前景、如何学习HPC
- Conditional Jump Instructions