Kyushu:可自托管的 JavaScript Workers WASM 沙箱
Kyushu 提供了一个轻量级、可自托管的 Cloudflare Workers 替代方案,使开发者能够将 JavaScript 和 TypeScript 处理程序作为隔离的 WebAssembly(WASM)二进制文件运行。通过消除对 Node.js、Bun 或 Docker 等沉重运行时的依赖,Kyushu 能够在 VPS 或任何能够执行单个二进制文件的环境中部署无服务器风格的处理程序。
Kyushu 以 CLI 工具的形式发布,简化了构建和执行流程。开发者使用 JavaScript 或 TypeScript 编写处理程序,Kyushu 将其编译为自包含的 WASM 二进制文件。随后使用 kyu 命令执行该二进制文件。
核心功能与部署
- Runtime Independence: 系统在主机上运行时无需 Node.js、Bun 或 Docker。
- API Compatibility: 它使用类似 Cloudflare Workers 的
fetch处理程序 API,使熟悉边缘计算模式的开发者能够轻松迁移。 - Isolation: 每个处理程序在 WebAssembly 沙箱中执行,确保代码与宿主系统隔离。
- Self-Hosting: 该系统设计用于在虚拟私有服务器(VPS)或其他轻量环境中部署。
使用场景与技术权衡
Kyushu 的架构特别适用于需要最小开销和高度隔离的边缘函数和插件系统。社区讨论中的用户指出,通过将代码编译为单个二进制文件,可实现更便捷的本地测试。
虽然社区对性能特征表现出兴趣——尤其是启动延迟相较于 Cloudflare Workers 使用的 V8 isolates 的表现——但原文未提供具体基准。总体目标是提供一个相对于整个 Web 堆栈低开销的替代方案。
社区对隔离的观点
业界从业者指出,Kyushu 代表了虚拟化和隔离光谱中的一种选择。正如一位贡献者所说:
“我仍然相信此类方案应该成功,并在隔离/虚拟化(容器、微型虚拟机、Wasm)方面为人们提供选择。它们各自都有用,并适用于不同的场景。”
其他讨论涉及浏览器端沙箱的隔离层级,比较在 WASM 模块中运行一个 worker,而该模块进一步运行 JavaScript 实现(如 QuickJS)来执行传入代码的可能性。这表明,Kyushu 通过将代码编译为 WASM 并使用 kyu 命令执行的方式,为实现这种隔离提供了一条简化路径,而无需依赖传统的 JavaScript 运行时生态系统。