问题标签 [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 回答
146 浏览

node.js - 在 Rust WASM Game of Life 教程中,无法让鼠标单击事件起作用

问题:似乎无法使鼠标单击切换事件起作用。点击时,一个活细胞应该变死,一个死细胞应该变活。

我已经在这个Github Repo中上传了 Rust/WASM Game of Life 教程项目,供那些想要找到问题的人使用。欢迎 PR。

不了解教程的小伙伴可以点击这里了解更多。

0 投票
0 回答
116 浏览

express - 从 express 服务器导入 WASM

最近我一直在使用 Rust WASM 进行编码并使用 wasm pack 进行编译。完成编码后,我将编译后的文件放入我的静态文件夹(我可以确认它们是静态的),并尝试将它们导入我的 HTML 文件中。我不断收到此错误: 呃,为什么这个垃圾讨厌我

之后,我检查了请求,发现了这个 错误 2,为什么它说我有应用程序/wasm 的内容类型?

我很困惑为什么我在请求中得到一个无效的 mime 类型,它清楚地表明 mimetype 是正确的。在github上搜索后,其他人也遇到了同样的问题。但这是 2018 年的一篇较旧的帖子,他们说它会以更新的版本发布,即我已经安装的版本。https://github.com/expressjs/express/issues/3589

这是我的锈代码:

和我的 HTML 代码:

我对为什么这不起作用感到困惑,并希望得到一些帮助。

提前致谢。

0 投票
1 回答
1887 浏览

rust - 生成返回字符串的函数时,为什么 wasm-opt 在 wasm-pack 构建中失败?

我正在阅读康威生命游戏的 Rust WASM 教程

调用文件中最简单的函数之一Universe.render(它用于渲染表示游戏状态的字符串)。当我运行时它会导致错误wasm-pack build

如果我删除该函数,代码构建不会出错。如果我用以下函数替换它,构建将失败并出现相同的错误:

似乎任何返回 a 的函数都会String导致此错误。为什么?

以下是我的全部代码:

只需删除render此文件底部的函数即可使构建成功。render用任何返回 a的函数替换该函数String会导致构建失败。为什么?

0 投票
1 回答
763 浏览

rust - Rust Wasm Bindgen 返回对象但得到一个数字

今天在使用 wasm-bindgen 进行一些 rust wasm vs js 速度基准测试时,我遇到了一个问题。

我做了一个简单的结构,你可以在这里看到: 在此处输入图像描述

我在一个名为gimmeDirections的简单函数中使用了这个结构, 如下所示: 在此处输入图像描述

将其编译到浏览器 javascript 中后,我查看了编译到其中的 .d.ts 文件,并注意到 gimmeDirections 函数返回了一个数字。 在此处输入图像描述

即使在 js 中,它在 JSDOC 中声明它返回了 XY 类,该类在编译代码中已定义。 在此处输入图像描述

这是课程:

在非常困惑之后,由于打字稿说它会返回一个数字但js说它会返回一个类,我决定运行它......并得到一个数字。 在此处输入图像描述

下面的对象是我的 javascript 函数,它为基准运行运行相同的代码,如您所见,我得到的是一个对象,而不是一个数字。

这是我的 JS 代码:

当我清楚地返回一个对象时,我仍然很困惑为什么它会返回一个数字。非常需要帮助,非常感谢

0 投票
1 回答
49 浏览

svg - 在 Seed Rust 应用程序中为 SVG 文本元素调用 getBBox

我刚刚使用 WASM 和Seed迈出了第一步,到目前为止这是一次非常顺利的体验。我能够使用svg!, circle!, text!, ... 和类似的宏创建 SVG。为了以正确的方式生成我的 SVG,我必须测量文本。我的想法是生成 SVG 文本节点并在节点上调用getBBox。我发现 Seed 正在使用web_sys并且getBBox 在那里实现

我的问题是如何从Nodecreated bytext!SvgTextElement。我试图访问该node_ws字段,但它似乎是“空的”。它可能尚未创建,但我现在对 Seed 内部结构还不够了解。

那么如何创建一个 SVG 文本节点,以便在生成“主”SVG 节点之前对其调用 getBBox 呢?

0 投票
1 回答
94 浏览

node.js - WASM 中的环境检测:Web、Node.js 还是独立运行时?

运行 WebAssembly 模块的方式有很多种,除了 Web 之外,Node.js 可以加载 wasm 模块--experimental-wasm-modules,独立运行时如 wasmtime 和 lucet 也可以运行它。

那么如何检测 WASM 中的当前环境,是否可以对 wasm 模块应用限制,使其只能在特定网站上运行?

0 投票
2 回答
484 浏览

rust - 使用 wasm-bindgen 对大型 rust 对象进行 Js 绑定

我想编写一个显示大型二进制文件内容的 vscode 扩展,用以下方式编写bincode

因此有一个 wasm 绑定:

它为 JavaScript 世界提供了一个简单的接口,以便访问该文件的内容。在 JavaScript 端处理时使用Arc以防止昂贵的意外内存复制。keys(未标记为可变但 rust 编译器推荐这种方式可能看起来很奇怪)

运行测试代码时:

您收到错误消息:

错误:传递给 rust 的空指针

有人知道如何处理这个用例吗?

谢谢!

0 投票
0 回答
102 浏览

rust - 如何在 Yew 应用程序中创建网格和单元格(使用 Rust 程序)

紫杉应用。

我正在尝试构建一个网格和内部网格我想在 Yew 应用程序中排列单元格。

  1. 我想让我的网格有一个 4*4 数组
  2. 单元格大小为 5px 宽度和高度
  3. 我还需要根据我在网格上解决的方法设置单元格颜色属性吗?
  4. 如何从 Grid 创建 Cell ?我可以使用 Yew 提供的 create 方法吗?

请就相同的组件结构提供建议。另外如何从网格中获取单元格的属性(颜色)并更改它

0 投票
0 回答
984 浏览

rust - `HashMap 没有实现特征`IntoWasmAbi`

尝试编译以下rust代码以wasm使其与现有 js 兼容运行。试图从函数返回哈希映射值。

库文件

运行命令后控制台错误wasm-pack build

有没有办法做到这一点?

0 投票
1 回答
498 浏览

go - 如何使用字符串作为参数从 Go 调用 Rust 函数?

我一直在尝试将字符串传递给 Rust 函数(编译为 Wasm),但是据我所知,现在无法直接传递字符串,因为“str”不是“FFI 世界”中的类型(至少 rust 编译器是这么说的): = help: consider using `*const u8` and a length instead

所以我所做的就是将函数更改为这种形式(而不是使用简单的 &str 类型):

这意味着我需要一个指针和 u8 中字符串的长度。

但是,有人让我注意到 WASM 模块是沙盒的,因此它们不能像普通应用程序那样使用普通指针。因此,我必须使用这样的函数将内存分配到模块的线性内存中:

这是一个 JS 函数的例子,它使用了这样的 alloc 函数:

我的问题是我不知道如何将此函数转换为 Go,这是因为我被困在“var mem”行,原因如下:

  • 我在 Go 中找不到“instance.exports.memory.buffer”的等价物(实例是“*wasmtime.Instance”类型)。
  • 我不知道如何去做 Unit8Buffer 在 Go 中所做的事情。

关于 Wasm 内存的好读物:(https://radu-matei.com/blog/practical-guide-to-wasm-memory/#exchang-strings-between-modules-and-runtimes