Skip to content

Mutually exclusive crypto features #470

@atezet

Description

@atezet

I wanted to update jsonwebtoken to version 0.10.x today, but unfortunately I found out that I wasn't able to. We're using jsonwebtoken in our workspace in a crate that functions as an iOS (and Android) app. Because aws-lc-rs seems to have compatibility issues on iOS, I chose the rust_crypto feature. Unfortunately, another crate of ours is using gcloud-auth (for play integrity functionality) which depends on jsonwebtoken with the aws_lc_rs feature enabled. As these are mutually exclusive, I'm flooded with compiler errors. In theory, this doesn't have to be a problem for us, because the gcloud-auth crate is not used in the mobile app, but in practice our integration tests depend on both crates, and enabling/disabling either feature through a series of cascading features seems like a lot.

The Cargo book specifically describes this situation and suggests a few solutions. The second one would probably solve this situation for us:

When there is a conflict, choose one feature over another. The cfg-if package can help with writing more complex cfg expressions.
-- https://doc.rust-lang.org/cargo/reference/features.html#mutually-exclusive-features

Would adding this behaviour be an option for you?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions