Skip to content

Allow using reqwest and rustls without pulling in OpenSSL/native-tls #55

Closed
@faysou

Description

@faysou

Bug Report

Expected Behavior

Issue: The databento crate always leads to using native-tls with reqwest which can lead to compilation problems with other crates.

Expected behaviour is being able to use rustls with other crates and reqwest.

With the reqwest configuration below I don't have this issue, I vendored databento to be able to modify it in my project.

If you used this config in the databento-rs Cargo.toml, I wouldn't need to vendor databento.

Also if someone has a native-tls requirement for reqwest in their project, cargo feature unification would be able to use native-tls with reqwest anyway. Basically reqwest very easily defaults to using rustls and native-tls, but using rustls only doesn't require openssl installed and avoids potential linking issues with openssl (I know, I've been working on this for full three days with a lot of help from an LLM agent as well).

reqwest = { workspace = true, optional = true, default-features = false, features = ["json", "stream", "rustls-tls"] }

Actual Behavior

reqwest always always pulls reqwest native-tls and rustls when using databento

Steps to Reproduce the Problem

  1. Have a crate that is configured to use rustls like object_store
  2. Use databento as well
  3. See that the dependencies with cargo tree always pull native-tls, this can create linking issues with openssl in a github runner. With rustls, openssl is not required.

Specifications

  • OS platform: Ubuntu 22.4
  • Rust version: latest
  • databento version: latest

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions