【问题标题】:Wasmtime WASI communication via HTTP/socketsWasmtime WASI 通过 HTTP/sockets 通信
【发布时间】:2021-12-15 09:49:08
【问题描述】:

有一个很棒的名为 Wasmtime 的 webassembly 编译器和虚拟机,它提供对执行的支持而无需任何嵌入,它允许直接从命令行运行 WASM 应用程序https://docs.wasmtime.dev/lang-bash.html

遗憾的是,没有官方方法可以通过 WASI 执行 HTTP/网络通信,因为 WASI 预览快照中不存在 HTTP/套接字,因此通过 Wasmtime 开发任何有用的应用程序都是有问题的

理论上不可能运行一些代理网络服务器,它从主机发出真正的 TCP 连接并通过自定义协议通过文件系统与 Wasmtime 应用程序通信,但它似乎过于复杂并且可能会影响性能不佳

有像https://github.com/deislabs/wasi-experimental-http 这样的解决方案,但它不适合,因为需要在 Rust 中编写自定义入口点,安装 Rust 工具链并为一堆目标平台编译它,而不是从此处的受信任网站下载独立的可执行文件 @987654323 @

几周前我打开了问题https://github.com/bytecodealliance/wasmtime/issues/3483,但不幸的是没有任何进展或答案

Wasmtime 团队的主要任务是:如果任何通信功能不可用,那么使用 Wasmtime 运行时开发读取世界应用程序意味着什么?与此同时,像神经网络这样的外来扩展正在积极开发中,但 HTTP/原始套接字支持是 MVP 的主要部分

谢谢

【问题讨论】:

    标签: webassembly wasi wasmtime


    【解决方案1】:

    不幸的是,对此的主要答案是不,WASI 还没有为这种事情做好准备,但它正在朝着那个方向前进。

    就上下文而言,我是Suborbital 的创始人/维护者

    例如,我们在主要的 Wasm 运行时(Wasmtime、WasmEdge、Wasmer)之上创建了自己的自定义“云 API”集,并将它们公开为 Go library。至少您不需要任何自定义版本,我们将运行时与库捆绑在一起。

    目前这是最好的选择,但希望 WASI 将在未来消除对像我们这样的自定义 SDK/API 的需求。

    很高兴回答您的任何问题!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-07-24
      • 2013-11-27
      • 2017-07-23
      • 1970-01-01
      相关资源
      最近更新 更多