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

2025-06-05

产品评估,1H25》,报告对 AI Coding 产品进行了市场分析和调研,并测试了中国市场的主流产品,从核心代码实现、注释质量、工程化引导三个维度进行模型打分,并对产品整体能力进行评估,来为市场用户提供选型参考。 根据

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/

2025-05-13

球平均水平。 《报告》基于一项覆盖47个国家和地区的调研而成。据知,澳大利亚墨尔本大学教授尼可·吉莱斯皮等学者联合毕马威团队,于2024年11月至2025年1月对4.8万名受访者进行采访调研。 “鉴于AI对社会、职场、教育和经

2023-06-28

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

2025-06-06

在 AI 浪潮重塑技术栈的 2025 年,虽然 Python 在各大编程语言排行榜多次霸榜,但其动态类型与性能短板在大规模 AI 工程中愈发显露疲态。面对这场技术民主化的新挑战,国产编程语言 MoonBit 以颠覆性创新给出解题思路。 Part

2023-02-07

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

2025-04-29

创公司的 CEO 一样思考如何利用 AI 来提升工作效率。根据调研显示,67% 的企业领导者表示他们熟悉 Agent 的概念,而这一比例在员工中仅为40%。 此外,前沿公司的组织结构也将发生变化,变得更加灵活和以结果为导向。这种新

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 增强工具的当前采用情况。 调查发

2024-10-14

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