Azul is a library for creating graphical user interfaces or GUIs in Rust. It mixes paradigms from functional, immediate mode GUI programming commonly found in games and game engines with an API suitable for developing desktop applications. Instead of focusing on an object-oriented approach to GUI programming ("a button is an object"), it focuses on combining objects by composition ("a button is a function") and achieves complex layouts by composing widgets into a larger DOM tree.

Azul separates the concerns of business logic / callbacks, data model and UI rendering / styling by not letting the UI / rendering logic have mutable access to the application data. Widgets of your user interface are seen as a "view" into your applications data, they are not "objects that manage their own state", like in so many other toolkits. Widgets are simply functions that render a certain state, more complex widgets combine buttons by calling a function multiple times.

The generated DOM itself is immut

Monthly Downloads: 107
Programming language: Rust
License: MIT License
Tags: GUI     Graphics     Ui     Applications written in Rust     svg     User-interface    

Azul alternatives and similar packages

Based on the "GUI" category

Do you think we are missing an alternative of Azul or a related project?

Add another 'GUI' Package


Azul - Desktop GUI framework

WARNING: The features advertised in this README may not work yet.

<!-- [START badges] --> Build Status Linux / macOS Build status Windows Coverage Status [LICENSE](LICENSE) Rust Compiler Version <!-- [END badges] -->

Azul is a free, functional, immediate mode GUI framework that is built on the Mozilla WebRender rendering engine for rapid development of desktop applications that are written in Rust and use a CSS / DOM model for layout and styling.

Website | Tutorial / user guide | Video demo | Discord Chat


Azul is not ready for usage or production yet. For a description of the project and usage, please read the wiki.

Azul will be ready when the 0.1 version releases on crates.io. If you want to be notified when this happens, please click "Watch Repository > Releases only" at the top of this page.

There are currently issues with dependency management, linkage on Windows, rendering, redrawing and documentation issues as well as issues with the layout solver. These are all known issues, please refrain from reporting them over and over again. The current working branch is unvendor_dependencies_2, the examples on that branch should work. As with many opensource repositories, the programmatic model of Azul is great, but it's not battle-tested or usable yet.

Yes, Azul is still under development, but very, very slowly. The screenshots on azul.rs were taken before the new layout solver was implemented, that's why the current state differs from the renderings found on the website.



*Note that all licence references and agreements mentioned in the Azul README section above are relevant to that project's source code only.