Crate gxi[][src]

Expand description

GXI

Cross-Platform Native Widget based Component System in Rust

This project implements a component system of GUI widgets and nodes. Using rust proc-macros compiles the component tree to optimized logical n-binary tree flow which prevents the use of any virtual dom or diffing algorithms. Making the component system zero cost. Hence the components are highly optimized, performant, and customized to meet the needs of each project while maintaining the standard features of frameworks like React. Built-in async support allows for quick and performant abstractions to rust futures.

Since the framework is a compiler, therefore, it allows mixing of platform dependent and independent components, i.e the framework provides components like div, h1 (platform dependent) and React Native like platform-independent components like Text and View. Therefore making the code portable without losing deep control of the native system.

Read more here

Macros

proc-macro for writing gxi components

impl container trait, should have child field

impl container trait, should have child field

impl NodeComponent

impl get_child, get_child_mut, get_parent

impl as_any and as_any_mut for node

impl as_any and as_any_mut for node

impl is_dirty, mark_dirty and mark_clean for node need to have is_dirty:bool as a struct field

Structs

Enums

used with init_member

Traits

A component is node which doesn’t have a native widget

a node which can hold children

Node which has a native widget and can hold children

Struct should also implement Drop to remove node widget from the tree

Node which has a native widget

Functions

if init_type doesn’t already exist then run init() and return clone of the new member

Type Definitions