运行WebAssembly的工具

时间:2019-02-19 08:06:56

标签: webassembly

战争-显然-随处可见。我什至还看到了一些基于x86的Wasm-only VM,这非常令人兴奋!不幸的是,它不能在我的Mac上构建-太糟糕了。

我研究这个问题的原因很简单:我可以轻松地编译某些东西-C ++,Rust,Go或其他东西-并从中获取Wasm二进制文件,其中包含wasm32-unknown-unknown的指令。到目前为止,一切都很好。但是我该怎么办呢?

使用Emscripten,我可以让它生成一个JS包装器,这非常好并且非常有用。但是,如果我只想直接定位Wasm并在其中包含一个我想运行的简单int main(void)怎么办?看起来每个Wasm文件几乎都需要使用JS包装器来正确执行。

甚至还有一种方法可以“仅运行” Wasm文件吗?

2 个答案:

答案 0 :(得分:1)

您是正确的,今天wasm的大量使用是在JS的上下文中。但是,在JS之外运行wasm有很多努力。我知道的两个是:

答案 1 :(得分:1)

确保签出LifeVM: https://github.com/perlin-network/life

您可以运行这样的wasm程序:

./life -entry 'method' /path/to/your/wasm/program.wasm [param,...] 

但是请记住,这仅是VM,必须开发或以某种方式提供所有“平台/环境” API(IO /图形/网络/等)。这就是为什么Wasm在JS上下文中使用非常方便的原因:存在许多用例的Web API。

我的建议:如果您只是想学习Wasm并学习,请使用Emscripten / Web并不再担心:)一旦您精通它,也许这将是学习低级课程的好时机VM端(无API的世界)