{"repo":"ZhukMax/efx","free":true,"listed":false,"github":"https://github.com/ZhukMax/efx","clone":"git clone https://github.com/ZhukMax/efx.git","description":"Rust <🦀/> XML Template Engine for egui-based frameworks","language":"Rust","stars":44,"topics":["eframe","egui","gui","proc-macro","rust","rust-library","templating","templating-engine","ui-components","bevy"],"license":null,"category":"ui-components","readme_excerpt":"EFx EFx — Rust 🦀 XML Template Engine for egui-based frameworks: eframe, bevy egui, egui-winit, egui-miniquad. efx! is a proc-macro for writing tiny XML-like UI snippets in eframe/egui . It converts short tags into egui calls. Simplicity and Convenience — XML, 🚀 Speed and 🔐 Security — Rust Easy as HTML, Fast as C You can embed arbitrary Rust expressions inside braces ( {...} ). --- Install & import Requires egui (the project currently uses egui 0.32 ). Add to Cargo.toml : Inside this repo just import the macro: --- Documentation You can see on web page https://docs.rs/efx or in files: - Introduction (🇫🇷 fr) - Tags (🇫🇷 fr) - Guide (🇫🇷 fr) --- Expression interpolation {...} Inside tag content you can insert any Rust expression that implements Display : Escaping braces To print { or } , use double braces (same as format! ): --- Errors & diagnostics At compile time the macro parses your snippet; at runtime it shows readable diagnostics via ui.Label(...) when input is invalid: Unknown tag Output: Unknown tag: Mismatched open/close tags Output: Mismatched tags: and Interpolation count mismatch Happens if the parser found e.g. two {expr} parts but after processing the text there’s a different number of {} placeholders. Make the counts match. --- Current limitations Case-sensitive tag names. Interpolated expressions must implement Display . --- Roadmap & RFCs TL;DR. EFx is a minimalist XML DSL on top of egui that compiles to plain ui. calls. The next three releases focus on e","default_branch":null,"files":null,"tree":[],"storefront":"/r/ZhukMax","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/ZhukMax/efx/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}