2025 年 Rust GUI 库调研

来源: OSCHINA
编辑:
2025-04-22 16:05:05

本文作者对 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

展开阅读全文
点击引领话题📣 发布并加入讨论🔥
本篇精彩评论
tauri是生产用过的。
2025-04-23 14:22
1
举报
iced 主分支IME支持比较完美了,但是这个库用起来很怪,要么Message 要一层一层传递,要么一个Message管理所有子组件的消息。dioxus 0.7 支持native了,不过试了下IME的支持属于倒退了。GPUI感觉最舒服,就是太毛坯了
2025-04-22 18:35
1
举报
0 评论
8 收藏
分享
返回顶部
顶部