rust 写gui 程序 最流行的是哪个

截至 2026 年 4 月,Rust 写 GUI 最流行、社区最火、实际项目用得最多的是这 4 个 :egui、Tauri、Dioxus、Iced。下面按「流行度 + 新手友好 + 实际用途」给你讲清楚,帮你直接选。


一、综合流行度排名(2026 最新)

按 GitHub 星标 + crates.io 下载量 + 实际项目使用率:

  1. egui(最火、纯 Rust 原生)

    • GitHub:2.8w+ ★
    • 下载量:1300 万 +(是 iced/slint 的 10 倍左右)
    • 定位:即时模式 GUI(Immediate Mode),纯 Rust、极简、超快
    • 适合:工具、调试面板、游戏内 UI、小工具、快速原型
    • 优点:上手最简单、零配置、编译快、体积极小(4--6MB)、跨平台
    • 缺点:复杂 UI / 动画 / 样式不如声明式框架舒服
  2. Tauri(Web 技术栈桌面化,替代 Electron)

    • GitHub:10w+ ★
    • 定位:WebView + Rust 后端(HTML/CSS/TS/Vue/React 写 UI,Rust 写逻辑)
    • 适合:企业应用、跨平台桌面软件、已有 Web 前端转桌面
    • 优点:比 Electron 轻 90%、体积 3--10MB、内存 50--100MB、安全、打包小
    • 缺点:依赖系统 WebView,不是纯 Rust 渲染
  3. Dioxus(全栈跨端,类 React)

    • GitHub:2.5w+ ★(增长极快)
    • 定位:一套代码 → Web + 桌面 + 移动端,RSX 语法(类 JSX)
    • 适合:全栈、Web / 桌面 / 移动三端、喜欢 React 风格的开发者
    • 优点:生态猛、热重载、状态管理强、性能好、纯 Rust 也可 WebView
    • 缺点:较新,部分原生能力不如 egui/iced 成熟
  4. Iced(声明式原生,Elm 风格)

    • GitHub:1.9w+ ★
    • 定位:纯 Rust 声明式 GUI,状态 - 消息 - 更新模型
    • 适合:结构清晰、长期维护、中大型桌面应用
    • 优点:架构干净、可维护性强、主题 / 国际化 /a11y 完善
    • 缺点:学习曲线比 egui 陡、编译稍慢

2. Tauri(Web 前端转 Rust 桌面首选)

你会 Vue/React → 直接用 Tauri,体积小、安全、企业最爱。

  • UI:Web 技术
  • 逻辑:Rust
  • 打包:单文件、极小、启动快

3. Dioxus(全栈 / 三端、React 爱好者)

一套代码跑 Web / 桌面 / 移动端,RSX 类 JSX,生态爆炸。 适合想一份代码多端复用的人。

4. Iced(大型原生应用、追求架构整洁)

纯 Rust 声明式、 Elm 架构、适合长期项目、可维护性最强。 适合做正式产品、复杂业务 GUI。


三、你(Rust 新手)该怎么选?

✅ 如果你:

  • 刚学 Rust、想快速写小工具、计算器、配置器、调试面板 → 选 egui(最简单、最快、最稳)

  • 会 Web(Vue/React)、想做跨平台桌面软件、要小体积 → 选 Tauri(上手成本最低、产出最快)

  • 想一套代码 Web + 桌面 + 移动、喜欢 React 风格 → 选 Dioxus(未来潜力最大)

  • 想纯 Rust、复杂原生 GUI、长期维护、架构干净 → 选 Iced(最工程化)


四、补充:其他常见框架(了解即可)

  • Slint:轻量声明式,嵌入式 / 工业 GUI 很强,体积 5--9MB
  • fltk-rs:老派 C++ FLTK 绑定,稳定、体积小、风格传统
  • gtk-rs:GTK4 绑定,Linux 原生强,适合 GNOME 生态
  • Druid:Xilem 前身,数据驱动,目前活跃度低

五、结论(一句话)

2026 年 Rust GUI:

  • 纯 Rust 原生最流行:egui
  • Web 技术栈最流行:Tauri
  • 全栈跨端最火:Dioxus
  • 大型原生应用:Iced

新手入门 → 直接从 egui 开始。

复制代码
[package]
name = "yuanyi"
version = "0.1.0"
edition = "2021"

[dependencies]
# 后端依赖(保留你原有的)
axum = "0.7.5"
tokio = { version = "1.0", features = ["full"] }
sea-orm = { version = "0.12", features = [
    "runtime-tokio-native-tls",
    "sqlx-mysql",
    "macros",
    "chrono",
    "serde_json"
] }
chrono = { version = "0.4", features = ["serde"] }
serde = { version = "1.0", features = ["derive"] }
tower-http = { version = "0.5", features = ["cors"] }
http = "1.0"

# 🔥 关键:Dioxus 0.6 必须开启 desktop 特性!
dioxus = { version = "=0.6.3", features = ["desktop"] }
dioxus-desktop = "=0.6.3"

# 配置两个二进制入口
[[bin]]
name = "yuanyi"
path = "src/main.rs"

[[bin]]
name = "testgui"
path = "src/Testgui.rs"

Testgui.rs

rust 复制代码
// 🌟 0.6 版本必须的导入
use dioxus::prelude::*;
use dioxus_desktop::launch;

// 🌟 主函数:程序入口(0.6 版本标准写法)
fn main() {
    // 0.6 版本 launch 直接传组件函数,不需要任何额外参数
    launch(app);
}

// 🌟 应用组件(0.6 版本必须小写:app)
fn app() -> Element {
    // 0.6 版本直接返回 rsx!,不需要 cx.render
    rsx! {
        // 居中面板
        div {
            // 标题
            h1 { "📦 Hello Dioxus 0.6! (Rust GUI)" }

            // 按钮
            button {
                // 0.6 版本 onclick 标准写法
                onclick: move |_| {
                    println!("✅ 按钮被点击了!");
                },
                "点我!"
            }

            // 示例:添加文本
            p { "这是 Dioxus 0.6 最新版桌面程序" }
        }
    }
}
相关推荐
子兮曰4 天前
jev-ultrafast 深度解析:7 秒订机票的浏览器 Agent 是如何炼成的
前端·后端·agent
子兮曰4 天前
Jev 爆发一周:7 秒 Agent 背后的 System One 生态与三场争议
前端·后端·ai编程
小羊没烦恼!4 天前
初探性能优化——2个月到4小时的性能提升
java·开发语言·windows·算法·c#
爱勇宝4 天前
ZCode 开源 24 小时:一份没有历史的账本,回答不了"有没有偷代码"
前端·后端·chatglm (智谱)
胡写代码4 天前
别再前后端各写一套表单校验了
java·后端
伞伞悦读4 天前
【第38期】Python 模块与包详解:import、from、模块搜索路径、包结构和 __init__
开发语言·python
大勇前进4 天前
原生 PHP 还是 Laravel?小项目到底要不要上框架
后端
yuzhi_liu4 天前
我用 LangGraph4j 实现 Multi-Agent Supervisor
后端
alsmile4 天前
Node-RED 之外,国产规则引擎的新方案:基于标准语法,Go 先行实现
后端·开源·go
大白804 天前
PHP 内存溢出排查思路:看懂报错日志,精准定位问题
后端