Hi I'm trying to improve incremental compilation times of my application.
I can see that couchbase is pulling in a lot of dependencies that are included in my application but not actually used by it.
Currently couchbase pulls in the following transitive dependencies that I would like to see made optional:
- hickory-resolver - this is a really large dependency for an optional feature, would be good to put behind a feature flag
- tracing-subscriber - tracing-subscriber is generally a dependency for applications only, so whatever functionality relies on it could probably go behind a feature flag
- hdrhistogram - another fairly big dependency, the logging_meter stuff looks like it could easily go behind a feature flag.
You can still keep the library easy to use by including all of these features in a default feature flag.
And you can use a tool like cargo hack in your CI to ensure that all combinations of features can build correctly.
I'm also not sure of your MSRV situation but you could get a small but easy win from replacing lazy_static with the std library alternatives.
Thanks!
Hi I'm trying to improve incremental compilation times of my application.
I can see that couchbase is pulling in a lot of dependencies that are included in my application but not actually used by it.
Currently
couchbasepulls in the following transitive dependencies that I would like to see made optional:You can still keep the library easy to use by including all of these features in a default feature flag.
And you can use a tool like cargo hack in your CI to ensure that all combinations of features can build correctly.
I'm also not sure of your MSRV situation but you could get a small but easy win from replacing lazy_static with the std library alternatives.
Thanks!