前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >为什么要在WebAssembly中使用Rust?【Programming】

为什么要在WebAssembly中使用Rust?【Programming】

作者头像
Potato
修改于 2019-11-25 07:14:08
修改于 2019-11-25 07:14:08
1.5K0
举报

了解为什么在Wasm中使用Rust而不是其他编程语言。

图片来源:TeroVesalainen via Pixabay CC0
图片来源:TeroVesalainen via Pixabay CC0

WebAssembly(Wasm)是一项技术,可以重塑我们为浏览器构建应用程序的方式。 它不仅使我们能够构建全新的Web应用程序类,而且还将使我们使用JavaScript编写的现有应用程序更加高效。

在有关Rust和Wasm生态系统状态的本文中,我将尝试解释为什么Rust是可以释放WebAssembly真正潜力的语言。

什么是WebAssembly?

WebAssembly是二进制文件格式,所有主要浏览器(IE 11除外)都已实现,以使虚拟机运行。 WebAssembly的启动和运行速度比JavaScript快得多,因为二进制格式对于浏览器而言非常简单,而且易于浏览器以高度优化的方式运行。 如果您对使WebAssembly与众不同的技术细节感兴趣,我建议您参阅Lin Clark在该主题上的文章 。

那么,为什么要使用它呢?

尽管我最初开始研究WebAssembly作为在另一种环境(即浏览器)中编写Rust的方法,但这并不是WebAssembly真正与众不同的原因。 我喜欢编写JavaScript(尤其是TypeScript),并且用JavaScript构建的围绕Web开发的生态系统是一笔巨大的财富,不应该被抛弃。当JavaScript的性能不够高时,WebAssembly会对它进行补充。

WebAssembly可用于编写整个Web应用程序或用性能接近本机的速度替换性能可能不足的少量现有应用程序。 另外,由于WebAssembly是一种类似于本机的程序集格式,因此许多语言都可以编译为它,这意味着在其他平台和Web之间共享代码现在更加实用。

其他语言

可以将许多不同的语言编译为WebAssembly,包括C#Go ,那么为什么不使用它们代替Rust? 尽管编程语言的使用始终受个人喜好影响,但有很多原因使Rust成为工作的最佳工具。 因为这些语言具有必须包含在WebAssembly二进制文件中的大型运行时,所以它们仅对新建项目才真正实用(即,它们仅可用作JavaScript替代品)。 Wasm上的该Go Wiki文章说,未压缩的可实现的最小二进制大小约为2MB。 这反映了我所见。 对于Rust来说,它的运行时极少(基本上只是一个分配器),“ hello,world”示例在我的机器上被编译为1.6KB,而没有任何编译后的大小优化(这可能会进一步降低它的大小)。

这并不是说浏览器中Go或C#的未来前景黯淡——我为这些努力可能带来的结果感到非常兴奋。 但现实情况是,这些技术可能始终是新建项目的最佳选择。

C和c++运行时非常小,就像Rust一样,因此可以实用地嵌入现有的应用程序和库。然而,Rust使用我们将在本系列其他文章中探讨的工具,很容易创建具有相当惯用的JavaScript接口的WebAssembly二进制文件,而c和c++中的过程则更加手动。在Rust的工具是绝对了不起的,我认为它使整个经验更加令人愉快。Rust也是一种内存安全的语言,这意味着c和c++中常见的一整类bug在safeRust中是不可能存在的。如果您已经习惯了存储JavaScript、Java和c#等安全语言(即使您不习惯),那么您可能希望使用Rust。

让我们继续

如果你对WebAssembly感兴趣,我仍然鼓励你去钻研那些WebAssembly支持的语言——不管是c++、c#还是其他什么语言。如果你有兴趣了解更多关于Rust的Wasm开发,请在评论中告诉我。接下来,我将介绍如何从JavaScript调用Rust。如果你想对比一下Rust的故事和其他语言的故事,比如c语言和Go语言,请告诉我,以后我会写更多。

