Please check the build logs for more information.
See Builds for ideas on how to fix a failed build, or Metadata for how to configure docs.rs builds.
If you believe this is docs.rs' fault, open an issue.
An idiomatic GUI library inspired by Elm and based on gtk4-rs. Relm4 is a new version of relm that's built from scratch and is compatible with GTK4 and libadwaita.
Why Relm4
We believe that GUI development should be easy, productive and delightful. The gtk4-rs crate already provides everything you need to write modern, beautiful and cross-platform applications. Built on top of this foundation, Relm4 makes developing more idiomatic, simpler and faster and enables you to become productive in just a few hours.
Our goals
- ⏱️ Productivity
- ✨ Simplicity
- 📎 Outstanding documentation
- 🔧 Maintainability
Documentation
Dependencies
Relm4 depends on GTK4: How to install GTK4 and Rust
Ecosystem
- relm4-macros - several macros for declarative UI definitions.
- relm4-components - a collections of reusable components.
- relm4-icons - icons for your application.
- relm4-template - a starter template for creating Relm4 applications in the Flatpak package format.
- relm4-snippets - code snippets to speed up your development.
Use this in to your Cargo.toml:
# Core library
= "0.10"
# Optional: reusable components
= "0.10"
# Optional: icons (more info at https://github.com/Relm4/icons)
= "0.10"
Features
The relm4 crate has four feature flags:
| Flag | Purpose | Default |
|---|---|---|
macros |
Enable macros by re-exporting relm4-macros |
✅ |
libadwaita |
Improved support for libadwaita | - |
libpanel |
Improved support for libpanel | - |
gnome_49 |
Enable all version feature flags of all dependencies to match the GNOME 49 SDK | - |
gnome_48 |
Enable all version feature flags of all dependencies to match the GNOME 48 SDK | - |
gnome_47 |
Enable all version feature flags of all dependencies to match the GNOME 47 SDK | - |
gnome_46 |
Enable all version feature flags of all dependencies to match the GNOME 46 SDK | - |
gnome_45 |
Enable all version feature flags of all dependencies to match the GNOME 45 SDK | - |
gnome_44 |
Enable all version feature flags of all dependencies to match the GNOME 44 SDK | - |
gnome_43 |
Enable all version feature flags of all dependencies to match the GNOME 43 SDK | - |
gnome_42 |
Enable all version feature flags of all dependencies to match the GNOME 42 SDK | ✅ |
The macros feature is a default feature.
Examples
Several example applications are available at examples/.
📸 Screenshots from the example apps
A simple counter app

use *;
use *;
Projects using Relm4
- fm — A small, general-purpose file manager.
- Done - A simple and versatile to do app.
- Reovim - GUI frontend for neovim.
- NixOS Configuration Editor - A graphical configuration editor for NixOS.
- Rhino Setup - Setup wizard for Rolling Rhino
- Lemoa - Desktop client for Lemmy
- Score Tracker - App for tracking player scores in card and board games
- Spidey - A seamless and distraction-free work and play environment on the web
- Toolbox Tuner - An application to manage Toolbx containers
- BitRitter - A bitwarden/vaultwarden client with mobile devices in mind
- Space Acres - An opinionated GUI application for farming on Autonomys Network
- Exercise Timer - An interval training app for the GNOME desktop
- Words! - on Flathub - A word game similar to Wordle
- LACT - A GPU configuration and info utility
- xdg-mimer - A GUI tool for managing MIME associations using XDG standards
- CoDLinux - A CoD & CoD:UO client helper for GNU/Linux
- waypomo - endless pomodoro timer for wlroots compositors (uses gtk4-layer-shell)
- Vinyl - A simple adwaita audio player
License
Licensed under either of
- Apache License, Version 2.0, (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
at your option.
Contribution
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.
Feedback and contributions are highly appreciated!