Ratatui gave us beautiful TUIs.
Ratzilla expanded it to the web.
But why shall we stop there?
Why shall we stop anywhere?

Are We Embedded Yet?

This series is meant to document and promote the joint effort of making ratatui truly portable.

no_std ratatui


I've started the discussion on making ratatui-core crate no_std just two weeks ago, when I realized that mousefood can't become anything more than just a gimmick without few upstream changes. Today, thanks to commitment of the maintainers and help from the community, I'm pretty optimistic that we can see ratatui on stm32 in just few weeks. And I'm not talking about just ratatui-core (which was planned for the "first stage"), but ratatui-widgets is no_std already!

Check out the tracking issue!

The last major thing to resolve is to provide an alternative, no_std implementation of layout caching.

mousefood


Mousefood v0.2 is out! This is the point, where the project stops being just a proof of concept and due to that, most of the changes since v0.1 are refactoring ones. I decided that this also is the time to finally write tests - currently coverage is just around 60%, but this should greatly improve in the coming weeks. This doesn't mean there are no new features! The new version comes with an optional support of EPDs!

mousefood on epd

More on that in the docs.

What's next?

The obvious next step after ratatui becoming no_std would be adapting mousefood to use that and testing it out on some previously unsupported device (I actually already have a stm32f7 waiting for that.) But there is still a lot of other things to complete in mousefood such as cursor support (currently cursor is hardcoded at (0,0) and hidden), handling the rest of modifiers (there's a PR by @y5 waiting for the next release of ratatui that will also add colored underlines) or color conversion from indexed colors. I also want to eventually add terminal themes.

Also I want to finally start writing some actual apps using it, instead of just demos! I've got some interesting ideas for that, but first I need to find some more time... If you haven't seen already, @micielski actually managed to read IRC messages on esp32 and display them on SPI screen using mousefood!

ratatui-uefi


Something I didn’t know until recently: there are UEFI targets with std support in nightly Rust. Even crazier - just a few days ago, I didn’t expect to see Ratatui running in UEFI this week! Check out @reubeno's new ratatui backend - ratatui-uefi and a companion crate for handling inputs - terminput-uefi A truly amazing project that opens doors to some fun ideas.

mousefood