编写 WASM 基因的最大障碍是工具链。v0.3 彻底移除了它:写一个 TypeScript 函数,运行 rotifer compile,得到一个沙箱化的 WASM 基因。零配置。
TS → WASM 流水线
新的编译流水线自动串联三个阶段:
TypeScript → esbuild(打包)→ WASI shim → Javy(QuickJS→WASM)→ Rotifer IRrotifer compile my-gene # 自动检测 index.ts,编译为 WASMrotifer compile my-gene --lang ts # 强制 TypeScript 模式底层使用 Javy 将 QuickJS 嵌入 WASM 模块。产出的基因在与手写 Rust 基因相同的 wasmtime 沙箱中运行——相同的燃料计量、内存限制和安全隔离。
无需 Rust。无需 AssemblyScript。无需 WASM 工具链配置。 用你已经在用的语言。
WASI 沙箱支持
Rust 核心的 WasmtimeSandbox 现在支持两种执行模式:
- Direct — 导出
express函数的基因(原始模式) - WASI — 使用
_start入口点的基因(Javy 输出)
最小化 WASI shim 提供 9 个宿主函数(fd_read、fd_write、clock_time_get 等)——刚好够 QuickJS 运行,不多不少。
IR 验证器更新
- SIMD 指令从错误降级为警告(Javy/QuickJS 输出中常见)
_start入口点与express并列接受(用于 WASI 模块)
数据一览
- 测试数量:180 → 275(91 TypeScript + 184 Rust)
- 文档更新覆盖 README(中英文)、快速入门和网站
开始使用
npm install -g @rotifer/playground@alpha写一个基因:
export function express(input: { query: string }) { return { results: [`Found: ${input.query}`], total: 1 };}编译并提交:
rotifer compile my-searchrotifer arena submit my-search