2025 年 Rust GUI 库调研


本文作者对 43 种 Rust GUI 库进行调研,旨在实现文本标签与输入框联动功能,且考虑了 Windows 系统支持、屏幕阅读器可访问性及 IME 输入等因素。

众多库表现各异,如 Azul、CXX-Qt 等存在链接错误难以运行Cushy、Floem 等在可访问性或 IME 支持上有缺陷Dioxus、Slint 等综合表现较好。作者认为虽无完美选择,但相比 2021 年已有更多合理选项。

库名

是否可用

屏幕阅读器可访问性

IME 支持情况

问题描述

Azul

链接错误,无法运行

未提及

未提及

下载预构建.dll 困难,示例代码无法运行,版本混乱

cacao

仅适用于 macOS

未提及

未提及

不支持 Windows 系统

core - foundation

仅适用于 macOS

未提及

未提及

不支持 Windows 系统

Crux

无桌面目标

未提及

未提及

实际不支持桌面 GUI 开发,仅用于移动和 Web

Cushy

部分支持

示例代码有错误,运行时产生大量 Vulkan/DirectX 12 错误,Windows Narrator 无法识别内容

CXX-Qt

链接错误,无法运行

未提及

未提及

安装 Qt 需注册,示例代码有 1058 个链接错误

Dioxus

通过 WebView2/WebKitGTK 支持桌面开发,类似 React,文本和 IME 功能正常

Dominator

仅用于 Web

未提及

未提及

无桌面支持

egui

部分支持

设置简单,默认字体不支持日语字符,Tab 键选择汉字时被吃掉

Floem

用于 Lapce IDE,布局构建方式奇怪,缺乏可访问性和 IME 支持

fltk

需额外 crate

布局系统不佳,添加组件方式不友好

flutter_rust_bridge

部分支持,但状态管理混乱

部分支持,但状态管理混乱

与 Flutter 集成复杂,输入字段状态管理有问题

Freya

依赖旧版本 Dioxus,渲染和文本识别存在问题

fui

qmake 错误,无法构建

未提及

未提及

缺乏文档,构建失败

GemGui

技术上可用,但依赖问题多

未提及

未提及

依赖 Python,运行方式繁琐

GPUI

缺乏基本文本输入部件,文档和安装不完善

GTK 3

不再维护

未提及

未提及

已过时

GTK 4

窗口装饰和可访问性存在问题

Iced

受 Elm 启发,在可访问性和 IME 支持上有缺陷

imgui

与游戏引擎结合较好,但初始设置繁琐,支持多种渲染器导致选择困难

KAS

教程过时,状态管理设计不清晰

kittest

仅用于测试

未提及

未提及

仅支持 egui 测试

Leptos

仅用于 Web

未提及

未提及

Web 前端框架,原生 GUI 支持不足

lvgl

C 依赖问题

未提及

未提及

配置在 Windows 上有问题

Makepad

部分支持

缺乏文档,可访问性支持差

masonry

内容可识别但位置错误

是,但有临时乱码

API 使用不太方便

Maycoon

无文本输入部件

未提及

未提及

太新,功能不完整

Pax

无 Windows 支持

未提及

未提及

仅支持 macOS

qmetaobject

不支持 windows - msvc

未提及

未提及

与特定目标不兼容

relm

使用不再维护的 GTK 3

未提及

未提及

依赖过时库

Relm4

基于 GTK 4,继承其问题

Ribir

部分支持,但状态管理混乱

部分支持

状态管理机制有问题

Rinf

不使用 Rust 构建 GUI

未提及

未提及

不符合调研需求

rui

状态管理可能较繁琐

Slint

部分支持

有自己的 DSL,数据绑定功能巧妙,默认字体可能存在问题

Tauri

部分支持

前端与后端通信存在问题,缺乏类型安全

tinyfiledialogs

非通用 GUI 库

未提及

未提及

功能有限,无法完成任务

Tk

安装和使用复杂,依赖外部库

Vizia

结构可识别但内容不可识别

部分支持

文本字段聚焦时样式有问题

WebRender

太低级,不适用于 GUI 开发

未提及

未提及

无 GUI 组件,是低级别图形库

windows

不熟悉 Win32 API

未提及

未提及

缺乏 GUI 开发指导

WinSafe

手动布局不佳,存在窗口创建时序问题

Xilem

内容可识别但位置错误

是,但有临时乱码

缺乏版本管理

本次调研涵盖 43 种 Rust GUI 库,各库在功能、易用性、可访问性和 IME 支持等方面表现差异较大。

作者推荐了几个表现较好的库:喜欢 CSS 布局可选 Dioxus;青睐 DSL 驱动的用户可选择 Slint;想避免 DSL 和宏,只用常规 Rust 代码的可考虑 egui;愿意早期投资的可关注 Xilem。虽然没有绝对完美的选择,但相比 2021 年,如今有更多合理的选项可供开发者选择。

