@ executor-js/ runtime- quickjs (英语)
快速JS 沙盒运行时间 @executor-js/execution。在 WASM 支持的解码器中运行不信任的 TypeScript/JavaScript, 并带有可配置的超时, 内存限制, 和堆栈大小 —— 安全到可以执行 LLM 生成的代码, 将您的注册工具调用 .
安装
bun add @executor-js/execution @executor-js/runtime-quickjs
# or
npm install @executor-js/execution @executor-js/runtime-quickjs
使用量
传出 a makeQuickJsExecutor() 作为 codeExecutor 当构建执行引擎时:
import { createExecutor } from "@executor-js/sdk";
import { createExecutionEngine } from "@executor-js/execution";
import { makeQuickJsExecutor } from "@executor-js/runtime-quickjs";
const executor = await createExecutor({ onElicitation: "accept-all" });
const engine = createExecutionEngine({
executor,
codeExecutor: makeQuickJsExecutor({
timeoutMs: 2_000,
memoryLimitBytes: 32 * 1024 * 1024,
maxStackSizeBytes: 1 * 1024 * 1024,
}),
});
选项
| 选项 | 默认 | 说明 |
|---|---|---|
timeoutMs | 300_000 | 每次处决时间最长 |
memoryLimitBytes | 64 * 1MB | VM 能分配的最大内存 |
maxStackSizeBytes | 1 * 1MB | 最大调用深度 |
移动快速JS大楼
import { setQuickJSModule } from "@executor-js/runtime-quickjs";
import { newQuickJSWASMModule } from "quickjs-emscripten";
setQuickJSModule(await newQuickJSWASMModule());
如果您想要一个不同的 WASM 变体( 如调试构建, QuickJS- NG) , 请使用此选项 . newQuickJSWASMModule() 默认为释放-同步变体; 通过不同的 @jitl/quickjs-* 变种来交换它.
状态
预1.0. API在β释放之间仍然可能改变. 部分 执行器单曲。 。 。 .
许可证
麻省理工学院