So the thesis is that crates massively oversubscribe the features of their dependencies, and that if features were managed more carefully and maybe dependency features exposed through each crate's own exposed feature list, that would cut down on dependency bloat and compile times a lot.
My idea above is roughly equivalent to the "zero-config" strategy you mention.
It's kinda crazy that if a direct dependency doesn't use some feature from a transitive dependency and the direct dependency forgets to disable it or expose a way to disable it you're still stuck with it.
My idea above is roughly equivalent to the "zero-config" strategy you mention.
It's kinda crazy that if a direct dependency doesn't use some feature from a transitive dependency and the direct dependency forgets to disable it or expose a way to disable it you're still stuck with it.