Kyushu:可自行托管的 JavaScript 工作者 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 執行環境的情況下實現此類隔離。

Sources