Rust 的 GUI 生态近年来发展迅速,涌现出多个成熟且受欢迎的库,适用于不同场景,本文列出当下比较流行的 Rust GUI 库及其特点。
Dioxus
Dioxus 是一个适用于 Web、桌面和移动设备的全栈应用框架;
轻松构建跨平台应用(Web、桌面、移动端、服务器等)
符合人体工程学的状态管理,结合了 React、Solid 和 Svelte 的优点
类型安全的路由和服务器函数,由 Rust 强大的编译时能力保证
集成 Web、MacOS、Linux 和 Windows 的打包工具
即时热重载
一流的 Android 和 iOS 支持
适用场景:企业级 Web 应用桌面化、跨平台业务系统
官方链接
Dioxus 官方网站
Dioxus 源代码
Slint
Slint 是一个开源声明式 GUI 工具包,用于为嵌入式系统、桌面和移动平台构建用户界面;
响应式 UI 设计,允许跨操作系统和处理器架构的跨平台使用
内存和处理能力方面需要较少的资源
稳定的 API
适用场景:工业控制面板、智能家居界面
官方链接
Slint 官方网站
Slint 源代码
Tauri
Tauri 是一个为所有主流桌面平台构建极小型、超高速二进制文件的框架。开发者可采用任何能编译为 HTML、JS 和 CSS 的前端框架来构建用户界面,而应用后端则是基于 Rust 的二进制程序,其 API 可与前端进行交互。
跨平台能力:支持 Windows、macOS、Linux、iOS/iPadOS、安卓
前端独立:支持所有前端框架
内置应用程序捆绑器
原生 WebView 协议
适用场景:跨平台轻量级客户端
官方链接
Tauri 官方网站
Tauri 源代码
Egui
Egui 是一个简单、快速且高度轻量化的既时模式 GUI 库,纯 Rust 语言编写,专为 Rust 打造;它能在 Web、原生环境以及各类主流游戏引擎中流畅运行。
即时模式 GUI
支持为Web、Linux、Mac、Windows、和Android编写程序
适用场景:游戏引擎中添加 GUI,高频交互的应用
官方链接
Egui Web演示
Egui 源代码
Iced
Iced 是一个跨平台的 Rust GUI 库,专注于简洁性和类型安全。
简洁易用、开箱即用的 API
类型安全、响应式编程模型
跨平台支持(Windows、macOS、Linux、及Web端)
响应式布局
内置组件库
支持自定义组件
带性能指标的调试悬浮窗
原生支持异步操作
适用场景:需要简洁 API 和响应式布局的应用;
官方链接
Iced 官方网站
Iced 源代码
Ratatui
Ratatui 是一个基于 Rust 的终端用户界面(TUI)开发库。它提供了一种简单灵活的方式,帮助开发者在终端中构建基于文本的交互式界面,适用于命令行工具(CLI)、实时仪表盘以及其他控制台交互程序。
构建精美终端用户界面
内置小部件
适用场景:终端仪表盘、命令行工具美化
官方链接
Ratatui 官方网站
Ratatui 源代码