Skip to content

GUI framework for embedded Rust powered with fine-grained reactivity

Notifications You must be signed in to change notification settings

hazer-hazer/rsact

Repository files navigation

Reactive Rust GUI framework being built for embedded systems usage in mind


rsact is at a such early stage where everything is clumsy and messy, there's a lot of work to do, refactor, re-imagine and document. Though I hope the core idea works and will grow into "something".

Intro

rsact is a GUI framework targeting embedded systems. It is based on fine-grained reactivity system, hence the name.

The project consist of these parts:

  • rsact_reactive fine-grained reactivity framework.
  • rsact_ui the core of UI framework.
  • rsact_icons tuned pre-rendered icons targeting tiny sizes.
  • rsact_macros proc macros used both for rsact_ui and rsact_reactive.
  • rsact_encoder (planned) widgets specific for platforms with encoder+button control.
  • rsact_widgets (planned) high-level widget kinds such as drop-down list, menus, etc.

Setup

To use rsact you need a heap, embedded-alloc can be used in no_std environments. Heap usage depends on your screen size, rsact-ui needs at least a single buffer to render to, though embedded-graphics BinaryColor is optimized and packed by groups of 8 into single byte. It will possibly change in future if I add feature to pre-allocate buffer by users wherever they want. Heap usage also depends on amount of data stored in reactive system, so be carryful with what you put into Signals and Memos. At the moment I have tested rsact only on STM32F412RET6 running at 100MHz with SPI displays ST7789 240x135 and ST7735 160x80, got around 30FPS and 85FPS respectively.

About

GUI framework for embedded Rust powered with fine-grained reactivity

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages