Like what I said in my earlier PR where I made the serde feature optional (#109): Having dependencies be optional but pulled in by default is often negative. Most people add dependencies without checking their features or optional dependencies too carefully. This leads to them pulling in transitive dependencies they likely don't need.
I can opt out of the serde dependency, sure. But! Now I want to try out the const-addrs crate to easily create IP types from macros with compile time validation. This crate depends on ipnetwork without opting out of the default features. This means that I now get serde as a transitive dependency, even though I really don't need serde for anything. It's a rather large dependency to compile for no real use.
Like what I said in my earlier PR where I made the serde feature optional (#109): Having dependencies be optional but pulled in by default is often negative. Most people add dependencies without checking their features or optional dependencies too carefully. This leads to them pulling in transitive dependencies they likely don't need.
I can opt out of the serde dependency, sure. But! Now I want to try out the
const-addrs
crate to easily create IP types from macros with compile time validation. This crate depends onipnetwork
without opting out of the default features. This means that I now getserde
as a transitive dependency, even though I really don't needserde
for anything. It's a rather large dependency to compile for no real use.