Cargo Features

egui = { version = "0.24.1", default-features = false, features = ["accesskit", "bytemuck", "callstack", "cint", "color-hex", "deadlock_detection", "default_fonts", "extra_debug_asserts", "extra_asserts", "log", "mint", "persistence", "puffin", "serde", "unity", "document-features"] }
default = default_fonts

The default_fonts feature is set by default whenever egui is added without default-features = false somewhere in the dependency tree.


Exposes detailed accessibility implementation required by platform accessibility APIs. Also requires support in the egui integration.

Affects output::PlatformOutput.accesskit_update, egui::accesskit_root_id


bytemuck enables you to cast epaint::Vertex, emath::Vec2 etc to &[u8].

Enables bytemuck of epaint


Show a debug-ui on hover including the stacktrace to the hovered item.
This is very useful in finding the code that creates a part of the UI.
Does not work on web.

Enables backtrace


cint enables interoperability with other color libraries.

Enables cint of epaint


Enable the hex_color macro.

Enables color-hex of epaint


This will automatically detect deadlocks due to double-locking on the same thread. If your app freezes, you may want to enable this! Only affects epaint::mutex::RwLock (which egui uses a lot).

Enables deadlock_detection of epaint

default_fonts default

If set, egui will use include_bytes! to bundle some fonts. If you plan on specifying your own fonts you may disable this feature.

Enables default_fonts of epaint


Enable additional checks if debug assertions are enabled (debug builds).

Enables extra_debug_asserts of epaint


Always enable additional checks.

Enables extra_asserts of epaint


Turn on the log feature, that makes egui log some errors using the log crate.

Enables log of epaint, log


mint enables interoperability with other math libraries such as glam and nalgebra.

Enables mint of epaint

persistence = ron, serde

Enable persistence of memory (window positions etc).

Enables serde of epaint

Affects id_type_map::SerializableAny


Enable profiling with the puffin crate.

Only enabled on native, because of the low resolution (1ms) of clocks in browsers.

serde persistence?

Allow serialization using serde.

Enables serde, serde of epaint and optional accesskit


Change Vertex layout to be compatible with unity

Enables unity of epaint

Features from optional dependencies

In crates that don't use the dep: syntax, optional dependencies automatically become Cargo features.

document-features implicit feature

ron persistence?