从嵌入式 v8 版本 8.3 或更高版本调用不带 JS 的 WebAssembly

问题描述 投票:0回答:1

我看到了以下问题和答案 从嵌入式 v8 调用 WebAssembly,无需 JS 我尝试使用最新版本的 v8 运行“解决方案”中的代码,但它无法编译,因为

WasmCompiledModule::DeserializeOrCompile API is obsolete in V8 8.3 and later.
最新版本中
WasmCompiledModule::DeserializeOrCompile API
的替代API是什么?

还有, wasm-c-api 我知道这是一件很棒的事情,但如果可能的话,我想学习如何自己完成这一切。

c++ v8 webassembly embedded-v8
1个回答
0
投票

最新版本中

WasmCompiledModule::DeserializeOrCompile
API 的替代 API 是什么?

正如链接问题的答案已经提到的:

下个版本将更名为

v8::WasmModuleObject

事实上,

v8::WasmModuleObject
仍然存在于最新的 V8 版本中。


另外,我知道 wasm-c-api 很棒,但如果可能的话,我想学习如何自己完成这一切。

这不是同一件事。
如果你想使用 V8 的 Wasm 引擎而不通过 JS,那么 V8 的 wasm-c-api 实现是你唯一的选择。
如果您想使用 V8 的常规基于 JS 的 API(包括

v8::WasmModuleObject
),那么所有进出 Wasm 的调用都将通过底层的 JS 包装器。您不一定需要自己编写任何 JS,但相应的 V8 API 函数会在内部创建 JS 对象/函数,而 wasm-c-api 则不会。

也就是说,使用常规 V8 API 的好处在于它的功能更加丰富。现代 Wasm 模块可能会导入诸如 strings 和正则表达式处理函数之类的东西,而 wasm-c-api 还不支持这些功能(还?)。

© www.soinside.com 2019 - 2024. All rights reserved.