Home

Awesome

druid-widget-nursery

Rust

This repo contains (or, at the time of writing, will contain) widgets that work with druid. The repo follows a policy of optimistic merging, and the idea is that having a lower barrier to merging PRs hopefully leads to a nice contributor experience, which then encourages more people to become regular collaborators for the whole druid family of crates.

We don't insist that all widgets always build when updating to a newer version of druid, and so as you'll see the CI is allowed to fail. Fixing these build failures will often be a good opportunity for a first contribution, and people will always be willing to help out with this work either here or on zulip.

So, in summary, the default assumption for PRs to this repo will be to merge, but this policy includes future PRs that might change or reverse stuff in previous PRs. For more information I recommend reading the optimistic merging article linked here and above, which offers an interesting approach to managing open source projects irrespective of its use here.

Note that for CI we use cargo clippy --all-targets --all-features

Using this library

Add the following to your Cargo.toml. You will need to get the current druid rev from this repository's Cargo.toml.

druid-widget-nursery = { git = "https://github.com/linebender/druid-widget-nursery" }

[patch.'https://github.com/linebender/druid'.druid]
git = "https://github.com/linebender/druid"
rev = "<copy the current druid rev from this repository's Cargo.toml>"

The rev in your Cargo.toml should match the rev under [dependencies.druid] in this repo's Cargo.toml. This ensures that your app depends on the same version of druid as this library - otherwise you may end up with problems with multiple versions of druid installed. For more on the override syntax above, see Cargo's patch documentation.

Once you have druid-widget-nursery installed, you can import the various widgets as usual with use druid_widget_nursery::YourWidgetNameHere. For specific examples of using the various widgets, check out the examples directory.

Widgets

If you add a new widget, please add its name and a short summary here.

ProgressBar Improvements

Widget Requests

If you need a certain widget, and you think it might be useful to others, feel free to make a PR adding it to this list.

Links to widget crates

Maybe you have made your own collection of widgets that aren't general enough to go into druid proper, but will still be useful to other druid users. Submit a PR to add them here!