Repolode
wieslawsoltes

wieslawsoltes/FerroUI

基于 Avalonia 架构移植到 Rust 的跨平台 UI 框架,支持样式属性系统、数据绑定、XAML 与多种主题。

Star
240
Fork
15
未关闭 Issue
22
最近提交
3小时前

这是什么?

FerroUI 是一个用 Rust 编写的 UI 框架,移植自 Avalonia UI,保留其对象模型、控件契约和行为设计,因此基于该模型编写的应用、主题和 XAML 可以沿用原有结构。框架提供样式属性系统、逻辑树与可视树、路由事件、布局、数据绑定、控件主题(Fluent、Simple、WinUI 3、macOS 26 与 Material 3)以及基于合成的渲染器。

渲染部分可替换后端:默认使用 Skia,文本排版使用 HarfBuzz,另有实验性的 Vello 后端。框架支持 macOS、Windows、Linux(X11、Wayland 与 framebuffer)、iOS、Android,并可通过 WebAssembly 运行在浏览器中。除 XAML 外,还提供声明式 Rust API(`ferroui-view`),以及用于检查运行中应用的开发者工具。

项目当前版本为 0.4.0。各平台的验证主要在 CI、虚拟机和模拟器上完成,尚未在大量真实设备上测试。

核心功能

  • 01带继承、强制转换和变更通知的样式属性系统
  • 02支持转换器、多重绑定、数据验证和模板的数据绑定
  • 03XAML 标记可在构建时编译或运行时加载
  • 04可替换的渲染后端,包括 Skia,文本排版使用 HarfBuzz
  • 05声明式 Rust UI API,支持信号、组件与热重载
  • 06用于检查控件树、属性和布局的开发者工具

适用场景

  • 用 Rust 构建跨平台桌面应用,并采用类似 XAML 的开发方式
  • 将基于 Avalonia 的界面代码或主题迁移到 Rust 项目
  • 开发同时面向 iOS、Android 或浏览器的 Rust 应用
  • 尝试不使用 XAML 的声明式 Rust UI API

快速上手

  1. 1

    确认已安装 Rust 1.89 或更高版本

  2. 2

    在 Cargo.toml 的依赖中添加 FerroUI 各个 crate

  3. 3

    在仓库目录中运行 Designer Studio

    cargo run -p designer-studio

使用前须知

  • 0.4.0 版本的公共 API 在 0.5.0 中可能会发生变化。
  • 首次构建需要下载或编译 Skia,并从源码构建 HarfBuzz,耗时可能很长。
  • 多个平台仅在持续集成、虚拟机或模拟器中验证,未在真实设备上验证。
  • Linux framebuffer 仅用虚拟设备测试,iOS 仅在模拟器中测试。

收录于专题

标签

常见问题

FerroUI 是什么?
基于 Avalonia 架构移植到 Rust 的跨平台 UI 框架,支持样式属性系统、数据绑定、XAML 与多种主题。 FerroUI 是一个用 Rust 编写的 UI 框架,移植自 Avalonia UI,保留其对象模型、控件契约和行为设计,因此基于该模型编写的应用、主题和 XAML 可以沿用原有结构。框架提供样式属性系统、逻辑树与可视树、路由事件、布局、数据绑定、控件主题(Fluent、Simple、WinUI 3、macOS 26 与 Material 3)以及基于合成的渲染器。
FerroUI 可以免费使用吗?用的什么许可证?
FerroUI 以 MIT 许可证开源。用于商业产品前,请先确认许可证条款。
FerroUI 还在维护吗?
活跃维护中。FerroUI 最近一次提交是在 2026年11月7日。
FerroUI 适合用来做什么?
用 Rust 构建跨平台桌面应用,并采用类似 XAML 的开发方式 将基于 Avalonia 的界面代码或主题迁移到 Rust 项目 开发同时面向 iOS、Android 或浏览器的 Rust 应用 尝试不使用 XAML 的声明式 Rust UI API
FerroUI 怎么安装和运行?
确认已安装 Rust 1.89 或更高版本 在 Cargo.toml 的依赖中添加 FerroUI 各个 crate 在仓库目录中运行 Designer Studio: cargo run -p designer-studio
在哪里获取 FerroUI?
源代码和安装说明在 GitHub 上:https://github.com/wieslawsoltes/FerroUI

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目