Repolode
wieslawsoltes

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. 1

    Check that Rust 1.89 or later is installed

  2. 2

    Add the FerroUI crates to the dependencies in Cargo.toml

  3. 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