Dioxus:一套 Rust 代码,跑遍所有平台
Dioxus:一套 Rust 代码,跑遍所有平台
Dioxus 是一个 Rust 编写的跨平台应用框架,拿到了 36,000+ Star。


用 Dioxus 写一个计数器,核心代码就这几行:
fn app() -> Element {
let mut count = use_signal(|| 0);
rsx! {
h1 { "High-Five counter: {count}" }
button { onclick: move |_| count += 1, "Up high!" }
button { onclick: move |_| count -= 1, "Down low!" }
}
}
这套代码可以跑在 Web、桌面、移动端和服务器上,不需要为每个平台单独维护一套。
支持的平台
Dioxus 目前覆盖了四类运行环境:
- Web: 编译为 WebAssembly,直接渲染 DOM,支持 SSR 预渲染和客户端水合,打包体积约 50kb
- 桌面: 通过 Webview 渲染,也实验性支持 WGPU 和 Freya(Skia),macOS、Linux、Windows 三端覆盖,二进制文件不到 3mb
- 移动端: 支持 Android 和 iOS,可以调用 JNI 和 Objective-C 原生接口,从
dx serve --platform android到跑在模拟器上只要几秒 - 服务器: 深度集成 axum,内置 WebSocket、SSE、流式传输、文件上传下载、SSR、表单处理和中间件
几个核心特性
Dioxus 的状态管理结合了 React、Solid 和 Svelte 的设计思路,用 signals 驱动响应式更新。热重载是内置的,改样式和标记语言能在毫秒级生效,实验性的 dx serve --hotpatch 甚至能实时更新 Rust 代码。
打包工具也做得比较完整。跑 dx bundle 就能输出优化后的产物,Web 端支持 avif 图片生成、wasm 压缩和代码混淆,桌面端和移动端产物控制在 5mb 以内。
UI 组件库参考了 shadcn/ui 和 Radix Primitives,提供了一套基础组件可以直接使用。
上手
安装 Dioxus CLI:
curl -fsSL https://dioxuslabs.com/install.sh | bash
或者通过 cargo 安装:
cargo install dioxus-cli --locked
启动开发服务器:
dx serve
Web 平台运行:
dx serve --platform web -- --no-default-features
Dioxus 的文档做得比较全,所有 HTML 元素和事件监听器都附带了 MDN 文档,官网有教程、参考和实战案例可以看。项目社区也比较活跃,有独立的 Discord 频道和 GitHub 组织。
听器都附带了 MDN 文档,官网有教程、参考和实战案例可以看。项目社区也比较活跃,有独立的 Discord 频道和 GitHub 组织。
openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构
更多推荐

所有评论(0)