Electron、React Native 都不用了?Rust 全栈框架 Dioxus 火出圈!

0 阅读5分钟

过去几年。

如果有人问: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

这是很多人最关心的问题。

对比DioxusReact + Electron
开发语言RustTypeScript
Web
Desktop
MobileReact Native
Full Stack✅ 内置需自行组合
热更新
Server Functions
应用体积更小通常较大
类型安全RustTypeScript

如果你的团队已经使用 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 吗?评论区聊聊~


各位互联网搭子,要是这篇文章成功引起了你的注意,别犹豫,关注、点赞、评论、分享走一波,让我们把这份默契延续下去,一起在前端的海洋里乘风破浪!