apache / apache/iceberg-rust

Add TLS features to iceberg-catalog-rest

Open
#2,888 1 comment 0 reactions 0 assignees View on GitHub
enhancement
Dominant language
Rust
Stars
1.4k
Forks
567
Avg merge
2d 2h
Merged PRs (30d)
93

Description

### Is your feature request related to a problem or challenge?

reqwest is pinned with default-features = false, so iceberg-catalog-rest has no TLS backend and https:// catalog URIs fail (e.g. against Lakekeeper). The only workaround is a direct reqwest dependency with a TLS feature in the consumer's manifest. Then rust's feature unification solves the issue for you. But this is a very implicit and brittle solution.

### Describe the solution you'd like

Passthrough features named after reqwest's, with the OS trust store variant on
by default; `default-features = false` still gives a TLS-free build:

```toml
[features]
default = ["rustls-tls-native-roots"]
rustls-tls = ["reqwest/rustls-tls"]
rustls-tls-native-roots = ["reqwest/rustls-tls-native-roots"]
```

Implemented here, with docs and a --no-default-features CI check: https://github.com/rutgerclaes/iceberg-rust/tree/tls-support-reqwest

### Willingness to contribute

I would be willing to contribute to this feature with guidance from the Iceberg Rust community

Contributor guide

Open the contributing guide

Research direction

Start in the iceberg-catalog-rest manifest and inspect its reqwest dependency and feature definitions. Review the documentation and CI configuration, then run the --no-default-features check; done means HTTPS catalog URIs work with the default OS trust-store feature while a no-default-features build remains TLS-free.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
build-system, security
Issue type
Feature
Difficulty
3/5
Estimated time
1-2 days
Activity status
Quiet
Clarity
Clearly specified
Newbie friendliness
68/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.