This is called conditional compilation and allows a crate to only include part of its API when certain feature flags are provided. This often lets you save compilation times by not compiling the features (and dependencies!) you don't need.
This is documented.
There's section at the root of the crate's documentation listing all of the features that can be enabled.