Skip to content

7. 适配器(wasmtime 沙箱) ​

入口:后台 ?tool=plugins(适配器管理)。

是什么 ​

用 WebAssembly 组件模型接入外部数据源(如豆瓣元数据),在沙箱里运行,不触碰站点数据:

边界规则
能做fetch(url) 拉 HTTP、读写宿主缓存、打日志
不能做SQL、文件系统、环境变量、改写 HTTP 响应
限额epoch 10s / 挂钟 25s;缓存 LRU 512
熔断连续失败 ≥3 次自动熔断,后台可重试/卸载

用法 ​

  1. 后台「适配器 → 安装」上传 .wasm(或从内置示例启用——仓库自带 douban 示例与 SDK);
  2. 「试运行」验证输出;
  3. 启用后对应元数据抓取走适配器(如发布页的豆瓣信息填充)。

开发自己的适配器 ​

SDK 在 apps/api/adapters/sdk.rs(no_std 绑定,sdk::entry! 宏导出):Rust 写逻辑 → cargo build --target wasm32-wasip2 → 后台安装。参考实现看 apps/api/adapters/douban/。

与内容包的关系 ​

内容包是「配置数据」的货架,适配器是「代码能力」的插件——两者独立安装,互不依赖。