Description
There's an existing crates.io feature request requesting that crate pages list the features the crate provides. Unfortunately currently that would just be a list of feature names, since that's all that the manifest format allows. It would be nice if features were allowed to provide a description as well, like (to modify the example from the docs):
[package]
name = "awesome"
[features]
# The default set of optional packages. Most people will want to use these
# packages, but they are strictly optional. Note that `session` is not a package
# but rather another feature listed in this manifest.
default = ["jquery", "uglifier", "session"]
# A feature with no dependencies is used mainly for conditional compilation,
# like `#[cfg(feature = "go-faster")]`.
go-faster = { "description" = "Do awesome things faster", dependencies = [] }
# The `secure-password` feature depends on the bcrypt package. This aliasing
# will allow people to talk about the feature in a higher-level way and allow
# this package to add more requirements to the feature in the future.
[features.secure-password]
description = "Enable secure password support based on bcrypt"
dependencies = ["bcrypt"]
# Features can be used to reexport features of other packages. The `session`
# feature of package `awesome` will ensure that the `session` feature of the
# package `cookie` is also enabled.
[features.session]
description = "Enable session cookies"
dependencies = ["cookie/session"]
This has a lot of overlap with the implicit features RFC. Namely, it requires the proposed "verbose form" of specifying features in order to even have a place to put the description. Additionally, if that RFC were not implemented then we would also likely need to allow adding descriptions to optional dependencies, since they can currently be used as features.