WebAssembly运行时

轻量级。Wasmtime是WebAssembly的独立运行时,可根据您的需求进行扩展。它适合于微型芯片,也可以使用大型服务器。 Wasmtime也可以嵌入几乎所有应用程序中。
快。Wasmtime建立在优化的Cranelift代码生成器上,可在运行时快速生成高质量的机器代码。
可配置。无论您是需要提前预编译wasm,使用Lightbeam快速生成代码还是在运行时进行解释,Wasmtime都能满足您执行wasm的所有需求。
WASI 。Wasmtime支持一组丰富的API,用于通过WASI标准与主机环境进行交互。
标准。Wasmtime通过了官方的WebAssembly测试套件,实现了wasm的官方C API,并且还实现了WebAssembly的proposals。 Wasmtime开发人员也一直与WebAssembly标准流程密切相关。

https://segmentfault.com/a/1190000023944392



https://github.com/bytecodealliance/wasmtime-go



Wasmer Runtime
Wasmer Runtime是Wasmer生态其中一个,允许wasm模块可以独立运行。关键功能是使程序能够以任何编程语言运行;使二进制文件能够在Wasmer支持的任何“操作系统”(例如Linux、macOS、Windows和FreeBSD)上不加修改地运行;充当Wasm模块,通过应用程序二进制接口(ABI),如WASI(WebAssembly System Interface)和Emscripten(1.38.43及更早版本)与本机“操作系统”功能交互的安全桥梁。



https://segmentfault.com/a/1190000038512829



https://webassembly.sh/
https://docs.wasmer.io/



https://github.com/wasmerio/docs.wasmer.io



https://github.com/wasmerio/wasmer



https://www.infoq.cn/article/f2vml9f1khiftwgi5g1b



https://developer.mozilla.org/zh-CN/docs/WebAssembly/Concepts



https://zhuanlan.zhihu.com/p/342222095



https://cloud.tencent.com/developer/news/769729



https://www.kubernetes.org.cn/9228.html



wasi-experimental-http 项目在 Wasmtime (来自 Bytecode Alliance 的一个 WASM 实现)虚拟机上实现了扩展,支持在 WASI 应用中,访问 HTTP 服务。它还提供了一个 AssemblyScript 的 HTTP Client 实现。



https://github.com/deislabs/wasi-experimental-http/



http://quickapp.vivo.com.cn/webassembly/



1.使 “原生” 模块不那么复杂



运行时 (例如 Node 或 Python 的 CPython) 通常允许你使用低级语言 (例如 C++) 编写模块。这是因为这些低级语言的运行速度通常要快得多。因此,你可以在 Node 中使用本地模块,或者在 Python 中使用扩展模块。但是这些模块通常很难用,因为它们需要在用户设备上进行编译。借助 WebAssembly 的 “原生” 模块,你可以获得差不多的速度而规避复杂化。



2.更容易的沙箱化运行原生代码



另一方面,类似于 Rust 这样的低级语言不会指望 WebAssembly 来提升运行速度。但他们会为了安全性使用 WebAssembly。正如我们在 WASI 公告中所讨论的那样,WebAssembly 默认为你提供轻量级沙箱。因此,像 Rust 这样的语音可以通过 WebAssembly 来沙箱化原生代码模块。



3.跨平台共享原生代码



如果开发人员可以跨不同平台 (例如,在 Web 和桌面应用程序) 共享同一代码库,则可以节省开发时间并降低维护成本。脚本语言和低级语言都是如此。WebAssembly 为你提供了一种在不降低这些平台性能的前提下实现此目标的方法



https://www.techug.com/post/how-webassembly-works.html
https://developer.aliyun.com/article/783864
https://segmentfault.com/a/1190000017879709
https://geektutu.com/post/quick-go-wasm.html


Category golang