问题标签 [rust-wasm]

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 回答
128 浏览

rust - 如何使用带有类型别名的#[wasm_bindgen]?

我想做的事:

但是 Rust 编译器抱怨:

我不想在其中添加 #[wasm-bindgen] 属性,parserange.rs因为它位于一个不使用 wasm 构建的单独库中。

有解决办法吗?

0 投票
0 回答
129 浏览

webpack - 如何从 wasm rust 中正确导入 js 脚本

你如何让 webpack 知道在 rust/wasm 内部使用了一个块,这样它就不会被丢弃。

我的尝试:webpack 配置:

锈[wasm_bindgen]:

另外,如果我也在 worker.js 脚本中使用 wasm,我将如何在不删除 .wasm 块的情况下导入它?

0 投票
1 回答
256 浏览

webassembly - 是否可以从 AssemblyScript 导入 .wasm 文件?

我可以从我的 AssemblyScript 代码中导入 .wasm 文件吗?我知道我可以使用 AssemblyScript 加载器从 TypeScript 加载 .wasm 文件,但是如果我按照https://www.assemblyscript.org/loader.html上的说明尝试构建我的 AssemblyScript 示例,则会出现错误

长话短说,我有一个已编译为 WASM 的 Rust 库。我想在我的 AssemblyScript 示例中使用该代码。这可能吗?

0 投票
1 回答
119 浏览

rust - 如何在我的 Cargo.toml 中启用 --gc-targets?

根据档案公告wasm-gc

默认情况下, wasm-pack(和 wasm-bindgen)项目已经--gc-targets为您运行 [ ],因此无需再次运行它。

我们如何在 Cargo.toml 中明确指定这一点?

0 投票
1 回答
63 浏览

rust - wasm-pack 代码中的 Rust 导入导致 JS 错误

我收到一个 JS 错误:Uncaught (in promise) TypeError: WebAssembly.instantiate(): Import #0 module="env" error: module is not an object or function

当我在 Chrome 开发工具中查看 wasm 文件时,我在顶部看到这样的导入语句:

是什么导致了这些导入语句?如何删除或修复它们?我可以看到它们是blst包中包含的 Rust 包的blsttc一部分。该blst包使用 bindgen 生成与 blst.h 的 FFI 绑定,所以也许这与它有关?

这个Github repo有代码。我正在使用wasm-pack build --target=web

0 投票
1 回答
80 浏览

progressive-web-apps - 保护 wasm 二进制文件的最佳实践

我正在开发一个可能包含 rust wasm 二进制文件的 PWA 应用程序。二进制文件执行应购买的任务。是否有任何保护二进制文件的最佳实践,以使其在未经授权的情况下无法执行?

0 投票
0 回答
681 浏览

vue.js - 尝试启动 WebAssembly + Vite + Vue 的开发服务器时“您可能没有权限”

当我运行时,yarn dev我得到以下输出:

我的 WebAssembly 包被调用wasm,这是我的 vite 配置:

我正在使用vite插件来使用 Rust 和 WebAssembly。我遵循了他们在 Vue3 中使用的示例,但使用了我的包。难道我做错了什么?

0 投票
0 回答
110 浏览

rust - 如何使用 wasm-bindgen 正确执行 rust 上的 js 代码

我正在使用 rust、WASM 和 yew 作为前端框架。我正在围绕 materialize-css 构建一个包装器,以在 yew 上使用它作为可重用组件的依赖项。

要使用一些 materialize-css 组件,必须对其进行初始化。例如,使用 sidenav

问题是我正在尝试使用 wasm-bindgen 运行它,如 wasm-bindgen 文档中所述,但它不起作用。或者也许我真的不明白发生了什么。

根据文档,这应该有效:

或这个:

但是它们都不起作用......在这两种情况下,代码编译都没有问题,但是在浏览器中执行时会跳转错误。

在第一种情况下,错误是Uncaught SyntaxError: import not found: init lib.js:1:9

在第二种情况下,错误是Uncaught SyntaxError: import not found: Sidenav lib.js:1:9

老实说,我不明白为什么会这样。几天来,我一直在 MDN 文档中寻找有关 WASM 和 wasm_bindgen 文档的信息,但我找不到任何对我有帮助的东西。

此外

我正在使用 --target 网络标志

我的项目结构

0 投票
0 回答
54 浏览

rust - wasm-bindgen 元素 - 无法设置 id

我无法设置元素的 id。这是来自一个例子:

线路val.id = "id_p";不工作。为什么?

0 投票
0 回答
147 浏览

typescript - 使用 wasm_bindgen 返回 typescript union

假设我有以下 rust 结构:

我想注释Node#[wasm_bindgen]以便我可以将它从 wasm 返回到 javascript。

这有点描述了我想在 javascript 中接收的结构。