12 | 有哪些优秀的 WebAssembly 编译器与运行时?
字节码联盟(Bytecode Alliance)
- 深入了解
- 翻译
- 解释
- 总结
WebAssembly(Wasm)作为一种新兴的跨平台字节码格式,正在逐渐成为浏览器之外的领域中的重要技术。本文介绍了一些优秀的Wasm编译器与运行时,以及字节码联盟(Bytecode Alliance)的背景和解决方案。文章指出了传统软件开发模式中存在的代码安全性问题,并介绍了Wasm在资源及权限控制上的优势。特别提出了“Wasm Nanoprocess”这种应用构建模式,通过限制恶意代码对数据以及系统接口权限的访问和使用,最大程度上保证了Wasm应用及其所依赖第三方模块的运行时安全性。文章内容深入浅出,为读者提供了对Wasm技术特点和应用前景的全面了解。 在本文中,介绍了字节码联盟的背景和其在构建安全可靠的Wasm应用方面的重要性。随后,详细介绍了几款优秀的Wasm运行时,包括Wasmtime、WAMR、Wasmer和SSVM。这些运行时在支持Wasm标准的基础上,还提供了各自独特的特性和适用场景,如Wasmtime的高可配置性和可扩展性,WAMR在嵌入式芯片等资源受限场景下的优势,Wasmer提供的多语言运行时绑定支持,以及SSVM专注于云、AI和区块链应用程序的高性能特点。这些运行时的介绍为读者提供了对Wasm技术在不同领域应用的全面了解。 总的来说,本文通过介绍字节码联盟和优秀的Wasm运行时,展现了Wasm技术在安全性、跨平台性和性能方面的优势,为读者提供了对Wasm技术特点和应用前景的全面了解。
《WebAssembly 入门课》,新⼈⾸单¥29
全部留言(8)
- 最新
- 精选
- lisiur老师请教个问题哈,如果想开发一款自己的wasm运行时,大体思路是什么样的,有没有推荐的学习路径呀?
作者回复: 如果只是写简单的解释器,其实可以直接按照 Spec 上的指令用 switch 的方式去逐个解释就可以。具体的实现模型也可以参考 Spec 上给出的抽象(https://webassembly.github.io/JS-BigInt-integration/core/exec/index.html)。更高性能的需要考虑一些 threading 的方法,同时考虑是否整合 JIT。这部分就没有具体的教程了,不过可以参考一些已有的实现,比如 LuaJIT、WABT 中提供的简易 Wasm 解释器等等。书籍的话市面上大部分都是介绍 JVM 的,手把手教学的也是比较少,相对好一些的可以参考《Advanced Design and Implementation of VMs》,虽然也是以 JVM 为背景,但对 VM 组成结构介绍的比较全面,可以有个初步了解。其他比如 GC 之类的就得单独学习了,比如《垃圾回收算法与实现》等等。JIT 可以参考 LLVM 给出的例子,整合起来会快很多。
2021-01-126 - Xi于老师,simd优化有那些学习资料可以推荐
作者回复: 比如这个:https://www.codeproject.com/Articles/5298048/Using-SIMD-to-Optimize-x86-Assembly-Code-in-Array,可以 Google 上搜一搜,内容还是蛮多的。
2022-09-12归属地:四川 - 陶雅阁老师请教一下,不同的语言被编译到wasm所对应的二进制字节码是否会有区别呢,或者说是优化程度的不同 另外像go语言运行时的垃圾回收是怎么处理的呢
作者回复: 抱歉,回复晚了。是会有一定区别的,具体如何映射到字节码完全由对应语言编译器来决定。Go 语言会把 GC 也一起打包,用 Wasm 来实现,因此对应的字节码在执行时会有一定的运行时损耗。
2022-07-05归属地:上海 - 慌慌张张老师看到这,有一种all in wasm,感觉最后都是wasm都没问题的感觉。
作者回复: 哈哈,作为编译目标确实可以这样讲。但虽然志在千里,也得着眼于实际。
2020-10-29 - 王超lucet和wasmtime合并了
作者回复: 嗯嗯,看到了。感谢分享消息! “Combining the power of Lucet and Wasmtime exemplifies why the Bytecode Alliance formed: it specifically enables this kind of collaboration — aimed at making developers’ lives easier and powering trustworthy computation on the edge and beyond. ”
2020-10-27 - 奕字节码联盟是不是自家开发自家的wasn’t运行时,然后以后再外力的作用下,再一起选出来一个事实的标准?
作者回复: 哈哈,这个应该不会的。字节码联盟旗下其实囊括了包含Intel在内的几家大型公司开发的Runtime,每个Runtime支持的特性和开发路径也都不尽相同。倒是没有“自家”这一说。大家对各个特性的开发也都是建立在Wasm和WASI标准基础之上的。
2020-09-30 - 201201132SSVM更名成WasmEdge了2022-09-17归属地:广东1
- 慌慌张张老师,请教一下,wasm可以用来前端加密嘛?我是这样想的,传统的js即使压缩后下载到本地其实也能看懂,但是wasm这种字节码应该看还是比较困难的,是不是可以应用在机密场景?2020-10-292