使用 MoonBit 开发 Wasm 组件模型
Wasm组件
WebAssembly(Wasm)是一种新的低级虚拟指令集标准(low-level virtual instruction set standard),用于沙箱模型。低级的,意味着它接近原生速度。虚拟的,意味着它可以在包括浏览器和操作系统在内的多个运行时(runtime)上运行,例如wasmtime或wamr。它是沙箱模型,这意味着它不能与外界交互,除非使用FFI。不过FFI只能返回数字,因此通过线性内存进行数据传输是更有效的方法。许多编程语言都可以编译成Wasm,包括Java、JavaScript/TypeScript、Python、Rust以及当然还有MoonBit。
那么如何结合用不同编程语言实现的Wasm组件呢?我们便需要引入组件模型(component model),一个统一接口的提案。通过组件模型,我们可以定义一个高级抽象的API。只要接口匹配,组件就可以与不同组件结合。
本文将介绍如何使用MoonBit编写一个输出“Hello World”的小型HTTP服务器。通过本教程我们可以看出,MoonBit在开发Wasm组件模型时实现了高兼容性和互操作性,同时能够显著减少输出大小。