问题标签 [wasm-bindgen]

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 投票
0 回答
195 浏览

redis - rust 可执行二进制文件中的 Webassembly

是否可以在可执行文件中编译 webassembly 代码?
我的意思是你有一个可执行文件,它还通过 webassembly 为 javascript 提供一些接口。

现在我的项目分为两个,都是用 Rust 编写的。一种是可执行文件,它在 Redis 中发布所有信息,这些信息被 wasm 中间代码消耗到 javascript 中以呈现它。

是否有可能完全摆脱 Redis,只制作一个可执行文件以拥有 wasm 中间代码?

试图找到这个问题的信息,到目前为止只得到了将其转移到C的建议,然后将其转换为可执行文件。

0 投票
2 回答
210 浏览

javascript - 如何使这个 Wasm 函数在其母语中易于阅读?

我有以下 Wasm 函数,我想了解它是某种 webgl 片段着色器:

我熟悉javascript,但这对我来说是无法理解的。找出如何将其转换为更“友好”的 javascript 的最佳选择是什么?

有没有工具可以帮助转换为更好的格式?或者有没有更容易理解的方法?

0 投票
1 回答
276 浏览

rust - Rust Petgraph WASM 项目,尝试使用具有 Graph 属性的结构,但需要 2 个参数

我对 Rust 很陌生,所以这可能是一个非常菜鸟的问题。

我正在尝试使用 rust -> wasm 创建一个 Web 应用程序。尝试按照教程https://rustwasm.github.io/docs/book/introduction.html并尝试使用 crate 包“petgraph”我想出了以下内容

但这给了我编译错误

阅读https://docs.rs/petgraph/0.5.0/petgraph/graph/struct.Graph.html 然后我尝试了

但是后来它说 wasm-bindgen 不支持该语法?我应该在这里做什么?

0 投票
1 回答
315 浏览

rust - 从 Rust 的 WebAssembly 中的 Window 对象获取查询字符串

背景:我正在学习 Rust 和 WebAssembly,作为一个练习练习,我有一个项目可以从 Rust 代码中用 HTML Canvas 绘制东西。我想从 Web 请求中获取查询字符串,然后代码可以从那里决定调用哪个绘图函数。

我编写了这个函数来返回?删除前导的查询字符串:

它确实有效,但考虑到在我使用的其他一些语言中它会简单得多,它似乎非常冗长。

有没有更简单的方法来做到这一点?或者冗长只是你为 Rust 的安全性付出的代价,我应该习惯它?

根据@IInspectable 的答案进行编辑:我尝试了链接方法,但出现以下错误:

最好能更好地理解这一点;我仍然通过我的头脑获得所有权的细节。就是现在:

这当然是一种改进。

0 投票
2 回答
1154 浏览

rust - 如何使用 web_sys 从 Rust 创建一个 JS 字符串数组?

我正在尝试使用一个 Web API,它包含一个接受来自 Rust 的字符串数组的方法。

我正在使用 web_sys 与 JS API“对话”,但我找不到将静态字符串数组传入其中的方法。

不幸的是,在 Rust 中,参数的类型被错误地声明为arg: &JsValue,所以我可以将任何东西传递给它,它仍然可以编译,但会在浏览器中崩溃。

如何在 Rust 中创建一个可以用作 的字符串数组&JsValue

0 投票
3 回答
1284 浏览

wasm-bindgen - wasm-bindgen:即使安装了 wasm-pack,也找不到命令 (0.8.1)

从这篇文章https://asquera.de/blog/2018-10-01/webassembly-and-wasm-bindgen/我发现我们可以运行wasm-bindgen target/wasm32-unknown-unknown/release/qr_wasm.wasm --out-dir ./dist --no-modules --no-typescript以创建 wasm 和 js 文件而无需运行wasm-pack build(它会安装 wasm-bindgen 不管我以前安装了一个,使它有点慢)这对我来说似乎更灵活,但是当我运行wasm-bindgen xxx它时说:zsh: command not found: wasm-bindgen

我用谷歌搜索了它,但似乎没有人遇到过这个问题。我的项目中也有cargo installwasm-bindgen 和 wasm-bindgen-cli。

0 投票
0 回答
553 浏览

javascript - 当我在 JS worker 中导入 WASM 时,“无法解析模块说明符”或“未定义窗口”

我正在尝试在 JS 工作者中导入我的 WASM 库(用 Rust 编写)。我得到了错误:

或者如果我尝试使用worker-loader错误是不同的,但在同一行:

错误的性质是什么,我应该如何修复它?

详情如下所示。我试图使示例尽可能少(不带worker-loader)。


我的项目结构是:

库文件

货运.toml

包.json

webpack.config.js

索引.html

index.js

我的.worker.js


我准备mylib(在mylib):

对于前端(在www):

运行(在www):

0 投票
1 回答
317 浏览

rust - worker-loader 不能在 react 项目中使用 wasm-loader 和 typescript

我试过了:

其中uranus-qrcode是我创建的 Rust-Wasm 模块。我使用 wasm-loader 加载它,当我将它加载到主线程时它可以工作,但是当我使用 worker-loader 尝试它时它说:

0 投票
0 回答
622 浏览

rust - 创建 React App 导入 Wasm 到 Web Worker

我正在使用 wasm-bindgen 和一个 react 应用程序(使用 create-react-app 创建),我想将一个 wasm 模块导入到 web worker 中。

我正在使用这个例子,只是为了开始。

为了在“主线程”上使用 wasm,我设置了 react-app-rewired,这里是 config-overrides.js:

在主线程上,我可以导入 wasm 并在本地 npm 链接之后像这样使用它(没有发布任何 npm 模块):

我读到您应该在主线程中编译 wasm 模块,然后将其 postMessage 到线程,所以我尝试了以下操作:

这给了我以下错误:

我也尝试了正常的导入命令:

我收到以下错误:

有什么我可以添加到 webpack.config 以使其工作的吗?什么是正确的设置?

0 投票
1 回答
98 浏览

c# - 无法在 Uno 2.4 上更改 WASM 的强调色

我在 App.xaml 中定义了一个新的强调色,例如:

它适用于 UWP 应用程序:

在此处输入图像描述

但是,强调色在 WASM 页面上保持默认蓝色(Edge Chromium - 81.0.416.77)

在此处输入图像描述

WASM 上的强调色与 App.xaml 中定义的 UWP 版本不匹配。它应该是。我怎样才能解决这个问题?

Nuget 包:

包版本:

  • Uno.UI.RemoteControl {2.4.0}
  • Uno.Wasm.Bootstrap {1.2.0}
  • Uno.Wasm.Bootstrap.DevServer {1.2.0}
  • Microsoft.Extensions.Logging.Filter {1.1.2}
  • Microsoft.Extensions.Logging.Con... {1.1.1}
  • NETStandard.Library {2.0.3}
  • Uno.UI {2.4.0}
  • Microsoft.NETCore.UniversalWindo... {6.2.10}
  • Microsoft.Extensions.Logging.Con... {1.1.1}
  • Microsoft.Extensions.Logging.Filter {1.1.2}
  • Microsoft.UI.Xaml {2.4.0}
  • Uno.Core {2.0.0}