🇺🇦 Please support the Ukrainian army: https://www.comebackalive.in.ua/donate
bevy_eguiThis crate provides a Egui integration for the Bevy game engine.
Trying out:
An example WASM project is live at mvlabat.github.io/bevy_egui_web_showcase [source].
Features:
bevy_egui can be compiled with using only bevy and egui as dependencies: manage_clipboard and open_url features,
that require additional crates, can be disabled.

On Linux, this crate requires certain parts of XCB to be installed on your system. On Debian-based systems, these can be installed with the following command:
$ sudo apt install libxcb-render0-dev libxcb-shape0-dev libxcb-xfixes0-dev
Here’s a minimal usage example:
# Cargo.toml
[dependencies]
bevy = "0.9"
bevy_egui = "0.18"
use bevy::prelude::*;
use bevy_egui::{egui, EguiContext, EguiPlugin};
fn main() {
App::new()
.add_plugins(DefaultPlugins)
.add_plugin(EguiPlugin)
// Systems that create Egui widgets should be run during the `CoreStage::Update` stage,
// or after the `EguiSystem::BeginFrame` system (which belongs to the `CoreStage::PreUpdate` stage).
.add_system(ui_example)
.run();
}
fn ui_example(mut egui_context: ResMut<EguiContext>) {
egui::Window::new("Hello").show(egui_context.ctx_mut(), |ui| {
ui.label("world");
});
}
For a more advanced example, see examples/ui.rs.
cargo run --example ui
Note: if you’re looking for a bevy_egui version that supports main branch of Bevy, check out open PRs, there’s a great chance we’ve already started working on the future Bevy release support.
| bevy | bevy_egui |
|---|---|
| 0.9 | 0.17-0.18 |
| 0.8 | 0.15-0.16 |
| 0.7 | 0.13-0.14 |
| 0.6 | 0.10-0.12 |
| 0.5 | 0.4-0.9 |
| 0.4 | 0.1-0.3 |