Rust 的 GUI 生态近年来发展迅速,涌现出多个成熟且受欢迎的库,适用于不同场景,本文列出当下比较流行的 Rust GUI 库及其特点。

Dioxus

Dioxus 是一个适用于 Web、桌面和移动设备的全栈应用框架;

  • 轻松构建跨平台应用(Web、桌面、移动端、服务器等)
  • 符合人体工程学的状态管理,结合了 React、Solid 和 Svelte 的优点
  • 类型安全的路由和服务器函数,由 Rust 强大的编译时能力保证
  • 集成 Web、MacOS、Linux 和 Windows 的打包工具
  • 即时热重载
  • 一流的 Android 和 iOS 支持

适用场景:企业级 Web 应用桌面化、跨平台业务系统

官方链接

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编写程序

适用场景:游戏引擎中添加 GUI,高频交互的应用

官方链接

Iced

Iced 是一个跨平台的 Rust GUI 库,专注于简洁性和类型安全。

  • 简洁易用、开箱即用的 API
  • 类型安全、响应式编程模型
  • 跨平台支持(Windows、macOS、Linux、及Web端)
  • 响应式布局
  • 内置组件库
  • 支持自定义组件
  • 带性能指标的调试悬浮窗
  • 原生支持异步操作

适用场景:需要简洁 API 和响应式布局的应用;

官方链接

Ratatui

Ratatui 是一个基于 Rust 的终端用户界面(TUI)开发库。它提供了一种简单灵活的方式,帮助开发者在终端中构建基于文本的交互式界面,适用于命令行工具(CLI)、实时仪表盘以及其他控制台交互程序。

  • 构建精美终端用户界面
  • 内置小部件

适用场景:终端仪表盘、命令行工具美化

官方链接