atproto made easy crates.io/crates/jacquard

Consider `default-features = false` on reqwest? #36

Closed nonbinary.computer
Closed opened by nonbinary.computer

The default feature-set on reqwest bundles in additional dependencies that may be a matter of taste, such as rustls and aws-lc-rs (and before reqwest 0.13 webpki-roots, from 0.13 onswards it switches to rustls-platform-verifier by default). It's nice for a "batteries-included" approach, but as far as I know, there isn't really a way to switch off a feature that ends up enabled through a transitive dependency relationship.

Putting default-features = false on reqwest itself, gating reqwest behind a feature and/or gating reqwest's "batteries" behind separate feature(s) (the last one reqwest itself does for its dependencies! so I'd recommend doing the same) would shrink the default dependency tree and give more choice to the application developer~

(And hey, if somebody decides to want a different HTTP client, they could then disable reqwest completely and provide their own HttpClient trait impl.)

so reqwest itself is technically optional right now, though iirc jacquard-identity requires it as a legacy thing. but yes, i'll provide some better gating there to avoid pulling those in unconditionally, or at least provide an easy way to shut them off.

main is going to have all the proper reqwest toggles and have the dep be able to be properly turned off now. will let you know when i do a release with all that

Sign up or Sign in to add to the discussion.