Skip to content

Make openssl dependency truly optional #254

@elsirion

Description

@elsirion

Currently, vss is hidden behind a cfg() switch and not a feature, which means that it has to be considered for dependency resolution and its transitive dependencies, like openssl, will end up in Cargo.lock. This is necessary since, even though we know we'll never want to compile it, cargo can't tell this.

Since openssl is a pain to deal with we ban it in Fedimint CI by grepping Cargo.lock, which currently blocks upgrading to ldk-node 0.2 (fedimint/fedimint#4354) and would be quite a bit of work to special-case to allow openssl onyl as a transitive dependency of ldk-node (since we know we'll never compile it there).

The resolutions that seem reasonable to me are:

  • vss becomes a feature instead of a cfg() switch, it's reasonable to not requireit imo
  • Alternatively exposing a feature in vls_client and ldk-node to choose the TLS implementation would also work
  • Or if you are ok with it maybe even defaulting to rustls in vls_client (that's what we do with Fedimint)

I'm happy to open a PR, just want to get your feedback first.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions