< 返回版块

Yuan YQ 发表于 2025-04-15 10:32

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

dotter:管理 dotfiles

dotter 是一个用 Rust 编写的 dotfile 管理器和模板生成器。其主要目的是解决管理和部署 dotfiles 时遇到的问题,提供灵活的配置和自动模板化或符号链接到目标位置的功能。

  • 解决传统 dotfiles 管理问题:传统的使用 ln -s 进行符号链接的方式在管理大量 dotfiles 时存在诸多问题,如难以跟踪文件来源、在新机器上设置繁琐以及无法处理不同机器之间的差异。Dotter 旨在解决这些问题。
  • 灵活配置与自动部署:通过提供灵活的配置,Dotter 可以自动将 dotfiles 模板化或符号链接到目标位置。
  • 支持钩子脚本:在部署和撤销部署前后,可以执行预定义的钩子脚本,以满足特定的需求。
  • 缓存机制:使用缓存文件来记录已部署的文件信息,方便撤销部署操作。
  • 模板化支持:支持使用模板文件,根据不同的变量生成不同的配置文件。
  • 详细的日志输出:支持不同级别的日志输出,方便调试和查看操作过程。

Github 仓库:https://github.com/SuperCuber/dotter

rust-analyzer 2025-04-14 (v0.3.2379) 发布

此次更新包含新功能“Locate child modules” 命令;修复了多个问题,如虚假的无效转换诊断等;还进行了多项内部改进,像降低 drop glue info 的冗长性、切换到 Rust 1.86 等。

原文:https://rust-analyzer.github.io/thisweek/2025/04/14/changelog-281.html

--

From 日报小组 Yuan YQ

社区学习交流平台订阅:

评论区

写评论
zzl221000 2025-04-17 10:38

GUI 对比表格怎么和原文对不上呢

1 共 1 条评论, 1 页