原文:https://www.boringcactus.com/2025/04/13/2025-survey-of-rust-gui-libraries.html


相關推薦

2022-10-07

Pop!_OS Linux 发行版的下一个演变。有趣的是,对于这个用 Rust 编写的大型 COSMIC 桌面项目,他们决定不再使用 GTK 工具包,而是使用 Iced-Rs 作为替代,后者是原生 Rust 跨平台图形工具包。 参与 COSMIC 项目的一位 System76 工程师在&n

2022-12-13

易于使用、可移植的即时模式 (immediate mode) GUI 库,采用 Rust 编写,可运行在 Web 和原生应用中。 更新亮点 支持 thin space 添加与 AccessKit 的可选集成,以实现平台可访问性 APIs (#2294) 破坏性变更:对于 overlappi

2022-05-05

易于使用、可移植的即时模式 (immediate mode) GUI 库,采用 Rust 编写,可运行在 Web 和原生应用中。 更新亮点 在 egui 中嵌入 3D 渲染 在明亮模式下提供更好的文本对比度 新增 egui_extras::Table 添加Plot::allow_scroll, Plot::allow_zo

2023-09-29

易于使用、可移植的即时模式 (immediate mode) GUI 库,采用 Rust 编写,可运行在 Web 和原生应用中。 此版本包含一个简单且强大的图像 API: // Load from web: ui.image("https://www.example.com/some_image.png"); // Include image in the binary using `includ

2023-11-13

Slint(最初称为 "SixtyFPS")是一个 Rust 编写的综合性 UI 工具包,用于为桌面和嵌入式设备构建原生用户界面。 近日,Slint 发布了 1.3 版本,引入许多增强开发体验的新功能和改进。 下载地址:https://github.com/slint-ui/slint/releases/

2023-06-28

p;.slint 代码中声明枚举, export 将它们声明为 Rust 或 C++,并享受重构时增加的类型安全性。 enum Color { red, green, blue } 较小但值得注意的功能和错误修复 启用新的 renderer-winit-skia-vulkan 功能以使用 Vulkan 渲染

2023-02-07

Masonry 是一个 Rust GUI 框架,其作者最近刚发布了 0.1 版本,并提出了对 Rust UI 的愿景,他称之为"Fearless GUI",具备以下特点: 可迭代 具备灵活性 可测试 可观测 可重用 最新发布的 Masonry 0.1 旨在实现上述目标,目前

2023-04-05

com/releases/1.0.0/docs/slint/ Slint(最初称为"SixtyFPS")是一个 Rust 编写的综合性 UI 工具包,用于为桌面和嵌入式设备构建原生用户界面。其开发团队希望将 Slint 打造成下一代 GUI 工具包,因此从头开始构建项目时就考虑了可扩展性、

2023-11-23

system 2023》结果已发布,基于来自全球 26348 名开发人员的调研反馈。 今年的报告在往年的基础上扩展了人工智能(AI)领域。研究了开发人员对 AI 的看法和担忧、AI 助手的常用功能以及 AI 增强工具的当前采用情况。 调查发

2025-04-02

挑战。根据该报告,研究团队通过对1400多名专业人士的调研,以及来自7000多家客户的数据分析,勾勒出了一幅令人为之担忧的安全图景。 报告指出,过去一年中,软件供应链的安全漏洞急剧增加,其中 “秘密” 或机密信息的

2024-08-18

计划在今年晚些时候完成 Rust 2024 版本功能的开发。并于 2025 年 1 月 3 日发布测试版 Rust v1.85,2 月 20 日发布稳定版 Rust v1.85。 使 Async Rust 体验更接近 sync Rust。计划提供几个异步构建块功能,其中最值得注意的是对 async clos

2024-10-14

nfoWorld 资深作家 Serdar Yegulalp 发布了一篇文章,探讨了由 Rust 驱动的 Tauri 和由 JavaScript 驱动的 Electron 这两个跨平台框架之间差异。 Electron “你很有可能是通过 Electron 的核心技术:a web browser 来阅读这篇文章的。” Electron 最初

2025-04-17

落地应用。 本次软件智能开发工具及应用图谱通过问卷调研、公开资料查询、企业访谈等形式系统梳理软件智能开发产业各领域各环节成熟的厂商、平台、机构,聚焦基础支撑、应用工具、行业应用三大维度。 基础支撑维度

2022-08-27

自上次发布 4.1.1 稳定版后,wxPython 已接近两年没有更新过。因此,wxPython 开发团队在宣布 4.2.0 的更新时,第一句话就是关于“项目死亡”的辟谣: "Rumors of my death are only slightly exaggerated" "关于我死亡的谣传稍微有点夸大了"