GitHub 热门

earendil-works/djs

推理部署 在 GitHub 打开 ↗

可随时挂起恢复的 Rust 写 JS/TS 引擎,主打 wasm 沙箱脚本执行

Star292
24h 新增+26
7 天新增—
Fork6
Issue1
语言Rust

项目介绍

更新于 1 天前

djs 是一个用 no_std Rust 写的 JavaScript/TypeScript 引擎,主要跑在 wasm32 上,定位类似 QuickJS 的替代品,但专为「模型写的脚本调用工具、处理结果」这类场景优化。它的核心卖点是可随时挂起恢复:解释器不在 Rust 栈上递归,能在任意两条指令之间停下再续上,连 getter、Promise 任务、生成器和 async 函数内部也行,配合把等待中的运行状态写成可再加载的续体转储,让一次工具调用可以跨进程持久化。VM 状态全部放在一块字节 arena 里,创建实例只需复制预置镜像,约 40 微秒,且时钟、随机数都由宿主注入,同样输入产出逐字节一致的堆镜像,天然适合需要确定性和沙箱隔离的场景。test262 通过率 99.9%,wasm 下部分负载比 quickjs-wasi 更快。值得看的是做 Agent 运行时、边缘/浏览器内嵌脚本引擎、或需要在服务端安全执行不可信 JS 的工程师;纯前端或后端业务开发基本用不上。

上手成本:中

Star 趋势

记录 7 个数据点 · 期间增长 +168

仓库信息

License未声明
创建时间2026-11-01
最后推送28 分钟前
热度分85.0