WebAssembly+gRPC web=未来?
WebAssembly+gRPC web=未来?
WebAssembly是什么
WebAssembly是一个可以使C#,Java,Golang等静态强类型编程语言,运行在浏览器中的标准,浏览器厂商基于此标准实现执行引擎。
在实现了WebAssembly标准引擎之后,浏览器中可以执行由其他语言编译成的wasm模块。使用强类型编程语言的好处显而易见:
- 可以选择更多的语言,编写前端逻辑
- 静态编程语言编译成的字节码,相对于JS这种脚本语言执行效率更高
- 可以使用静态编程语言生态中的强大类库
需要注意的是,WebAssembly是一个完完全全的前端框架,只是逻辑代码不再使用JS编写,而是使用C#,Java,Golang等静态强类型编程语言编写。
gRPC Web是什么
gRPC是一种与语言无关的的高性能远程过程调用(RPC)框架。Grpc有以下优点
- 现代高性能轻量级 RPC 框架。
- 协定优先 API 开发,默认使用协议缓冲区,允许与语言无关的实现。
- 可用于多种语言的工具,以生成强类型服务器和客户端。
- 支持客户端、服务器和双向流式处理调用。
- 使用 Protobuf 二进制序列化减少对网络的使用。
而gRPC Web是Grpc的前端实现版本,可以使浏览器应用直接与gRPC交互。
有了gRPC Web,我们可以直接在WebAssembly中调用gRPC Server,而不用再通过传统的Http请求方法调用。
gRPC使用Protobuf (协议缓冲区)作为有效负载的格式,并支持所有类型的流传输:
- Server-side streaming
服务器端流 - Client-side streaming
客户端流 - Bidirectional streaming
双向流
从性能的角度来看,Protobuf是一种有效的二进制消息格式。 Protobuf序列化会产生较小的消息负载,这在移动和Web应用程序等有限带宽的情况下非常重要。
gRPC通过服务器和客户端之间共享的.proto文件定义服务和消息的约定 。 它允许您自动生成客户端库。 gRPC在平台和实现之间是一致的。
不能在Web浏览器中使用gRPC,因为它需要HTTP / 2二进制协议。 不用担心,该问题的解决方案称为gRPC-Web ,它使gRPC在浏览器中可用。 NET的gRPC-Web实现也已正式发布。
公平地说, gRPC-Web提供有限的gRPC支持。 例如,不支持客户端和双向流,并且对服务器流的支持也很有限。
本文来自博客园,作者:{咏南中间件},转载请注明原文链接:https://www.cnblogs.com/hnxxcxg/p/17153709.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
2012-02-25 如何让中间层MIDAS/DATASNAP支持大量的并发用户并且控制连接数量