apache / iceberg-rust

Apache Iceberg
https://rust.iceberg.apache.org/
Apache License 2.0
483 stars 99 forks source link

chore: Don't enable reqwest default features #432

Closed Xuanwo closed 5 days ago

Xuanwo commented 5 days ago

Don't enable reqwest default features, let users to decide the tls suites.

Why we didn't provide rustls, native-tls features?

Their are too many tls related features inside reqwest, it doesn't make sure for us to expose them all.

# Note: this doesn't enable the 'native-tls' feature, which adds specific
# functionality for it.
default-tls = ["dep:hyper-tls", "dep:native-tls-crate", "__tls", "dep:tokio-native-tls"]

http2 = ["h2", "hyper/http2", "hyper-util/http2", "hyper-rustls?/http2"]

# Enables native-tls specific functionality not available by default.
native-tls = ["default-tls"]
native-tls-alpn = ["native-tls", "native-tls-crate?/alpn", "hyper-tls?/alpn"]
native-tls-vendored = ["native-tls", "native-tls-crate?/vendored"]

rustls-tls = ["rustls-tls-webpki-roots"]
rustls-tls-no-provider = ["rustls-tls-manual-roots-no-provider"]

rustls-tls-manual-roots = ["__rustls", "__rustls-ring"]
rustls-tls-webpki-roots = ["dep:webpki-roots", "hyper-rustls?/webpki-tokio", "__rustls", "__rustls-ring"]
rustls-tls-native-roots = ["dep:rustls-native-certs", "hyper-rustls?/native-tokio", "__rustls", "__rustls-ring"]
rustls-tls-manual-roots-no-provider = ["__rustls"]

It's better to let the users to decide how tls will be used.