MCPcopy Index your code
hub / github.com/Privoce/GenUI

github.com/Privoce/GenUI @v0.1.2

Chat with this repo
repository ↗ · DeepWiki ↗ · release v0.1.2 ↗ · + Follow
1,447 symbols 3,142 edges 310 files 207 documented · 14%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README


GenUI

An innovative SFP Rust front-end framework


<a href="https://blog.rust-lang.org/2024/10/17/Rust-1.82.0.html">
  <img src="https://img.shields.io/badge/rustc-1.82.0%2B-orange?style=flat-square&logo=rust&logoColor=%23fff&labelColor=%23DEA584&color=%23DEA584"> 
</a>
<a href="https://blog.rust-lang.org/2024/10/17/Rust-1.82.0.html">
  <img src="https://img.shields.io/badge/edtion-2021-orange?style=flat-square&logo=rust&logoColor=%23fff&labelColor=%23DEA584&color=%23DEA584"> 
</a>
<a href="https://github.com/Privoce/GenUI/raw/v0.1.2/LICENSE">
  <img src="https://img.shields.io/badge/License-MIT-orange?style=flat-square&logoColor=%23fff&labelColor=%2323B898&color=%2323B898">
</a>
<a href="https://privoce.github.io/GenUI.github.io">
  <img src="https://img.shields.io/badge/doc-github-orange?style=flat-square&labelColor=%23393B47&color=%23393B47"> 
</a>

Introduction

GenUI is an innovative SFP front-end framework developed in the Rust language, was originally inspired by Vue3 and Makepad. Intended to help users write front-end projects using Rust more efficiently.

[!IMPORTANT]

The stable branch is main

The current work branch is dev_${version}

How to learn

You can read GenUI Book to learn

If you have any questions or need further assistance, please feel free to consult the relevant documentation or contact us

RoadMap

Features

  • [x] Book for GenUI
  • [x] the entire set of GenUI and other syntax design
  • [x] the underlying Makepad encoding conversion and compiler
  • [x] dynamic script embedding (plug-in capability)
  • [x] Rust script processing:
  • [x] two-way binding
  • [x] component events
  • [x] component import
  • [x] component definition
  • [x] prop definition
  • [x] event definition
  • [x] network (http)
  • [x] lifecycle
    • [x] before_mount
    • [x] mounted
    • [x] before_update
    • [x] updated
  • [x] computed
  • [x] Integrate Basic GenUI Builtin Components
  • [x] Ract Cli support
  • [x] Built-in syntax sugar
  • [x] for
  • [x] if_else_if_else
  • [ ] Integrate all Builtin Components (70%)
  • [x] Optimize static compilation
  • [ ] Powerful Scss like <style>
  • [x] Self-Close component tag
  • [x] Powerful Bind
  • [ ] VSCode Plugin
  • [ ] Remote Services

Releases

Collaboration and Feedback

[!IMPORTANT] GenUI is currently in the early stages of development, with many features still being planned and implemented. We welcome community feedback and collaboration! If you have any suggestions for the framework, need to report an issue, or would like to add features, please contact us through the following channels:

Thank you for your support, and we look forward to building a better GenUI with you!

Extension points exported contracts — how you extend this code

ToTokensExt (Interface)
(no doc) [14 implementers]
gen/generator/makepad/src/traits.rs
WasmImpl (Interface)
# WasmImpl trait WasmImpl trait is used to handle the wasm stratege [1 implementers]
gen/utils/src/wasm/mod.rs
AnalyzerStr (Interface)
(no doc) [2 implementers]
gen/middleware/rssyin/src/analyzer/utils.rs
Prop (Interface)
用于标注属性的特性
gen/traits/src/prop/mod.rs
TwoWayBindImpl (Interface)
(no doc) [23 implementers]
gen/generator/makepad/src/two_way_binding/mod.rs
Configer (Interface)
# Configer trait Configer trait is used to handle the config file ## Attention ❗Make sure the Config struct's path field [1 …
gen/utils/src/compiler/config.rs
Event (Interface)
这个Event trait仅作为一个事件标识存在 主要目的在于快速让GenUI定位到事件 所以这个trait不需要任何方法
gen/traits/src/event/mod.rs
WidgetImpl (Interface)
(no doc) [15 implementers]
gen/generator/makepad/src/builtin/widget/traits.rs

Core symbols most depended-on inside this repo

to_string
called by 390
gen/utils/src/common/dep.rs
to_string
called by 135
gen/analyzer/src/model/poll.rs
as_str
called by 106
gen/analyzer/src/model/poll.rs
extend
called by 104
gen/generator/makepad/src/script/impl/impl_self.rs
push
called by 103
gen/generator/makepad/src/builtin/prop/mod.rs
get
called by 64
gen/generator/makepad/src/compiler/tree/mod.rs
as_f32
called by 64
gen/analyzer/src/parse/value/mod.rs
insert
called by 63
gen/generator/makepad/src/compiler/tree/mod.rs

Shape

Method 693
Function 378
Enum 189
Class 163
Interface 24

Languages

Rust100%

Modules by API surface

gen/utils/src/props_manul/enums.rs70 symbols
gen/analyzer/src/parse/value/bind.rs41 symbols
gen/utils/src/common/dep.rs39 symbols
gen/utils/src/common/fs.rs34 symbols
gen/analyzer/src/model/template/mod.rs27 symbols
gen/tests/src/makepad.rs24 symbols
gen/generator/makepad/src/lib.rs24 symbols
gen/analyzer/src/model/template/prop.rs21 symbols
gen/tests/src/middleware/rssyin/mod.rs19 symbols
gen/generator/makepad/src/model/traits/live_hook.rs18 symbols
gen/utils/src/common/ast.rs17 symbols
gen/generator/makepad/src/model/traits/widget.rs17 symbols

For agents

$ claude mcp add GenUI \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact