Skip to content

Vooya面向现有 Web 应用的 WASM 集成层

在保留传统 Web 宿主 renderer 的前提下,把浏览器可运行的 Rust 能力接入一个边界清晰的组件岛。

为什么会有 Vooya ​

传统 Web 应用往往只想把一个局部能力交给 Rust,却不想重写页面、路由、 状态和设计系统,也不想每个项目重新手写 WASM wrapper、生命周期、事件、类型 和 bundler glue。Vooya 把“宿主应用 + 一个 Rust/WASM 能力岛”的重复集成工作 标准化。它是面向传统 Web ↔ WASM 的 framework-agnostic 集成层,不是某个 特定框架的替代品。Vue、React 是当前 supported first-party adapter;Solid、Svelte 是 experimental adapter,目前证据集中在 Vite 7 Rust-file 路径。

Vooya 的工作方式可以概括为:保留 JavaScript,只移动昂贵的部分。JavaScript 继续拥有应用表面,Rust/WASM 只接管一个边界清晰的能力岛;这也是“驶向岛屿”这个 名字所表达的含义。我们希望把这条集成路径做成可复用的工具,而不是再造一个 要求全栈迁移的 Rust UI framework。

同一套“先找清楚边界,再决定运行时”的原则也用于 Vooya FS:它是 Rush-FS 的延续,通过 Node-API 把有规模的批量文件系统任务交给原生 Rust。浏览器 Vooya 使用 WASM,Vooya FS 保持原生,两者不会混淆宿主能力和性能承诺。可运行的边界实验集中在 Vooya Lab。

先读为什么是 Vooya和组件边界, 再开始快速开始。

为什么选择 Vooya? ​

如果传统 Web 应用需要加入 Rust/WASM 能力,Vooya 可以把 WASM 加载、typed ABI、 framework adapter、生命周期、事件、dispose、diagnostics、声明文件和 bundler 产物这些重复工作标准化,让自定义 WASM wrapper 变成可以测试、维护并跨项目演进 的工具链表面,而不是每个项目重新拼一套 glue。

Canvas/WebGL、编辑器、解析器、数据密集型控件、局部 store,以及其他边界清晰的 能力都适合作为起点。当前 beta 聚焦于能力岛边界,普通页面布局、路由、表单和 全局状态继续由宿主 renderer 管理。

SSR、hydration 和 standalone Rust renderer 尚未进入当前 beta 路径,但它们是未来 可以继续评估和建设的层,不是永久排除项。Vooya 也不承诺 WASM 自动更快,具体 workload 仍应与真实宿主基线测量。

首个 Beta 的十个公开包均为 0.1.0-beta.0。当前 npm beta 渠道中, @vooya/vite、@vooya/react、@vooya/solid、@vooya/svelte 已为 0.1.0-beta.2,@vooya/vue 为 0.1.0-beta.1,其余五个仍为 beta.0。请按包使用 beta 标签,不要强制同版。Vite Rust-file 路径是主要 source-authoring 路径,Rspack 与 Webpack 仍是 experimental;预编译组件产品尚未正式发布。 请从快速开始开始,再看项目状态。

托管工具链、具名 SSR/Nuxt 与 Rust-file bundler 路径现可通过可选的 0.2 Alpha使用;默认快速开始仍用 Beta,Octane 仍是延期的私有实验。 请先核对发布线与功能批次,不要把源码用例视为 npm Beta 能力。

Vooya is a beta project. Check the compatibility matrix before relying on a path.