|
1 | 1 |  |
2 | 2 |
|
3 | 3 | # EFx |
| 4 | +**🧑💻 Easy as HTML, 🚀 Fast as C, 🔐 Safe cause Rust** |
| 5 | + |
4 | 6 | [](https://crates.io/crates/efx) |
5 | 7 |  |
6 | 8 |  |
|
12 | 14 | **EFx** — Rust 🦀 XML Template Engine for [egui](https://github.com/emilk/egui)-based frameworks: [eframe](https://github.com/emilk/egui/tree/master/crates/eframe), [bevy_egui](https://github.com/vladbat00/bevy_egui), [egui-winit](https://crates.io/crates/egui-winit), [egui-miniquad](https://github.com/not-fl3/egui-miniquad). |
13 | 15 | `efx!` is a proc-macro for writing tiny XML-like UI snippets in `eframe/egui`. It converts short tags into `egui` calls. |
14 | 16 |
|
15 | | -**Simplicity and Convenience — XML, 🚀 Speed and 🔐 Security — Rust** |
16 | | - |
17 | | -**Easy as HTML, Fast as C** |
| 17 | +**What EFx is great for** |
18 | 18 |
|
19 | | -You can embed arbitrary Rust expressions inside braces (`{...}`). |
| 19 | +* 🖥️ **Desktop applications** — configuration panels, launchers, developer tools, dashboards. |
| 20 | +* 🎮 **Game development** — in-game menus, HUDs, editors, and overlays using `bevy_egui`. |
| 21 | +* 🌐 **WebAssembly apps** — single-page Rust apps that render via `eframe` in `<canvas>`. |
| 22 | +* 🧰 **Internal tools** — property editors, inspectors, debug panels, and other utility UIs. |
| 23 | +* 🔬 **Visualization** — scientific dashboards, data explorers, and control interfaces for simulations. |
20 | 24 |
|
21 | 25 | --- |
22 | 26 |
|
23 | 27 | ### Install & import |
24 | 28 |
|
25 | | -Requires `egui` (the project currently uses `egui 0.32`). Add to `Cargo.toml`: |
| 29 | +Requires `egui` (the project currently uses `egui 0.33`). Add to `Cargo.toml`: |
26 | 30 | ```toml |
27 | 31 | [dependencies] |
28 | | -efx = "0.6" |
29 | | -egui = "0.32" # or egui-based framework |
| 32 | +efx = "0.7" |
| 33 | +egui = "0.33" # or egui-based framework |
30 | 34 | ``` |
31 | 35 |
|
32 | 36 | Inside this repo just import the macro: |
@@ -90,15 +94,8 @@ At compile time the macro parses your snippet; at runtime it shows readable diag |
90 | 94 | ### Roadmap & RFCs |
91 | 95 |
|
92 | 96 | **TL;DR.** EFx is a minimalist XML DSL on top of `egui` that compiles to plain `ui.*` calls. |
93 | | -The next three releases focus on expressiveness and first-class examples across popular `egui` runtimes: |
94 | | - |
95 | | -* **0.7 — Themes & layouts:** lightweight style sheets, extended containers (`Tabs/Table` behind `extras`), perf & polish. |
96 | | - |
97 | | -This plan is incremental and **non-breaking**; new features are opt-in. Priorities may change based on community feedback. |
98 | | - |
99 | | -👉 **Full RFC:** [EFX-0001 — Roadmap 0.5–0.7](efx/docs/rfcs/EFX-0001-roadmap-0.5-0.7.md) |
100 | 97 |
|
101 | | -👉 **RFC index:** [RFC/README.md](efx/docs/rfcs/README.md) |
| 98 | +**RFC index:** [RFC/README.md](efx/docs/rfcs/README.md) |
102 | 99 |
|
103 | 100 | --- |
104 | 101 |
|
@@ -126,7 +123,7 @@ EFx renders into any runtime that provides `&mut egui::Ui`. We officially build |
126 | 123 | # Cargo.toml |
127 | 124 | [dependencies] |
128 | 125 | efx = "0.7" |
129 | | -eframe = "0.32" |
| 126 | +eframe = "0.33" |
130 | 127 | ``` |
131 | 128 |
|
132 | 129 | ```rust |
@@ -165,7 +162,7 @@ bevy_egui::egui::Window::new("EFx").show(egui_ctx.ctx_mut(), |ui| { |
165 | 162 | # Cargo.toml |
166 | 163 | [dependencies] |
167 | 164 | efx = "0.7" |
168 | | -egui = "0.32" |
| 165 | +egui = "0.33" |
169 | 166 | egui-winit = "0.32" |
170 | 167 | egui-wgpu = "0.32" |
171 | 168 | winit = "0.30" |
|
0 commit comments