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