Rewriting my entire UI in Rust (Tauri+React -> Iced)
Hey everyone,
A few months back I showed a git client I was working on, written in Rust, with a UI in Tauri and React.
People asked why I didn't make the UI in Rust too. My answer was "skill issues".
Since then I have studied the blade and finally got around to doing this!
I put this off for a while, but growing pains with window panes forced my hand. Also Linux support.
From my past attempts to try every Rust UI library I liked Iced the most, and so I used that. It went much better this time, and I ended up with a shiny new interface.
I wrote a blog post about my adventures here:
https://www.gitcherrytree.com/blog/rewriting-the-ui-in-rust/
To entice you, here are some numbers and letters about the main bits, with mysteries revealed in the blog:
| Thing | React UI | Iced | Comments |
|---|---|---|---|
| Frame time under load | 9ms | 3-6ms | Nice but not massive |
| Linux support | kinda no? :< | yes! | JustWorks in a single binary! |
| Lines of UI Code | 24K | 45K | ??? |
| Binary Size | 15mb | 15.3mb | Absolutely Disgusting |
Overall I find myself happy to have done this. I always felt that you should be able to do everything in the same language and swapping out Tauri left me in Rust. I'm happy here in my hole.