achanda / ipnetwork

A library to work with CIDRs in rust
Apache License 2.0
121 stars 38 forks source link

Make the serde feature opt-in instead of opt-out #200

Closed faern closed 1 month ago

faern commented 1 month ago

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.