本文系外文翻译,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系外文翻译,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
什么是cuDNN?如何安装CUDA和cuDNN
文章原文指路:https://juejin.cn/post/7479993915041660968
CloudStudio
2025/03/13
9130
RTX4060+ubuntu22.04.3+cuda12.4.1+cudnn9.1.1安装验证
这款笔记本电脑因为触摸板驱动限制,需要选择ubuntu22.04.3以上版本;而RTX4060+cuda限制需要选择ubuntu22.04.3版本,更新版本的cuda并非一定不能使用,而是官方文档验证过的是此版本。
tankaro
2025/02/23
4930
Nvidia 3060显卡 CUDA环境搭建(Ubuntu22.04+Nvidia 510+Cuda11.6+cudnn8.8)
对每个人而言,真正的职责只有一个:找到自我。然后在心中坚守其一生,全心全意,永不停息。所有其它的路都是不完整的,是人的逃避方式,是对大众理想的懦弱回归,是随波逐流,是对内心的恐惧 ——赫尔曼·黑塞《德米安》
山河已无恙
2023/08/21
1.9K1
Nvidia 3060显卡 CUDA环境搭建(Ubuntu22.04+Nvidia 510+Cuda11.6+cudnn8.8)
Nvidia 显卡 Failed to initialize NVML Driver/library version mismatch 错误解决方案
本文记录错误 Failed to initialize NVML: Driver/library version mismatch 错误解决方案。 问题复现 $ nvidia-smi --> Failed to initialize NVML: Driver/library version mismatch 问题分析 NVIDIA 内核驱动版本与系统驱动不一致 查看显卡驱动所使用的内核版本 cat /proc/driver/nvidia/version --> NVRM version: NV
为为为什么
2022/08/05
15.1K1
Nvidia 显卡 Failed to initialize NVML Driver/library version mismatch 错误解决方案
RDMA - GDR GPU Direct RDMA快速入门1
NVIDIA GPUDirect 是一系列技术, 用于增强 GPU间(P2P)或GPU与第三方设备(RDMA)间的数据移动和访问, 无论您是在探索海量数据、研究科学问题、训练神经网络还是为金融市场建模,您都需要一个具有最高数据吞吐量的计算平台。GPU 的数据处理速度比 CPU 快得多,随着 GPU 计算能力的提高,对 IO 带宽的需求也随之增加。NVIDIA GPUDirect®是Magnum IO的一部分,可增强 NVIDIA 数据中心 GPU 的数据移动和访问。使用 GPUDirect,网络适配器和存储驱动器可以直接读取和写入 GPU 内存,从而消除不必要的内存复制、减少 CPU 开销和延迟,从而显着提高性能。这些技术(包括 GPUDirect Storage(GDS)、GPUDirect RDMA(GDR)、GPUDirect 点对点 (P2P) 和 GPUDirect Video)通过一套全面的 API 呈现
晓兵
2025/03/30
1.1K0
RDMA - GDR GPU Direct RDMA快速入门1
Ubuntu22安装N卡驱动以及CUDA
官网网址:https://www.nvidia.com/Download/index.aspx?lang=en-us
Here_SDUT
2024/02/03
3.9K0
Ubuntu22安装N卡驱动以及CUDA
cuDNN installation
NVIDIA cuDNNis a GPU-accelerated library of primitives for deep neural networks.
vanguard
2021/08/30
1.2K0
TensorRT安装及使用教程「建议收藏」
一般的深度学习项目,训练时为了加快速度,会使用多 GPU 分布式训练。但在部署推理时,为了降低成本,往往使用单个 GPU 机器甚至嵌入式平台(比如 NVIDIA Jetson)进行部署,部署端也要有与训练时相同的深度学习环境,如 caffe,TensorFlow 等。由于训练的网络模型可能会很大(比如,inception,resnet 等),参数很多,而且部署端的机器性能存在差异,就会导致推理速度慢,延迟高。这对于那些高实时性的应用场合是致命的,比如自动驾驶要求实时目标检测,目标追踪等。所以为了提高部署推理的速度,出现了很多轻量级神经网络,比如 squeezenet,mobilenet,shufflenet 等。基本做法都是基于现有的经典模型提出一种新的模型结构,然后用这些改造过的模型重新训练,再重新部署。
全栈程序员站长
2022/07/31
15.7K0
TensorRT安装及使用教程「建议收藏」
人工智能NVIDIA显卡计算(CUDA+CUDNN)平台搭建
NVIDIA是GPU(图形处理器)的发明者,也是人工智能计算的引领者。我们创建了世界上最大的游戏平台和世界上最快的超级计算机。
小陈运维
2021/10/13
1.4K0
Ubuntu安装和卸载CUDA和CUDNN
最近在学习PaddlePaddle在各个显卡驱动版本的安装和使用,所以同时也学习如何在Ubuntu安装和卸载CUDA和CUDNN,在学习过程中,顺便记录学习过程。在供大家学习的同时,也在加强自己的记忆。本文章以卸载CUDA 8.0 和 CUDNN 7.05 为例,以安装CUDA 10.0 和 CUDNN 7.4.2 为例。
夜雨飘零
2020/05/06
10.4K0
Linux常用技巧系列: Centos7/Ubuntu 16.04 系统Cuda 8.0 / 9.0 安装 + Cudnn
推荐时间1min30s,网上已有多关于cuda安装教程,但往往不是这有问题,就是那有问题。这里写一个简单易懂可行的cuda 安装教程。
超级小可爱
2023/02/20
8280
Caffe框架整理
Caffe框架下载地址:https://github.com/BVLC/caffe
算法之名
2023/11/08
2350
Ubuntu18.04安装 NVIDIA驱动+CUDA10.2+cuDNN+TensorRT
之后,按照提示安装,成功后重启即可。 如果提示安装失败,不要着急重启;可重复上述步骤,多试几次。
全栈程序员站长
2022/08/19
2.1K0
纯净Ubuntu16安装CUDA(9.1)和cuDNN
本篇概览 自己有一台2015年的联想笔记本,显卡是GTX950M,已安装ubuntu 16.04 LTS桌面版,为了使用其GPU完成deeplearning4j的训练工作,自己动手安装了CUDA和cuDNN,在此将整个过程记录下来,以备将来参考,整个安装过程分为以下几步: 准备工作 安装Nvidia驱动 安装CUDA 安装cuDNN 特别问题说明 按照一般步骤,在安装完Nvidia显卡驱动后,会提示对应的CUDA版本,接下来按照提示的版本安装CUDA,例如我这里提示的是11.2,正常情况下,我应该安装11.
程序员欣宸
2021/12/07
7040
纯净Ubuntu16安装CUDA(9.1)和cuDNN
NVIDIA Blackwell RTX GPU与CUDA 12.8框架更新指南
随着NVIDIA Blackwell RTX GPU的发布,为了确保应用程序与这些新一代GPU的兼容性和最佳性能,应用开发者必须更新到最新的AI框架。NVIDIA专门发布了一个指南,详细介绍与NVIDIA Blackwell RTX GPU兼容所需的核心软件库更新,特别是CUDA 12.8的相关信息。
GPUS Lady
2025/02/04
2.2K0
NVIDIA Blackwell RTX GPU与CUDA 12.8框架更新指南
【安装教程】Ubuntu16.04+Caffe+英伟达驱动410+Cuda10.0+Cudnn7.5+Python2.7+Opencv3.4.6安装教程
对于caffe的安装过程,可以说是让我终身难忘。两个星期就为了一个caffe,这其中的心路历程只有自己懂。从实验室的低配置显卡开始装Ubuntu,到编译caffe,解决各种报错,这个过程花费了一周的时间。把cuda版本和N卡驱动版本一降再降,仍然不管用。因此手剁了一台8000的高配置主机。之后为了平衡实验室项目,首先花了半天时间将win10下的相关和其他杂七杂八的软件配置。只有以为只需Ubuntu安装好,caffe编译成功即可,不想安装完Ubuntu之后,却电脑没有引导启动项,把网上的方法试了个遍,却仍无法解决。因此听到一种说法是,win10的启动路径覆盖了Ubuntu启动路径。因此,决定重新再来,将自己的固态和机械全部初始化,首先在固态上安装Ubuntu16.04,在机械上安装Win10,对于双系统的安装请参照我的另一篇博客:Win10与Ubuntu16.04双系统安装教程。在这种情况下参加那个caffe安装成功。请注意,对于双系统建议先安装Ubuntu,并将caffe编译成功之后在去机械上安装Win10。Caffe的安装教程请参照如下安装教程。
AI那点小事
2020/04/20
1.9K0
【安装教程】Ubuntu16.04+Caffe+英伟达驱动410+Cuda10.0+Cudnn7.5+Python2.7+Opencv3.4.6安装教程
TKE集群ubuntu 16.04节点更新GPU驱动和CUDA Toolkit
Release Notes :: CUDA Toolkit Documentation
铜锣烧
2021/07/19
1.6K0
玩转 AIGC:打造 AI 大模型云主机,Ubuntu 24.04 LTS 安装 Docker 和 NVIDIA Container Toolkit
今天分享的内容是 玩转 AIGC「2024」 系列文档中的 打造本地 AI 大模型地基,Ubuntu 24.04 LTS 安装 Docker 和 NVIDIA Container Toolkit。
运维有术
2024/05/07
1.2K0
玩转 AIGC:打造 AI 大模型云主机,Ubuntu 24.04 LTS 安装 Docker 和 NVIDIA Container Toolkit
GTX 1080+Ubuntu16.04+CUDA8.0+cuDNN5.0+TensorFlow
GTX 1080+Ubuntu16.04+CUDA8.0+cuDNN5.0+TensorFlow 安装指导
CreateAMind
2018/07/25
8400
GTX 1080+Ubuntu16.04+CUDA8.0+cuDNN5.0+TensorFlow
windows 11 搭建 TensorFlow GPU 开发环境【RTX 3060】:2 -- 基于WSL2 docker 方式的使用
目前我看官网主要推荐docker 方式了,那我们就用docker 方式试试。而且网上的安装教程也是docker 的居多【官方给出了一个教程】,我们也要与时俱进。
流川疯
2021/12/08
3.4K0
windows 11 搭建 TensorFlow GPU 开发环境【RTX 3060】:2 -- 基于WSL2 docker 方式的使用
推荐阅读
相关推荐
什么是cuDNN?如何安装CUDA和cuDNN
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档