Skip to content

Commit

Permalink
refactor: feature-switch for object_store CA certs
Browse files Browse the repository at this point in the history
Closes apache#4870.
  • Loading branch information
crepererum committed Nov 2, 2023
1 parent 829708d commit b59341f
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 1 deletion.
4 changes: 3 additions & 1 deletion object_store/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ quick-xml = { version = "0.31.0", features = ["serialize", "overlapped-lists"],
serde = { version = "1.0", default-features = false, features = ["derive"], optional = true }
serde_json = { version = "1.0", default-features = false, optional = true }
rand = { version = "0.8", default-features = false, features = ["std", "std_rng"], optional = true }
reqwest = { version = "0.11", default-features = false, features = ["rustls-tls"], optional = true }
reqwest = { version = "0.11", default-features = false, features = ["rustls-tls-manual-roots"], optional = true }
ring = { version = "0.17", default-features = false, features = ["std"], optional = true }
rustls-pemfile = { version = "1.0", default-features = false, optional = true }
tokio = { version = "1.25.0", features = ["sync", "macros", "rt", "time", "io-util"] }
Expand All @@ -64,6 +64,8 @@ azure = ["cloud"]
gcp = ["cloud", "rustls-pemfile"]
aws = ["cloud"]
http = ["cloud"]
tls-native-roots = ["reqwest?/rustls-tls-native-roots"]
tls-webpki-roots = ["reqwest?/rustls-tls-webpki-roots"]

[dev-dependencies] # In alphabetical order
tempfile = "3.1.0"
Expand Down
10 changes: 10 additions & 0 deletions object_store/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -86,6 +86,13 @@
doc = "* [`http`]: [HTTP/WebDAV Storage](https://datatracker.ietf.org/doc/html/rfc2518). See [`HttpBuilder`](http::HttpBuilder)"
)]
//!
//! Stores that use HTTPS/TLS (this is true for most cloud stores) can use the source of their [CA]
//! certificates. This is controlled by a feature switch:
//!
//! - `tls-native-roots`: use certificates bundled with the operating system, see [`rustls-native-certs`]
//! - `tls-webpki-roots`: use Mozilla's root certificates bundled with the library/application, see
//! [`webpki-roots`]
//!
//! # Why not a Filesystem Interface?
//!
//! Whilst this crate does provide a [`BufReader`], the [`ObjectStore`] interface mirrors the APIs
Expand Down Expand Up @@ -434,7 +441,10 @@
//!
//! [Optimistic Concurrency Control]: https://en.wikipedia.org/wiki/Optimistic_concurrency_control
//! [Apache Iceberg]: https://iceberg.apache.org/
//! [CA]: https://en.wikipedia.org/wiki/Certificate_authority
//! [Delta Lake]: https://delta.io/
//! [`rustls-native-certs`]: https://crates.io/crates/rustls-native-certs/
//! [`webpki-roots`]: https://crates.io/crates/webpki-roots
//!

#[cfg(all(
Expand Down

0 comments on commit b59341f

Please sign in to comment.