Most bigger crates have quite a few features enabled by default. Why should I use default-features = false in my Cargo.toml and only enable the ones that I actually need?
For example, if I use the chrono crate only to use DateTime<Local> I only need the clock feature to successfully compile my code.
The advantages I see is that there are less transitive dependencies that I don't use and thus shorten compilation times on a clean build. There are also less dependencies to worry about when upgrading.
So should this be the default way to use default-features = false on binary and library crates?
default-features = false. Most of the time the compiler will then tell you what features you need to enable.