A cross-platform .NET UI framework for building desktop, mobile, embedded and WebAssembly apps with C# and XAML.
wieslawsoltes/FerroUI
A cross-platform Rust UI framework that ports Avalonia's architecture, with styled properties, data binding, XAML markup and multiple themes.
- Stars
- 232
- Forks
- 14
- Open issues
- 22
- Last commit
- 22 hours ago
What is it?
FerroUI is a retained-mode UI framework for Rust that ports the Avalonia UI architecture, keeping its object model, control contracts and behaviour so that applications, themes and XAML written against that model carry over. It provides a styled property system, logical and visual trees, routed events, layout, data binding, control themes (Fluent, Simple, WinUI 3, macOS 26 and Material 3) and a composition-based renderer.
Rendering goes through swappable backends: Skia is the default and reference renderer, with HarfBuzz for text shaping, and an experimental Vello backend is also available. The framework targets macOS, Windows, Linux (X11, Wayland and framebuffer), iOS, Android and the browser via WebAssembly, and includes a declarative Rust API (`ferroui-view`) as an alternative to XAML, plus developer tools for inspecting a running application.
The project is at version 0.4.0 and the README notes that platform coverage is verified mainly in CI, virtual machines and simulators rather than on a wide range of real devices.
Key features
- 01Styled property system with inheritance, coercion and change notification
- 02Data binding with converters, multi-bindings, validation and templates
- 03XAML markup compiled at build time or loaded at run time
- 04Swappable rendering backends including Skia, with HarfBuzz text shaping
- 05Declarative Rust UI API with signals, components and hot reload
- 06Developer tools for inspecting trees, properties and layout
Use cases
- Building cross-platform desktop applications in Rust with a XAML-style workflow
- Porting Avalonia-based UI code or themes to a Rust codebase
- Creating Rust applications that also target iOS, Android or the browser
- Experimenting with a declarative, XAML-free Rust UI API
Quick start
- 1
Check that Rust 1.89 or later is installed
- 2
Add the FerroUI crates to the dependencies in Cargo.toml
- 3
Run the Designer Studio from the repository checkout
cargo run -p designer-studio
Things to know
- Version 0.4.0 may see public API changes in 0.5.0.
- The first build downloads or compiles Skia and builds HarfBuzz from source, so it can take a long time.
- Several platforms were verified only in CI, virtual machines or simulators, not on real devices.
- Linux framebuffer support was tested only with virtual devices, and iOS only in the simulator.
In collections
Topics
FAQ
- What is FerroUI?
- A cross-platform Rust UI framework that ports Avalonia's architecture, with styled properties, data binding, XAML markup and multiple themes. FerroUI is a retained-mode UI framework for Rust that ports the Avalonia UI architecture, keeping its object model, control contracts and behaviour so that applications, themes and XAML written against that model carry over. It provides a styled property system, logical and visual trees, routed events, layout, data binding, control themes (Fluent, Simple, WinUI 3, macOS 26 and Material 3) and a composition-based renderer.
- Is FerroUI free to use? What license does it have?
- FerroUI is open source under the MIT license. Check the license terms before using it in commercial products.
- Is FerroUI still maintained?
- Actively maintained. The last commit to FerroUI was on Nov 6, 2026.
- What can I use FerroUI for?
- Building cross-platform desktop applications in Rust with a XAML-style workflow Porting Avalonia-based UI code or themes to a Rust codebase Creating Rust applications that also target iOS, Android or the browser Experimenting with a declarative, XAML-free Rust UI API
- How do I install FerroUI?
- Check that Rust 1.89 or later is installed Add the FerroUI crates to the dependencies in Cargo.toml Run the Designer Studio from the repository checkout: cargo run -p designer-studio
- Where can I get FerroUI?
- The source code and installation instructions are on GitHub: https://github.com/wieslawsoltes/FerroUI
Summary generated by AI from the project's README. GitHub stats refresh daily.
Related projects
WinUI is Microsoft's UI layer of modern controls and styles for building Windows desktop apps, with WinUI 3 shipping in the Windows App SDK.
A cross-platform C++17 UI framework with GLFW/SDL2 window backends and OpenGL/Vulkan rendering, built around a declarative DSL.
A native, GPU-rendered Rust UI framework for macOS, Windows, Linux and the web, with its own renderer, text, layout and springs.
Open-source Python framework for building GUI apps that run on desktop, mobile and embedded platforms from one codebase.
A Zig toolkit for building desktop apps with native UI drawn on the GPU, or with a web page in the system webview.