Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
mitchmindtree opened this issue Jan 17, 2022 · 7 comments

Comments

@mitchmindtree
Copy link
Contributor

mitchmindtree commented Jan 17, 2022

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!

mitchmindtree added a commit to mitchmindtree/conrod that referenced this issue Jan 17, 2022
See PistonDevelopers#1454 for details.

I've also bumped the patch release so that this notice will be visible
on crates.io.
mitchmindtree added a commit to mitchmindtree/conrod that referenced this issue Jan 17, 2022
See PistonDevelopers#1454 for details.

I've also bumped the patch release so that this notice will be visible
on crates.io.
@JoshuaBatty
Copy link

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

@alvinhochun
Copy link
Collaborator

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!

@mitchmindtree mitchmindtree pinned this issue Jan 19, 2022
@bvssvni
Copy link
Member

bvssvni commented Jan 20, 2022

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

@Raj2032
Copy link

Raj2032 commented Apr 26, 2022

Has anyone forked conrod and continued with the development?

@lubosmudrak
Copy link

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
Copy link

Raj2032 commented Apr 29, 2022

@lubosmudrak I see thanks mate

1 similar comment
@Raj2032
Copy link

Raj2032 commented Apr 29, 2022

@lubosmudrak I see thanks mate

mitchmindtree added a commit to nannou-org/nannou_conrod that referenced this issue May 15, 2022
These two crates are no longer maintained. They have been moved out of
the main nannou repository in order to reduce the need to update them
each time we update wgpu which often requires updating conrod upstream.
Instead, these crates will be frozen in their current state unless
anyone wishes to step up and drive forward their maintenance.

See [this issue][1] for more context on deprecation of conrod.

[1]: PistonDevelopers/conrod#1454
mitchmindtree added a commit to mitchmindtree/nannou that referenced this issue May 15, 2022
Both crates have been deprecated in favour of `nannou_egui` and have
moved into a separate repository:

https://github.com/nannou-org/nannou_conrod

See the following issue for some context on the motivations behind
switching to nannou_egui:

PistonDevelopers/conrod#1454

See the following PR for the merge of `nannou_egui` into the main nannou
repository:

nannou-org#854

Conrod-specific examples have been moved to the separate `nannou_conrod`
repo, while other examples that used `nannou_conrod` have been
transitioned use `nannou_egui`.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

6 participants