2作者: vertexclique10 天前
大家好!我一直在开发一个名为 Afterburner 的项目:一个用 Rust 编写的、快速且可嵌入的 JS/TS 运行时,内置了能力沙箱。 脚本默认运行在受限环境中:禁止网络访问、文件系统访问和环境变量访问。您可以显式授予脚本所需的访问权限,并且每次调用都会对 CPU、内存和时间进行严格限制。 我们的目标不是取代您现有的技术栈,而是将其无缝集成到其中: * **通过一个 crate 将 JS/TS 引擎嵌入到您的 Rust 应用中。** 运行用户脚本、插件、业务规则或边缘计算逻辑,每次调用都经过完全沙箱化。 * **包装您现有的工具。** `burn node app.js`、`burn npm test`、`burn bun`、`burn deno run` 和 `burn npx tsx` 等命令可以在沙箱环境中运行您现有的工具链。您可以运行未经修改的 Express、Fastify 或 Hono 应用,在零环境 I/O 和内存限制下运行。无需更改代码。 * **使用内置的注册表 `registry.afterburner.sh`。** 使用 `burn publish` 发布,使用 `burn install` 或 `burn add` 安装,依赖项通过内容摘要进行固定。每个包都附带一个能力清单,因此安装的代码默认是沙箱化的。它还与 npm 互操作,因此您仍然可以根据需要引入 npm 库。 由于没有任何东西拥有环境权限,它也是一种干净、实用的运行不受信任代码的方式,无需提心吊胆。 代码库:[https://github.com/afterburner-sh/afterburner](https://github.com/afterburner-sh/afterburner) 网站:[https://afterburner.sh](https://afterburner.sh) 注册表:[https://registry.afterburner.sh](https://registry.afterburner.sh) 完整的教程,包括工作原理、功能以及高达约 1680 万行/秒的基准测试,都在一篇文章中。这是开始的最佳地点: [https://vertexclique.com/blog/burn-after-reading/](https://vertexclique.com/blog/burn-after-reading/) 关于许可的一点说明:它是在 BSL-1.1 下开源的,该许可将在每次发布四年后自动转换为 Apache-2.0。您可以免费用于您的个人项目,所以去构建一些东西吧。