Skip to content

Commit

Permalink
Remove rustls features
Browse files Browse the repository at this point in the history
We no longer use these anywhere, so we should no longer need to support
old versions of rustls/reqwest.
  • Loading branch information
einarmo committed Jan 29, 2025
1 parent b966140 commit b29cb84
Show file tree
Hide file tree
Showing 13 changed files with 44 additions and 82 deletions.
2 changes: 0 additions & 2 deletions .github/workflows/build-and-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,6 @@ jobs:
components: rustfmt, clippy
- name: Run clippy
run: cargo clippy -- -D warnings
- name: Check for non-default features
run: cargo check --no-default-features --features rustls-021
- name: Generate code
run: cargo run --bin cognite-codegen && cargo fmt --all
- name: Verify generated code matches committed code
Expand Down
19 changes: 4 additions & 15 deletions cognite/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -10,10 +10,8 @@ publish = false
version = "0.4.2"

[features]
default = ["rustls-022"]
default = []
integration_tests = []
rustls-021 = ["http-02", "reqwest-011", "reqwest-middleware-02", "task-local-extensions"]
rustls-022 = ["http-10", "reqwest-012", "reqwest-middleware-04"]

[dependencies]
async-trait = "^0.1"
Expand All @@ -25,24 +23,15 @@ futures-timer = "^3"
prost = "^0.13"
prost-types = "^0.13"

