Skip to content

Allow for more control over dependencies #480

@rukai

Description

@rukai

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!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions