Rust构建用户界面现状:根基尚浅但生态渐丰,多种框架各展其能 Are we GUI Yet?Rust在构建用户界面方面的现状作为一种底层语言Rust非常适合以传统方式使用原生API来创建用户界面。然而在当今世界进行竞争通常意味着要支持多个平台这使得使用原生API对许多人来说缺乏吸引力。Rust的表达能力和高级抽象使其非常适合构建复杂精细的用户界面。遗憾的是对于最佳抽象方式目前还缺乏共识。如今有许多与现有框架的绑定可供使用但那些寻求成熟、易用且完全基于Rust的解决方案的人很可能会失望而归。目前在Rust中构建GUI的方法包括与Electron交互以及使用HTML或基于HTML的框架构建GUI还有一些人则使用图形API和各种包装器来模拟经典小部件。为Servo构建并可在Firefox Nightly中使用的跨平台并行渲染引擎Webrender采用了后一种方法它支持多平台但更像是GUI框架的基础而非一个完整的GUI框架。紧跟动态以下是近期提交到该网站的社区链接。如果你正在从事Rust GUI相关工作或撰写相关文章请积极贡献每条新闻条目可以是指向你博客、Reddit帖子等的链接。TheRedDeveloper构建Rust应用不应如此困难所以我开发了Ply2026年3月1日boringcactus2025年Rust GUI库调查2025年4月13日Bruce Mitchener、Daniel McNab2024年11月的Linebender色彩2024年12月18日Jonathan KelleyDioxus 0.6版本发布2024年12月9日Tillmann WeidingerTauri 2.0稳定版发布2024年10月2日生态系统选择下方的标签可多选以仅显示相关的crate。若未选择标签则会显示所有crate。标签包括绑定、CSS、嵌入式、FLTK、GTK、HTML、即时模式API、MacOS、QML、Qt、响应式API、WebGPU、WebRender、WinApi、iOS、piet、过程宏、winit。AzulAzul GUI是一个免费的、功能性的、响应式GUI框架用于快速开发用Rust和C编写的桌面应用程序它使用了Mozilla的WebRender渲染引擎。blincBlinc是一个具有简洁布局和渲染API的应用程序框架。cacaoRust对AppKitmacOS/Airyx/GNUStep测试版和UIKitiOS/tvOSAlpha版的绑定。core - foundation对macOS的Core Foundation的绑定。Crux用于跨平台应用开发的Rust框架。Cushy一个由wgpu驱动的图形用户界面GUI库具有响应式数据模型。CXX - QtCXX - Qt是一个库它可以自动生成代码通过QObjects等通用接口在Rust和C之间传输数据这些接口可以直接暴露到QML中。它使用cxx crate实现Rust和C之间的安全交互。Dioxus一个优雅的、类似React的库用于为桌面、网页、移动设备、服务器端渲染SSR、实时视图等构建用户界面。Dominator一个使用FRP信号的零成本、超高性能的声明式DOM库。egui一个易于使用的即时模式GUI可在网页和原生环境中运行。Floem一个旨在提供卓越性能和一流开发体验的UI库由开发Lapce代码编辑器的团队打造。fltkFLTK crate是一个跨平台的轻量级GUI库可以静态链接以生成小巧、独立且快速的二进制文件。flutter_rust_bridgeFlutter/Dart与Rust的绑定生成器功能丰富且无缝简单。Freya一个由Skia驱动的跨平台非网页GUI库。fui一个面向MVVM属性、可观察集合、绑定的库具有ui!宏支持多平台与渲染器无关带有样式。GemGui一个GUI应用程序库。GPUI一个混合即时模式和保留模式、GPU加速的UI框架旨在支持各种应用程序。GTK 3已停止维护的Rust对GTK 3库的绑定建议使用gtk4。GTK 4Rust对GTK 4库的绑定。Iced一个专注于简单性和类型安全的、与渲染器无关的Rust GUI库灵感源自Elm。imgui对dear imgui的高级Rust绑定。Kas一种现代的有状态GUI开发方法原生Rust实现具备可访问性和可扩展性。kittest使用AccessKit进行自动化GUI测试。LeptosLeptos是一个全栈、同构的Rust网络框架利用细粒度的响应式机制来构建声明式用户界面。lvglRust对LVGL的绑定。LVGL是一个功能强大且易于使用的嵌入式GUI拥有众多小部件、高级视觉效果不透明度、抗锯齿、动画且内存需求低16K RAM、64K Flash。MakepadMakepad是一个全新的VR、网页和原生渲染UI框架。masonryMasonry工具包的特性和类型。Maycoon已弃用Pane UI一个用户友好的数据定义即时模式UI系统可以用ron定义菜单。Pax用于跨平台应用的用户界面语言和2D布局引擎。Ply一个基于macroquad构建的应用引擎具有即时模式API和简单命令支持跨平台。它具备可访问性、着色器、存储、类似Flexbox的布局、调试视图等功能。qmetaobject一个让每个人都能用Rust创建Qt/QML应用程序的框架。它通过在编译时构建QMetaObjects、注册QML类型可选地通过暴露QQmlExtensionPlugins并提供惯用的包装器来实现这一目标。relm一个基于GTK的异步GUI库受Elm启发用Rust编写。Relm4一个受Elm启发、基于gtk4 - rs的惯用GUI库。RibirRibir是一个Rust GUI框架可帮助你从单一代码库构建美观的原生多平台应用程序。Rinf使用Rust处理原生业务逻辑使用Flutter构建灵活美观的GUI。RosinRosin是一个旨在极其易用的GUI库。rui一个实验性的声明式UI库。SDL3对SDL3的绑定SDL3是一个跨平台库用于抽象构建应用程序时特定平台的细节。SlintSlint是一个工具包用于为任何显示器嵌入式设备和桌面应用程序高效开发流畅的图形用户界面。它拥有快速的OpenGL渲染器、对设计师友好的标记语言并且用Rust编写。采用三重许可GPLv3、免版税和商业许可。TauriTauri是一个用于为所有主流桌面平台构建小巧、快速二进制文件的框架。Tessera一个专注于性能和可扩展性的跨平台声明式和功能性UI库。tinyfiledialogs对tinyfiledialogs C库的高级Rust绑定。TkRust对Tk GUI库的绑定。undoredo在Rust中使用增量、快照或命令实现撤销/重做功能为许多标准和第三方类型提供了便捷的实现。Vizia一个声明式桌面GUI框架。WebRender一个用于网页内容的GPU加速2D渲染器。windows用于Windows的Rust开发。WinSafe用安全、惯用的Rust实现Windows API和GUI。wxDragon通过wxDragon C包装器实现对wxWidgets的安全Rust绑定。Xilem一个用于响应式UI的实验性Rust架构。Yew一个用于创建可靠、高效Web应用程序的框架。关于本项目受arewegameyet及其他类似的Rust社区网站启发而创建。Rust在构建用户界面方面还有很长的路要走未来这些框架将如何发展能否满足开发者的需求呢