PistonDevelopers / conrod

An easy-to-use, 2D GUI library written entirely in Rust.
Other
3.35k stars 296 forks source link

Stepping away from conrod (alternative GUI recommendations + opening for maintainers within) #1454

Open mitchmindtree opened 2 years ago

mitchmindtree commented 2 years ago

Hi folks! As alluded to in #1453, I've been progressively less and less active on conrod over the past year or so. This has been due in part to being spread thin across many different projects including contract work and other open source projects (mostly nannou).

More recently, progress on the excellent egui library has removed the last of my need to hack on conrod. egui has a very similar architecture and set of goals, but with a design that is much better thought out.

conrod was very much born out of necessity, many years ago in the Rust 0.10 era - a time when there were no other pure-Rust, immediate-mode, platform-agnostic GUI libraries out there at all. It evolved, with many re-writes over time as it was my first major library, and many of us were still working out the ins and outs of Rust library design in general.

Today, many nicer options are well underway and I think egui in particular is clearly a better choice. It has a more concise and flexible way of working with the Ui context, a much broader range of widgets, the ability to write custom widgets as simple functions, much more advanced text formatting and handling, and a nice thorough web demo of all widgets. I don't particularly like egui's default style or look, however the styling is very configurable, most of the supported widgets respond well, and it's trivial to write custom widgets - all of which is better than I can say for conrod.

I've started using egui in my personal projects, and plan to deprecate nannou's use of the nannou_conrod crate in examples in favour of nannou_egui. I still have a handful of old projects that have very large and complex conrod GUIs that aren't worth a re-write but may need maintenance in the future, however beyond this I no longer plan to continue maintenance of conrod itself.

I'm quite proud of conrod and what folks have been able to build with it. I think it has served as a nice bridge from the early days of pre-Rust to today where a much wider selection of more serious GUI libraries exist. If you're looking for a nicer conrod, I'll recommend egui, however if you're open to different kinds of GUI you should also check out iced, druid, orbtk, azul and sixtyfps.

I'll do a PR that adds a notice to the README that points to this text and publish a patch release so that the notice is visible on crates.io too.

Maintainers

If you have contributed in the past or have a publicly available demonstration of your use/investment in conrod and would like to take over maintenance, or if you already have access (@PistonDevelopers/admins, @PistonDevelopers/pistoncollaborator, @alvinhochun) and would like to take the lead on conrod from here on out, let me know here so that I can pass you the reins.

Thanks all for your interest/contributions toward conrod over the years!

JoshuaBatty commented 2 years ago

Epic job dude! Thanks a million for all the work you put into creating and maintaining conrod over the years! Onwards and upwards :)

alvinhochun commented 2 years ago

Thanks a lot @mitchmindtree for your hard work making conrod such a viable GUI library. I feel bad for not having done much after being invited as collaborator, but unfortunately I too don't have enough time and energy to do anything related to conrod. In fact, I shall confess that I've considered moving one of my personal projects over to egui or iced, but even that I couldn't manage to find time to get started.

Wish you good luck!

bvssvni commented 2 years ago

Thank you @mitchmindtree for the work on Conrod! It has been a pleasure working with you.

Raj2032 commented 2 years ago

Has anyone forked conrod and continued with the development?

lubosmudrak commented 2 years ago

I recommend you to scroll trough all the branches if you REALLY need an updated version. There may or may not be one available. I am still using this library for one of my projects so I have scheduled maintenance update of Conrod on my branch in December of this year. Also, checking all other branches to see if someone somwhere is still maintaining this is a first thing I will do before updating dependencies of Conrod.

Raj2032 commented 2 years ago

@lubosmudrak I see thanks mate

Raj2032 commented 2 years ago

@lubosmudrak I see thanks mate