小编Kei*_*arp的帖子

调用从 Wasmtime 返回字符串的 WASM 函数

在较高级别上,我尝试创建一个 Rust 主机程序,该程序在运行时使用 Wasmtime 加载 WASM 模块并调用返回字符串的 WASM 函数。我可以使用数字类型(例如 )来实现此功能usize,但无法弄清楚如何处理字符串(或其他复杂类型)。

在我的插件箱中,我有一个lib.rs编译用的cargo build --target=wasm32-unknown-unknown --release

use std::ffi::CString;
use std::os::raw::c_char;

static PLUGIN_NAME: &'static str = "Test Plugin";

#[no_mangle]
pub extern "C" fn plugin_name() -> *mut c_char {
    let s = CString::new(PLUGIN_NAME).unwrap();
    s.into_raw()
}

#[no_mangle]
pub fn plugin_name_len() -> usize {
    PLUGIN_NAME.len()
}
Run Code Online (Sandbox Code Playgroud)

这是基于这个问题的答案之一中的代码,该代码与我正在寻找的内容很接近,但在主机端使用 JavaScript。

在我的主机箱中我有一个main.rs

use wasmtime::{Engine, Linker, Module, Store};
use wasmtime_wasi::WasiCtxBuilder;

fn main() -> anyhow::Result<()> {
    let engine = Engine::default();

    let …
Run Code Online (Sandbox Code Playgroud)

rust webassembly wasmtime rust-wasm

3
推荐指数
1
解决办法
1081
查看次数

标签 统计

rust ×1

rust-wasm ×1

wasmtime ×1

webassembly ×1