u/Various-Effective115

Guillotine: no_std, no alloc GUI framework in Rust
▲ 24 r/embedded+1 crossposts

Guillotine: no_std, no alloc GUI framework in Rust

Link: https://github.com/mempirate/guillotine

Hey everyone. Over the past couple of weeks I've been experimenting with Rust on ESP32 chips, with my first project being a simple power readout of the smart plug powering my home lab.

However, I wasn't very impressed with the state of GUI libraries in Rust, so I built my own: Guillotine. Was able to build the following dashboard with it:

Power readout of my Shelly smart plug. Code at https://github.com/mempirate/shellyctl

The goals are threefold:

  1. Declarative UI building blocks (inspired by GPUI) for flexible UIs (with eventual support for a lot of CSS-like layout properties such as flex and grid)
  2. High performance, even on constrained chips (support for incremental redrawing, DMA with frame buffers)
  3. Beautiful widgets

It builds upon embedded_graphics and mipidsi, so should have broad compatibility. As of yesterday, it's also fully no_std and no alloc, and is already powerful enough for some use cases. Would love to hear your feedback and tell me what you'd like to see in a framework like this! I have a couple of weeks of time that I can dedicate to it.

reddit.com