Does it have a UI library


How to make a GUI program, or a Win32 desk program?


There is gtk+ and Qt bindings for Rust, you can use them.


If your target is Win32 and you do not have portability requirements, I think there are a couple of projects targeting Windows GUI programming specifically as well.


I started a GUI project recently (simple image viewer to scratch my own itch), and spent a few days researching GUI frameworks in Rust. I came away somewhat surprised, because the toolkit I chose after prototyping in a few was one I saw mentioned very rarely: orbtk.

My first choice was conrod, but it wound up being a much thinner abstraction over its dependencies than I wanted. The same prototype in orbtk was far simpler, more readable, and more rusty. I’ve since switched to using it at a lower level (orbclient and orbimage) since my application doesn’t need many standard widgets, and it’s still great.

I think it gets little attention because it’s meant for Redox OS, but since it targets SDL2 it’s actually nicely cross-platform. You do need to distribute the SDL2 library (one file) along with your binary.

Just wanted to throw it out there.


I’ve tried to use orbtk in the past, but the lack of documentation was fairly daunting. I couldn’t find anything on how to use it in the repository, and nothing in rustdoc has any documentation comments. Have you found a good source of examples and documentation?


Yeah, there’s basically no documentation outside of the examples, which I found to be decent for simple uses. (I didn’t find this any worse than the more popular conrod, though, whose documentation ends with installation.) The apps in the orbutils repository (very basic system utilities) provide more practical, but still very simple, examples.


Ah cool! Examples help a lot.

I mean it still has slightly less documentation than conrod, which has a number of examples + an incomplete book on installation. Examples & an incomplete book is more than just examples, right? Mostly joking here, since both are pretty bad.

Thanks for the links!