
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:
- 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)
- High performance, even on constrained chips (support for incremental redrawing, DMA with frame buffers)
- 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.