首页 > 其他分享 >WebAssembly+gRPC web=未来?

WebAssembly+gRPC web=未来?

时间:2023-02-25 08:22:26浏览次数:31  
标签:WebAssembly 浏览器 编程语言 Web 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支持。 例如,不支持客户端和双向流,并且对服务器流的支持也很有限。

 

 

 

 

标签:WebAssembly,浏览器,编程语言,Web,gRPC,web,客户端
From: https://www.cnblogs.com/hnxxcxg/p/17153709.html

相关文章

  • 501, b'Mail from address must be same as authorization user.', 'webmaster@localh
    问题:重置密码时出错SMTPSenderRefusedat/users/password_reset/ (501,b'Mailfromaddressmustbesameasauthorizationuser.','webmaster@localhost')解决方案......
  • JAVAWEB-NOTE02-SQL
    目录SQL简介SQL通用语法SQL分类DDL操作数据库操作表navicat连接本地数据库DMLDQL基础查询条件查询分组查询聚合函数分组查询排序查询分页查询SQL简介●英文:Structured......
  • web开发-请求参数处理
    请求参数处理请求映射做所有web开发之前最想要做的就是请求映射编写一个controller,在每一个方法上注解@RequestMapping("/..."),来声明方法处理什么请求。这个声明过程......
  • Web开发
    学习目标(深入Web原理)SpringMVC自动配置简单功能介绍请求参数处理数据影响与内容协商视图解析与模板引擎拦截器跨域异常处理原生Servlet敲入式Web容器定制化......
  • 如何实现 Web 页面更新版本时候不会影响到使用旧版本的用户 All In One
    如何实现Web页面更新版本时候不会影响到使用旧版本的用户AllInOne用户无感知更新API非覆盖式发布自动刷新(......
  • 前端实现电子签名(web、移动端)通用组件
    前言在现在的时代发展中,从以前的手写签名,逐渐衍生出了电子签名。电子签名和纸质手写签名一样具有法律效应。电子签名目前主要还是在需要个人确认的产品环节和司法类相关的......
  • 前端实现电子签名(web、移动端)通用组件
     <!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metahttp-equiv="X-UA-Compatible"content="IE=edge"><metaname="viewport"cont......
  • Javaweb----Maven环境配置
    Maven环境配置maven的作用:写javaweb项目时,自动导入相应的java包。maven的环境变量配置2.1进入maven的官网下载maven:链接地址https://maven.apache.org/download.c......
  • 一台服务器部署ShareWAF,后面接多台Web服务器,该如何配置?
    ShareWAF做为WAF,可以不只是WAF,还可以充当负载或路由的角色。比如可以有这样一种部署架构: 在此结构中,ShareWAF部署于一台服务器,后面接多台独立的WEB服务器。ShareWAF......
  • web-view
    https://developers.weixin.qq.com/miniprogram/dev/component/web-view.html  https://www.cnblogs.com/imgss/p/8504185.html昨天爬了一下午坑才出来的我向大家......