Rust Constructor V2
A cross-platform GUI framework built on egui, the simplest way to develop GUI projects in Rust
English | 简体中文
Rust Constructor is an open-source project, but is not directly affiliated with the egui development team!
Table of Contents
- Version Update Information
- Introduction
- Quick Start
- Purpose of Creating Rust Constructor
- Frequently Asked Questions
- License
- Conclusion
Version Update Information
- The current latest version is
v2.4.0 Mouse Update. Major updates include:- Renamed
FrontResourcetoBasicFrontResource. - Added an
offsetfield to certain resources for adjusting their position (applied after position calculation). - Added
PositionConfigfor configuring resource positions. - Removed the
get_text_sizemethod; text size is now automatically calculated upon use and stored in the newsizefield ofText. - Added
MouseDetectorresource for detecting mouse actions within specific areas. - Added
MouseDetectorLevelenum to control detection intensity and reduce performance overhead. - Added accompanying struct
MouseDetectorResultfor storing mouse detection results. - Extended
RustConstructorErrorwith a new error type:MouseDetectorNotFound. - Added a
safe_modeoptional parameter to nearly all functions that require resource access. When left empty, it uses the newsafe_modefield inAppfor control. When enabled, it performs safety checks on required resources to prevent errors. - Fixed an issue where some
Textelements couldn't be selected when multipleTexts were used. - Fixed index errors in
Texthyperlinks when encountering emojis or other special characters. - Now, when
Textis selected, pressing the select-all shortcut key will select the entire text block. - Added
switchedfield toSwitchto indicate whether the switch state was toggled by a click. SwitchDatahas been renamed toSwitchAppearance.- Introduced a new
SwitchDatastruct containing several commonly used judgment fields. - Replaced
check_switch_click_indexandcheck_switch_statewithcheck_switch_data. - Improved parts of the codebase.
- Fixed several known issues.
- Renamed
Introduction
Rust Constructoris a Rust GUI development library built on egui, including common features such as timers, resource storage, and error handling.Rust Constructorreleased its first version in2025.2, and today'sRust Constructorhas undergone earth-shattering changes compared to that time.
Quick Start
- To introduce
Rust Constructor, please addrust_constructor = "x.y.z"(please replace xyz as needed) to yourtoml. - If you want to start
Appand perform some simple operations, it is recommended to refer to the official egui documentation. - Due to the large content and complex operations of
Rust Constructor, it is inconvenient to fully describe here. You can refer to the official tutorial ofRust ConstructorRust Constructor Guide.
Purpose of Creating Rust Constructor
We encountered some problems that egui could not solve during the development of Targeted Vector, so we expanded many tools. To enable more people to develop conveniently, we created Rust Constructor.
Frequently Asked Questions
-
Q1: Which platforms does
Rust Constructorsupport? -
A1:
macOSandWindowsare confirmed to be fully supported, other platforms depend oneguisupport. -
Q2: What are the differences between
Rust Constructor V2andV1? -
A2: The original architecture was modified to conform to the
cratestructure, published on crates.io, and added an official guide. -
Q3: Why do I get errors when calling resources?
-
A3: Please ensure you have added the resources through the
addmethod and there are no spelling errors. -
Q4: How to modify resources?
-
A4: You can retrieve resources via
get_resource_mut. -
Q5: What should I do if I encounter unknown error messages?
-
A5: First check the
RustConstructorErrordefinition in theRust Constructorsource code, find the problem you triggered and fix it. -
Q6: Why is only
V2ofRust Constructoroncrates.io? -
A6:
Rust Constructor V0andRust Constructor V1were essentially bloated projects with many redundant features and meaningless code, so they were not published.
License
MIT © 2025 ChepleBob
Conclusion
If you like this project, please give me a star on GitHub. You can also join our organization Binder.