Skip to content

azure_messaging_eventhubs should allow users to use rustls instead of native-tls #2796

@georgeh0

Description

@georgeh0

Feature Summary

Currently, the azure_messaging_eventhubs requires native-tls (OpenSSL) for TLS connections. This creates significant friction for cross-platform Rust applications and libraries.

Feature Description

Summary:
Currently, the azure_messaging_eventhubs requires native-tls (OpenSSL) for TLS connections. This dependency is introduced by: azure_messaging_eventhubs -> azure_core_amqp -> fe2o3-amqp -> native-tls. fe2o3-amqp is configured as part of the workspace dependency here, and users have no way to remove it, as it's not guarded by a feature. This creates significant friction for cross-platform Rust applications and libraries. Many Rust projects—including ours—use rustls for TLS because it is pure Rust, easier to build, and more portable (especially for static builds, containerized deployments, and platforms where OpenSSL is problematic).

Request:
Please add support for using rustls as a TLS backend, controlled by a Cargo feature flag (e.g., rustls-tls, following the convention of crates like reqwest and hyper). This will allow users to choose their preferred TLS implementation and greatly improve the ease of building and distributing Rust applications that integrate with Azure services.

You can still by default enable the native-tls feature, so existing clients won't break, but allow users turn off defaults and enable rustls instead.

Benefits:

  • Better cross-platform compatibility (especially for Windows, Mac, and minimal Linux containers)
  • Simplified dependency management and deployment (no external C libraries)
  • Aligns with modern Rust ecosystem practices

Thank you for considering this feature—it would be a major improvement for Rust users integrating with Azure event hubs!

Use Case

No response

Alternatives

No response

Additional Context

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    customer-reportedIssues that are reported by GitHub users external to the Azure organization.needs-triageWorkflow: This is a new issue that needs to be triaged to the appropriate team.questionThe issue doesn't require a change to the product in order to be resolved. Most issues start as that

    Projects

    Status

    Untriaged

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions