问题标签 [wasi]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
152 浏览

windows - 在 Windows 10 中构建 wasmtime 失败

我尝试在 Windows 10 中构建wasmtime但失败了。

运行命令后cargo build --release,我收到错误消息:

找不到 sys/ioctl.h和pthread.h文件

我安装了MinGWCMakeLLVM。我是否需要安装其他与 Linux 相关的工具来构建它?

0 投票
1 回答
377 浏览

c - 使用 wasmtime 运行 wasm 文件时调用函数失败

Mozilla 分享了WASI以及如何使用Wasmtime运行 . wasm文件在他们的博客文章中。他们演示的编程语言是Rust

但是,我想在C中做同样的事情。

我已经下载了wasi-libc并尝试使用Clang构建一个“hello world”程序。

我在test.c中创建了两个函数:

使用以下命令构建它:

运行 wasm 文件以调用函数:

我未能使用输入参数调用该函数。

Rust 和 C 有什么区别?Rust 目前是构建 wasm lib 文件的唯一方法吗?

0 投票
1 回答
107 浏览

clang - 使用 wasi-libc 时 fopen 失败

我尝试在使用fopen时读取图像wasi-libc

使用 Clang 构建代码:

它返回 NULL。我该如何解决这个问题?

0 投票
1 回答
366 浏览

llvm - 如何让 wasm-ld 尊重 wasm-import-module 属性

已修复:我设置了要导入的函数的 DLL 存储类,dllimport这允许 wasm-ld 发出正确的导入命名空间。

我正在使用 LLVMSharp* 库构建编译器,它会发出针对 .bc 的 LLVM .bc 模块文件wasm32-unknown-unknown。我正在尝试通过使用{ "wasm-import-module"="wasi_unstable" }属性标记这些函数值来从 WASI 接口将函数导入其中。(这应该等同于 clang 所做的__attribute__((import_module(<module_name>)));见这里)。但是,当我将生成的 .bc 文件传递​​给 wasm-ld(Windows 64 位 9.0.0 安装版本)时,生成的 .wasm 模块仍然从 .wasm 导入这些函数"env",这不起作用。

是否有一些选项可以传递给 wasm-ld 以使其wasm-import-module正确处理,还是我需要走另一条路线?

*具体来说,我使用的是 LLVMSharp 5.0.0,它是最新的稳定版本。LLVMSharp 8.0.0 可能支持构建 .wasm 模块,但没有针对它的发布版 NuGet,并且测试版 NuGet 有一些问题阻止我升级。这就是为什么我要走 wasm-ld 路线。

0 投票
1 回答
370 浏览

webassembly - WASI 和 proxy-wasm 是什么关系?

WASIproxy-wasm似乎有相似的目标——定义一个 ABI 以允许 WASM 模块与主机环境交互(即支持系统调用),而 proxy-wasm 专注于嵌入到代理中的模块。

两者之间的关系(当前的或计划的)是什么?我见过这个,但不确定涵盖了什么。

0 投票
1 回答
611 浏览

runtime - WebAssembly 运行时 vs. 解释器 vs. 引擎

来自webassembly.org

WebAssembly(缩写为 Wasm)是一种用于基于堆栈的虚拟机的二进制指令格式。

在 Wasm/WASI 的上下文中,什么是

  • WebAssembly运行时?
  • WebAssembly解释器?
  • WebAssembly引擎?

在上述情况下:

  • 主机环境

我想这些术语的实际含义在 Web 浏览器上下文中使用时可能会有所不同,但我认为重点应该放在 Wasm 代码的本机用法上。

0 投票
1 回答
99 浏览

module - 编辑:Wasm/WASI 会通过消息传递实现流程吗?

Wasm/WASI 开发人员是否计划过实现可以通过 Wasm/WASI 运行时中的消息传递(无需通过 JS 运行时)相互通信的流程?

老问题:

WebAssembly 运行时会实现模块之间的消息传递,还是模块将保持无状态?或者那是 WASI 流程最终会有的东西吗?

基本上我要问的是:WebAssembly/WASI 运行时是否会有可以在彼此之间传递消息的进程?我猜那是几年后的事了,但也许它甚至不在议程上?

0 投票
0 回答
162 浏览

c++ - OpenCV 可以与 WASI(WebAssembly 系统接口)一起编译/使用吗?

WASI(WebAssembly 系统接口)旨在将 WebAssembly 带到浏览器之外。

我使用 OpenCV 4.3.0 的 eigenfaces 示例构建了一个简单的人脸识别应用程序(参见:https ://docs.opencv.org/2.4/modules/contrib/doc/facerec/facerec_tutorial.html#eigenfaces-in-opencv )和让它工作。

最近我想用 OpenCV 构建一个基于 WebAssembly(WASM) 的人脸识别应用程序。我搜索了 WASM+人脸识别,我得到了很多 git 存储库和示例,opencv_js.wasm并将其与 JavaScript 绑定一起使用。

我的目的是构建一个独立的 *.wasm 模块而不是 html+js+wasm 项目,因此我遇到了 WASI(WebAssembly 系统接口)。几个运行时,例如wasmtime并且wasmer可以运行独立的 *.wasm,它是使用 WASI 工具链(、、等,例如项目)从 C/C++wasicc编译wasic++wasienv

你们有什么想法或经验来构建一个独立的人脸识别/检测/...或与 WASI 类似的项目吗?非常感谢您的回复!

0 投票
1 回答
601 浏览

clang - 当使用“clang++”编译wasm文件时,WebAssembly.instantiate 失败,但可以使用“clang”

当使用 (C) 编译 C/C++ .wasm 代码时clang- 它在 Chrome 中加载并且运行良好,但是使用clang++(C++) 时 - wasm 加载失败并出现错误(在 JS 控制台中):

Uncaught (in promise) LinkError: WebAssembly.instantiate(): Import #1 module="wasi_snapshot_preview1" function="fd_close" error: function import requires a callable

为什么?

WASM 编译参数:

JS wasm 加载代码:

hello_wasm.cpp(编译没有错误):

LLVM v10 我使用来自https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-11/wasi-sdk-11.0-mingw.tar.gz的 wasi sysroot

也在这里讨论这个问题https://github.com/WebAssembly/wasi-sdk/issues/145

0 投票
2 回答
282 浏览

c - 如何使用wasi-sdk在C中直接调用WASI函数(导入模块问题)

我正在尝试使用wasi-sdk在 C 程序中直接调用 WASI 函数(fd_write) 。这是库(lib.c):

现在,如果我使用 wasi-sdk 将其构建为静态可链接库

我得到这个笏:(wasm2wat --enable-all输出)

现在这个导入行fd_write不正确。据我了解,需要从wasi_snapshot_preview1or导入 WASI 函数wasi_unstable(我没有第一个的源代码,我只是在开源代码中看到它,第二个请参见此处的示例,但我不是确定在 C 中该怎么做。有什么想法吗?