过去几年。
如果有人问:Rust 能做前端吗?
很多人的第一反应都是: Yew、Leptos、Tauri
但如果你最近关注 Rust 生态。
一定会发现一个名字出现得越来越频繁:Dioxus
它没有像 Electron 那样依赖 Chromium。
也不像 Flutter 那样重新造一套 UI。
更不像 React Native 需要 JavaScript Bridge。
而是希望做到:用一套 Rust 代码,同时开发 Web、桌面、移动端,甚至 Full Stack 应用。
目前 GitHub 已突破 36K+ Star,已经成为 Rust UI 生态最受关注的项目之一。
很多开发者第一次看到它后的反应都是:Rust 原来已经可以这样开发应用了?
Dioxus 到底是什么?
官方给出的定位非常直接:
Fullstack app framework for web, desktop, and mobile.
简单来说就是:
Rust
+
UI Framework
+
Full Stack
+
跨平台
=
Dioxus
它最大的目标只有一个:一套代码,多端运行。
官方支持:
- Web
- Windows
- macOS
- Linux
- Android
- iOS
甚至还能支持:
- SSR
- LiveView
- Server Functions
真正做到前后端统一开发。
Rust 开发终于不用那么"硬核"了
过去很多人学习 Rust,第一感觉就是:生命周期、所有权、借用、Trait、宏,UI 开发更是门槛极高。
而 Dioxus 借鉴了 React 的开发理念,如果你写过 React,看到它几乎不会陌生。
例如:
fn app() -> Element {
let mut count = use_signal(|| 0);
rsx! {
button {
onclick: move |_| count += 1,
"Count: {count}"
}
}
}
是不是很像:
function App() {
const [count, setCount] = useState(0)
}
官方甚至直接表示:
Dioxus 希望拥有接近 React、Solid、Svelte 的开发体验,同时保持 Rust 的性能与类型安全。
一套代码直接跑多个平台
这是 Dioxus 最大的卖点。
官方支持:
Web
↓
Desktop
↓
Mobile
↓
Server
全部使用同一套组件。
真正做到:
Write Once
Run Everywhere
而不是:
React
+
Electron
+
React Native
+
Node
拼出来的一套生态
对于 Rust 开发者来说,意味着:以后很多项目,可能真的只需要一个框架。
开发体验比很多人想象得更好
很多人觉得:Rust UI 一定很慢。
实际上,Dioxus 官方这些年一直在优化开发体验。
例如:热更新(Hot Reload)
修改: UI、CSS、Assets 几乎都能即时刷新。
甚至官方还提供了实验性的:Hot Patching
能够实时更新 Rust 代码,大幅减少重新编译等待时间。
一个命令就能启动项目
官方 CLI 非常简单:
安装:
cargo install dioxus-cli
创建项目:
dx new my-app
启动:
dx serve
如果开发 Android:
dx serve --platform android
开发 iOS:
dx serve --platform ios
相比传统 Rust GUI,整个流程已经现代化很多。
Desktop 还能打包成不到 5MB
很多开发者最关心:桌面应用会不会像 Electron 一样几百 MB?
官方给出的答案是:不会。
Dioxus Desktop 默认基于系统 WebView。
因此最终应用通常可以做到:不到 5MB。
同时:Rust 代码仍然原生运行。
可以直接访问:
- 文件系统
- WebSocket
- 网络
- 系统 API
无需 IPC 来回通信。
真正厉害的是 Full Stack。很多人不知道,Dioxus 不只是 UI。
官方还提供:Server Functions
意味着:
前端:Rust
后端:Rust
API:Rust
数据库:Rust
官方集成:
- Axum
- SSR
- Streaming
- WebSocket
- SSE
- Middleware
很多场景甚至不需要再单独维护一个 Node.js 服务。
React 开发者也能快速上手
很多人担心:Rust UI 会不会很难?
实际上,Dioxus 的设计思路非常接近 React。
例如:
组件:Component
状态:Signals
声明式 UI:RSX
开发模式几乎一致。
如果你已经熟悉:React、Solid、Svelte
学习成本并没有想象中高。
Dioxus VS React + Electron
这是很多人最关心的问题。
| 对比 | Dioxus | React + Electron |
|---|---|---|
| 开发语言 | Rust | TypeScript |
| Web | ✅ | ✅ |
| Desktop | ✅ | ✅ |
| Mobile | ✅ | React Native |
| Full Stack | ✅ 内置 | 需自行组合 |
| 热更新 | ✅ | ✅ |
| Server Functions | ✅ | ❌ |
| 应用体积 | 更小 | 通常较大 |
| 类型安全 | Rust | TypeScript |
如果你的团队已经使用 Rust,Dioxus 可以覆盖越来越多的开发场景。
Dioxus VS Tauri
很多人也会拿它和 Tauri 比。
实际上两者定位不同。
Tauri 更像:
Rust Backend
+
Web Frontend
你依旧需要:React、Vue、Svelte等等。
而 Dioxus 更像:
Rust
↓
UI
↓
Desktop
↓
Mobile
↓
Backend
真正全部统一,这也是它越来越受 Rust 社区关注的重要原因。
为什么越来越多人关注 Dioxus?
因为它刚好踩中了几个趋势:
- Rust 持续升温
- AI 客户端越来越多
- 跨平台需求越来越强
- Full Stack Rust 生态越来越成熟
相比过去:
React
+
Electron
+
Express
+
Node
未来很多 Rust 项目,可能直接就是:Dioxus,一套代码完成。
快速上手
安装 CLI:
cargo install dioxus-cli
创建项目:
dx new hello-dioxus
启动开发:
cd hello-dioxus
dx serve
构建发布:
dx bundle
官方支持: Web、 Windows、 macOS、 Linux、 Android、 iOS 一套命令即可完成开发与打包。
最后
过去几年,Rust 一直在不断扩张自己的边界。
从:后端、CLI、AI、数据库
一路走到:Web、Desktop、Mobile、Full Stack
而 Dioxus,正试图成为 Rust 世界里的"全能框架"。
它未必会取代 React,也不会马上取代 Flutter,但对于 Rust 开发者来说,它已经提供了一种新的可能:一门语言,一套代码,一个框架,覆盖整个应用开发。
如果你正在关注:
- Rust
- AI 客户端
- 跨平台开发
- Full Stack
- 下一代 UI 框架
那么 Dioxus 值得放进你的收藏夹。
GitHub: github.com/DioxusLabs/…
官网: dioxuslabs.com
你用过 Dioxus 吗?评论区聊聊~
各位互联网搭子,要是这篇文章成功引起了你的注意,别犹豫,关注、点赞、评论、分享走一波,让我们把这份默契延续下去,一起在前端的海洋里乘风破浪!