Rewriting my entire UI in Rust (Tauri+React -> Iced)

160 points SpecialBread_ 56 comments

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.