http-10 = { package = "http", "version" = "^1", optional = true }
http-02 = { package = "http", "version" = "0.2", optional = true }
reqwest-011 = { package = "reqwest", version = "^0.11", optional = true, features = [
http = {"version" = "^1" }
reqwest = { version = "^0.12", features = [
"gzip",
"json",
"multipart",
"rustls-tls-native-roots",
"stream",
], default-features = false } # Default brings in openssl
reqwest-012 = { package = "reqwest", version = "^0.12", optional = true, features = [
"gzip",
"json",
"multipart",
"rustls-tls-native-roots",
"stream",
], default-features = false } # Default brings in openssl
reqwest-middleware-02 = { package = "reqwest-middleware", optional = true, version = "^0.2" }
reqwest-middleware-04 = { package = "reqwest-middleware", optional = true, version = "^0.4" }
reqwest-middleware = { version = "^0.4" }

anyhow = "^1"
rand = "^0.8.5"
Expand Down
10 changes: 5 additions & 5 deletions cognite/src/api/api_client.rs
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
use crate::reqwest::header::{HeaderValue, CONTENT_LENGTH, CONTENT_TYPE};
use crate::reqwest::{Body, Response};
use crate::reqwest_middleware::ClientWithMiddleware;
use crate::IntoParams;
use anyhow::anyhow;
use bytes::Bytes;
use futures::{TryStream, TryStreamExt};
use prost::Message;
use reqwest::header::{HeaderValue, CONTENT_LENGTH, CONTENT_TYPE};
use reqwest::{Body, Response};
use reqwest_middleware::ClientWithMiddleware;
use serde::de::DeserializeOwned;
use serde::ser::Serialize;

Expand Down Expand Up @@ -78,7 +78,7 @@ impl ApiClient {
pub async fn get_stream(
&self,
url: &str,
) -> Result<impl TryStream<Ok = bytes::Bytes, Error = crate::reqwest::Error>> {
) -> Result<impl TryStream<Ok = bytes::Bytes, Error = reqwest::Error>> {
let r = RequestBuilder::<()>::get(self, url)
.accept_raw()
.send()
Expand Down Expand Up @@ -316,7 +316,7 @@ impl ApiClient {
/// * `request_builder` - Request to send.
pub async fn send_request(
&self,
mut request_builder: crate::reqwest_middleware::RequestBuilder,
mut request_builder: reqwest_middleware::RequestBuilder,
) -> Result<Response> {
request_builder.extensions().insert(self.client.clone());

Expand Down
14 changes: 6 additions & 8 deletions cognite/src/api/authenticator.rs
Original file line number Diff line number Diff line change
@@ -1,13 +1,11 @@
use crate::reqwest_middleware::ClientWithMiddleware;
use crate::{
dto::utils::MaybeStringU64,
reqwest::{
header::{HeaderMap, HeaderValue},
StatusCode,
},
};
use crate::dto::utils::MaybeStringU64;
use async_trait::async_trait;
use futures_locks::RwLock;
use reqwest::{
header::{HeaderMap, HeaderValue},
StatusCode,
};
use reqwest_middleware::ClientWithMiddleware;
use serde::{Deserialize, Serialize};
use std::fmt::Display;
use std::time::{Duration, Instant};
Expand Down
4 changes: 2 additions & 2 deletions cognite/src/api/core/files.rs
Original file line number Diff line number Diff line change
Expand Up @@ -413,7 +413,7 @@ impl Files {
pub async fn download(
&self,
url: &str,
) -> Result<impl TryStream<Ok = bytes::Bytes, Error = crate::reqwest::Error>> {
) -> Result<impl TryStream<Ok = bytes::Bytes, Error = reqwest::Error>> {
self.api_client.get_stream(url).await
}

Expand All @@ -425,7 +425,7 @@ impl Files {
pub async fn download_file(
&self,
id: IdentityOrInstance,
) -> Result<impl TryStream<Ok = bytes::Bytes, Error = crate::reqwest::Error>> {
) -> Result<impl TryStream<Ok = bytes::Bytes, Error = reqwest::Error>> {
let items = vec![id];
let links = self.download_link(&items).await?;
let link = links.first().unwrap();
Expand Down
16 changes: 7 additions & 9 deletions cognite/src/api/request_builder/builder.rs
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
use crate::reqwest::header::{HeaderName, HeaderValue, ACCEPT, CONTENT_TYPE, USER_AGENT};
use reqwest::header::{HeaderName, HeaderValue, ACCEPT, CONTENT_TYPE, USER_AGENT};

use prost::Message;
use serde::de::DeserializeOwned;
use serde::Serialize;

use crate::reqwest::{IntoUrl, Response};
use crate::ApiClient;
use crate::Error;
use reqwest::{IntoUrl, Response};

use crate::Result;

Expand All @@ -17,7 +17,7 @@ use super::{

/// Generic request builder. Used to construct custom requests towards CDF.
pub struct RequestBuilder<'a, T = ()> {
inner: crate::reqwest_middleware::RequestBuilder,
inner: reqwest_middleware::RequestBuilder,
client: &'a ApiClient,
output: T,
}
Expand Down Expand Up @@ -88,9 +88,9 @@ impl<'a, T> RequestBuilder<'a, T> {
pub fn header<K, V>(mut self, key: K, value: V) -> Self
where
HeaderName: TryFrom<K>,
<HeaderName as TryFrom<K>>::Error: Into<crate::http::Error>,
<HeaderName as TryFrom<K>>::Error: Into<http::Error>,
HeaderValue: TryFrom<V>,
<HeaderValue as TryFrom<V>>::Error: Into<crate::http::Error>,
<HeaderValue as TryFrom<V>>::Error: Into<http::Error>,
{
self.inner = self.inner.header(key, value);
self
Expand All @@ -112,7 +112,7 @@ impl<'a, T> RequestBuilder<'a, T> {
}

/// Add a body to the request. You will typically want to set `CONTENT_TYPE` yourself.
pub fn body(mut self, body: impl Into<crate::reqwest::Body>) -> Self {
pub fn body(mut self, body: impl Into<reqwest::Body>) -> Self {
self.inner = self.inner.body(body);
self
}
Expand All @@ -128,9 +128,7 @@ impl<'a, T> RequestBuilder<'a, T> {

/// Modify the inner request builder.
pub fn with_inner<
R: FnOnce(
crate::reqwest_middleware::RequestBuilder,
) -> crate::reqwest_middleware::RequestBuilder,
R: FnOnce(reqwest_middleware::RequestBuilder) -> reqwest_middleware::RequestBuilder,
>(
mut self,
m: R,
Expand Down
2 changes: 1 addition & 1 deletion cognite/src/api/request_builder/response.rs
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ use std::marker::PhantomData;
use prost::Message;
use serde::de::DeserializeOwned;

use crate::reqwest::Response;
use reqwest::Response;

use crate::Result;

Expand Down
8 changes: 4 additions & 4 deletions cognite/src/auth.rs
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
use crate::reqwest::{Request, Response};
use crate::reqwest_middleware::{ClientWithMiddleware, Middleware, Next, Result};
use crate::Extensions;
use reqwest::{Request, Response};
use reqwest_middleware::{ClientWithMiddleware, Middleware, Next, Result};
use async_trait::async_trait;
use http::Extensions;

use crate::AuthHeaderManager;

Expand Down Expand Up @@ -49,7 +49,7 @@ impl Middleware for AuthenticatorMiddleware {
self.authenticator
.set_headers(req.headers_mut(), client)
.await
.map_err(|e| crate::reqwest_middleware::Error::Middleware(e.into()))?;
.map_err(|e| reqwest_middleware::Error::Middleware(e.into()))?;
}
// Once we're done, remove the flag
extensions.remove::<AuthenticatorFlag>();
Expand Down
4 changes: 2 additions & 2 deletions cognite/src/cognite_client.rs
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
use crate::reqwest::Client;
use crate::reqwest_middleware::{ClientBuilder, ClientWithMiddleware, Middleware};
use reqwest::Client;
use reqwest_middleware::{ClientBuilder, ClientWithMiddleware, Middleware};
use std::env;
use std::sync::Arc;
use std::time::Duration;
Expand Down
14 changes: 7 additions & 7 deletions cognite/src/error.rs
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
use crate::reqwest::header::InvalidHeaderValue;
use crate::reqwest::StatusCode;
use crate::{AuthenticatorError, FromErrorDetail};
use reqwest::header::InvalidHeaderValue;
use reqwest::StatusCode;
use serde::{Deserialize, Serialize};
use std::collections::HashMap;
use std::fmt;
Expand Down Expand Up @@ -235,7 +235,7 @@ pub enum Error {
Config(String),
#[error("Unexpected request error: {0}")]
/// Reqwest error
Reqwest(#[from] crate::reqwest::Error),
Reqwest(#[from] reqwest::Error),
/// Serde JSON error.
#[error("Unexpected JSON error: {0}")]
/// Serde JSON error.
Expand All @@ -248,11 +248,11 @@ pub enum Error {
Other(String),
}

impl From<crate::reqwest_middleware::Error> for Error {
fn from(err: crate::reqwest_middleware::Error) -> Self {
impl From<reqwest_middleware::Error> for Error {
fn from(err: reqwest_middleware::Error) -> Self {
match err {
crate::reqwest_middleware::Error::Middleware(x) => Error::Middleware(x),
crate::reqwest_middleware::Error::Reqwest(x) => Self::from(x),
reqwest_middleware::Error::Middleware(x) => Error::Middleware(x),
reqwest_middleware::Error::Reqwest(x) => Self::from(x),
}
}
}
4 changes: 0 additions & 4 deletions cognite/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,6 @@ mod auth;
mod dto;
mod error;
mod retry;
mod rustls_shim;

// Reqwest shim
use rustls_shim::*;

/// SDK library version.
pub const VERSION: &str = env!("CARGO_PKG_VERSION");
Expand Down
12 changes: 6 additions & 6 deletions cognite/src/retry.rs
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
// This file is adapted from reqwest-retry, which was a bit too opinionated for our use.
// https://github.com/TrueLayer/reqwest-middleware

use crate::reqwest::{Request, Response, StatusCode};
use crate::reqwest_middleware::{Middleware, Next, Result};
use crate::Extensions;
use async_trait::async_trait;
use http::Extensions;
use rand::{thread_rng, Rng};
use reqwest::{Request, Response, StatusCode};
use reqwest_middleware::{Middleware, Next, Result};
use std::time::Duration;

/// Middleware for retrying requests.
Expand Down Expand Up @@ -99,7 +99,7 @@ impl Retryable {
///
/// * `res` - Request response.
pub fn from_reqwest_response(
res: &crate::reqwest_middleware::Result<crate::reqwest::Response>,
res: &reqwest_middleware::Result<reqwest::Response>,
) -> Option<Self> {
match res {
Ok(success) => {
Expand All @@ -123,8 +123,8 @@ impl Retryable {
}
}
Err(error) => match error {
crate::reqwest_middleware::Error::Middleware(_) => Some(Retryable::Fatal),
crate::reqwest_middleware::Error::Reqwest(error) => {
reqwest_middleware::Error::Middleware(_) => Some(Retryable::Fatal),
reqwest_middleware::Error::Reqwest(error) => {
if error.is_timeout() || error.is_connect() {
Some(Retryable::Transient)
} else if error.is_body()
Expand Down
17 changes: 0 additions & 17 deletions cognite/src/rustls_shim.rs

This file was deleted.

0 comments on commit b29cb84

Please sign in to comment.