Are We Embedded Yet? #1
This series is meant to document and promote the joint effort of making ratatui truly portable.
Update: no_std ratatui
Backend::Error merged!
One of the blockers for no_std ratatui was the explicit use of std::io::Error in Backend (and
by extension, in Terminal as well).
Now, Backend implementations must define an associated Error type.
Built-in backends will still use std::io::Error, but third-party ones
like mousefood
can now use a different error type - which will enable a proper no_std compatibility!
I'm actually working on a follow-up PR and ran into a pretty interesting issue, so if anyone reading this has ideas, feel free to jump in and comment.
As for the layout cache problem I mentioned in the last post -
since there's no great solution, the decision for now
is to simply not provide a cache in no_std mode.
When this is merged, the last things left would be just few minor tweaks and adding std feature flag.
We are one step closer to no_std ratatui.
██████████████████░░ 90%
Update: mousefood
Mousefood recently got italic modifier support as well as readme section about bold/italic fonts that also points out some limitations. Additionally, v0.2.1 patch was released that mainly targeted some inaccuracies in the docs.
Bold and italic modifiers in mousefood, italic will be available with the next release.
The development of mousefood may be a bit slower right now,
as I'm focusing on finalizing no_std support in Ratatui -
but I'm still making sure to work on it regularly.
If you'd like to help out, feel free to reach out!
Full changelog of v0.2.1:
🚜 Refactor
- (examples) Remove unnecessary
extern cratefrom simulator example
📚 Documentation
- (readme) Fix simulator code snippet
⚙️ Miscellaneous Tasks
- (examples) Configure simulator example in Cargo.toml
- Update list of excluded paths in Cargo.toml
soft_ratatui
Software rendering backend for ratatui. No GPU required. TUI everywhere.
Another new Ratatui backend just dropped - soft_ratatui by @gold-silver-copper, the creator of egui_ratatui. The crate uses tiny-skia to render efficiently directly to a window, ditching the terminal emulator completely. This allows for much higher frame rates out of the box (up to 200 FPS). It will be especially useful for TUI games or interactive tools where smooth performance really matters!
Soft_ratatui is under heavy development and I was told that it will eventually move away from tiny-skia in favor of a custom lightweight renderer.
colors_rgb running at over 140 FPS, "s" in "fps" gets cut off as the example doesn't expect that many digits!
Thanks!
Huge thanks for the response to the last post - it got way more attention than I expected, and even made its way into This Week in Rust #596 and The Embedded Rustacean #44. Thanks to everyone who helped spread Ratatui even further!
@j-g00da's webpage