【问题标题】:A tool to run WebAssembly运行 WebAssembly 的工具
【发布时间】:2019-02-19 08:06:56
【问题描述】:

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

我研究这个的原因很简单:我可以很容易地编译一些东西——无论是 C++、Rust、Go 还是其他东西——并从中得到一个 Wasm 二进制文件,其中包含wasm32-unknown-unknown 的指令。到现在为止还挺好。但是我该如何运行呢?

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

有没有办法“只运行”一个 Wasm 文件?

【问题讨论】:

    标签: webassembly


    【解决方案1】:

    你说得对,今天大量使用 wasm 是在 JS 的上下文中。然而,有一些努力在 JS 之外运行 wasm。我知道的两个是:

    【讨论】:

      【解决方案2】:

      请务必查看 LifeVM: https://github.com/perlin-network/life

      你可以像这样运行 wasm 程序:

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

      但请记住,这只是一个虚拟机,所有“平台/环境”API(IO/图形/网络/等)都必须开发或以某种方式提供。这就是为什么 Wasm 在 JS 的上下文中使用起来非常方便:有很多用例的 Web API。

      我的建议:如果您只是想涉足 Wasm 并学习,只需使用 Emscripten/Web 并停止担心 :) 一旦您对它感到精通,也许这将是了解较低级别的好时机VM 端(无 API 世界)

      【讨论】:

        猜你喜欢
        • 2015-11-16
        • 1970-01-01
        • 2023-02-07
        • 2020-08-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-09-15
        • 2022-06-29
        相关资源
        最近更新 更多