22得票1回答
如何将对象数组传递给 WebAssembly 并使用 wasm-bindgen 将其转换为结构体向量?

可以像这样传递整数数组: const js = import("./webassembly_rust"); let array_nums = [1,2,3,4,5,6,7,8,9]; js.then(js => { js.test( array_nums ); }); 将代...

19得票2回答
在使用Rust编写的WebAssembly中,是否可能进行动态链接?

我正在使用wasm-bindgen在web上用Rust制作一个图灵完备的DSL。我希望能够从web下载任意的WASM代码,然后在我的DSL中使用该文件中的函数。我想到了某种动态链接和等效于dlopen的方法。 但是我不知道如何实现这一点。 从阅读WebAssembly文档WebAssemb...

14得票1回答
为什么在使用wasm-pack构建时生成返回字符串的函数时,wasm-opt会失败?

我正在完成《康威生命游戏》的Rust WASM教程。 文件中最简单的函数之一被称为Universe.render(它是用于呈现代表游戏状态的字符串的函数)。在我运行wasm-pack build时它会导致错误:Fatal: error in validating input Error: fa...

11得票2回答
是否可以在webpack 5中使用wasm-bindgen?

我跟随 Hello World 指南 为 wasm-bindgen(我使用的是 wasm-bindgen = "0.2.72")。 不幸的是,指南中提到的 npm 包并不是最新的。因为我想要一个干净的起点,所以我尝试升级它们。 这是指南中提到的 package.json 文件: { ...

11得票3回答
如何将闭包转换为js_sys :: Function?

如何将本地闭包转换为js_sys::Function? 我想要做类似这样的事情:let canvas = document.get_element_by_id("canvas").unwrap(); let e: web_sys::HtmlElement = canvas....

10得票1回答
是否有可能在另一个 crate 中定义 #[wasm_bindgen] 公共结构体和函数?

我有一个装满结构体和实现的lib箱子。然后我有另一个名为web的箱子,将核心lib可移植到Web上。还有一个api,以防我想要应用程序是服务器端的。 myproject-api myproject-lib myproject-web 我不想在lib中添加所有wasm依赖项,只想在web...

10得票1回答
无法执行 "trunk serve"

我对Rust产生了兴趣,并且正在查看Yew框架的简单指南(一种用于Rust的前端框架):https://yew.rs/docs/tutorial。 我按照指南进行操作,直到执行以下命令。 trunk serve --open 然而,某个地方出了问题。 这是我得到的结果: 2022-...

10得票2回答
使用 Rust,在 WebAssembly 中处理闭包,有比使用 forget 和泄漏内存更好的方法吗?

当使用闭包为JavaScript提供回调时,如何更好地避免释放它们?wasm-bindgen指南建议使用.forget,但承认这基本上是泄漏内存。 通常我们会存储句柄以便稍后在适当的时间进行删除,但现在我们希望它成为全局处理程序,因此我们使用forget方法在不使闭包失效的情况下将其丢弃。...

10得票1回答
WebAssembly中的多线程

如果您能回答有关WebAssembly多线程的问题,我将不胜感激。我想使用两个线程(主线程和辅助线程)实现代码,使得在辅助线程中使用一个全局变量作为计数器,在循环中对其进行增量操作。主线程会在执行指令之前和之后各读取一次计数器变量的值(以测量完成该指令所需的时间)。我已经实现了以下代码: #...

10得票2回答
当目标架构为WASM时,默认启用Cargo功能?

我的货物清单(Cargo.toml)的一部分: [features] wasm = ["ed25519-dalek/nightly", "rand/wasm-bindgen", "js-sys"] 当创建的工程被用在其他项目中,且明确选择了"wasm"特性时,这个工程可行。 我想在目标...