egui/eframe
Emil Ernerfeldt d5673412dd
Put everything in Context behind the same Mutex (#1050)
* Move all interior mutability from Context to CtxRef and make it a handle
* Rename `CtxRef` to `Context`
* The old `Context` is now `ContextImpl` and is non-pub
* Add benchmark Painter::rect

Co-authored-by: Daniel Keller <dklr433@gmail.com>
2022-01-10 23:13:10 +01:00
..
examples Put everything in Context behind the same Mutex (#1050) 2022-01-10 23:13:10 +01:00
src Put everything in Context behind the same Mutex (#1050) 2022-01-10 23:13:10 +01:00
Cargo.toml Switch to using glow as the default renderer both on native and the web (#1020) 2021-12-31 15:17:55 +01:00
CHANGELOG.md Switch to using glow as the default renderer both on native and the web (#1020) 2021-12-31 15:17:55 +01:00
README.md Switch to using glow as the default renderer both on native and the web (#1020) 2021-12-31 15:17:55 +01:00

eframe: the egui framework

Latest version Documentation unsafe forbidden MIT Apache

eframe is the official framework library for writing apps using egui. The app can be compiled both to run natively (cross platform) or be compiled to a web app (using WASM).

To get started, go to https://github.com/emilk/eframe_template/ and follow the instructions there!

You can also take a look at the eframe examples folder. There is also an excellent tutorial video at https://www.youtube.com/watch?v=NtUkr_z7l84.

For how to use egui, see the egui docs.


eframe is a very thin crate that re-exports egui andepi with thin wrappers over the backends.

eframe uses egui_web for web and egui_glium or egui_glow for native.

To use on Linux, first run:

sudo apt-get install libxcb-render0-dev libxcb-shape0-dev libxcb-xfixes0-dev libspeechd-dev libxkbcommon-dev libssl-dev

Alternatives

The default native backend for eframe is currently egui_glow, but you can switch to the previous egui_glium backend by putting this in your Cargo.toml:

eframe = { version = "*", default-features = false, features = ["default_fonts", "egui_glium"] }

eframe is not the only way to write an app using egui! You can also try egui-miniquad and egui_sdl2_gl.

Companion crates

Not all rust crates work when compiled to WASM, but here are some useful crates have been designed to work well both natively and as WASM:

Name

The frame in eframe stands both for the frame in which your egui app resides and also for "framework" (frame is a framework, egui is a library).