rivet-dev/secure-exec

Secure Node.js Execution Without a Sandbox A lightweight library for secure Node.js execution. No containers, no VMs — just npm-compatible sandboxing out of the box.

What it solves

Secure Exec 提供了一种在不使用容器、虚拟机或外部沙箱服务的情况下,安全执行不受信任的 Node.js 与 TypeScript 代码的方法。它特别针对 AI 代理需要在资源使用受限、主机访问严格控制的安全环境中编写与执行代码的需求。

How it works

此库使用 V8 isolates——与 Chrome 浏览器标签页和 Cloudflare Workers 相同的隔离技术——来创建轻量级的执行边界。它不启动完整的操作系统,而是在主机进程内通过虚拟内核和系统桥接执行代码。这样即可保有原生 V8 性能(包括 JIT 编译),同时保持“默认拒绝”的权限模型,限制网络、文件系统和子进程的访问。

Who it’s for

  • 开发 AI 代理、需要执行生成代码的开发者(兼容 Vercel AI SDK、LangChain 等)。
  • 创建交互式编码 playground 或插件系统的开发者。
  • 想要运行用户提交脚本或开发服务器(如 Express、Hono)而不想管理 Docker 等复杂基础设施的用户。

Highlights

  • Zero Infrastructure:无需 Docker daemon、hypervisor 或供应商账号;可通过 npm 安装。
  • Granular Permissions:默认拒绝文件系统、网络与环境变量的访问。
  • Resource Limits:通过 CPU 时间预算和内存上限,确保失控代码可被确定性终止。
  • Node.js Compatibility:支持 fshttpchild_process 等核心模块,并允许动态安装 npm 模块。
  • High Efficiency:相较于传统容器式沙箱,冷启动时间与内存占用显著降低。