From 6cb6c83dbaceda65ff3fe4fda242ebf0002bcd62 Mon Sep 17 00:00:00 2001 From: Brandon Thomas Date: Fri, 12 Nov 2021 23:58:10 -0500 Subject: [PATCH] clean up dependencies --- crates/app/obs_gateway/Cargo.toml | 21 +++--------- crates/app/storyteller_web/Cargo.toml | 41 +++++------------------- crates/lib/http_server_common/Cargo.toml | 3 +- 3 files changed, 14 insertions(+), 51 deletions(-) diff --git a/crates/app/obs_gateway/Cargo.toml b/crates/app/obs_gateway/Cargo.toml index fa9d81175d..6f47012566 100644 --- a/crates/app/obs_gateway/Cargo.toml +++ b/crates/app/obs_gateway/Cargo.toml @@ -26,14 +26,11 @@ chrono = { version = "0.4.19", features = ["serde"] } derive_more = "0.99.14" dotenv = "0.15.0" easyenv = "0.0.6" -futures = { version = "0.3.15", features = ["thread-pool"] } # feature for ThreadPool -futures_old_for_limiter = { package = "futures", version = "0.1.29" } # Older version of futures for `limiter` crate hex = "0.4.3" hostname = "0.3.1" lazy_static = "1.4.0" lfu = "0.2.5" log = "0.4.14" -#newrelic = "0.2.2" #newrelic-telemetry = { path = "../../../vendor/newrelic-telemetry-sdk-rust" } rand = "0.8.3" regex = "1.5.4" @@ -41,26 +38,19 @@ time = "0.2.26" uuid = { version = "0.8.2", features = ["v4"] } # Runtime -# NB(1): We switched to Tokio from `async-std` for broader ecosystem support. -#async-std = { version = "1.6", features = [ "attributes" ] } -# NB(2): Really unfortunate. We can't use Tokio 1.x due to a bug in `rust-s3` that I filed: -# https://github.com/durch/rust-s3/issues/198 -#tokio = { version = "1.6.0", features = ["macros"] } -#tokio = { version = "0.2.25", features = ["macros"] } -# NB(3,2021-11-07): Actually, maybe we can specify a version that diverges from -# the rest of the monorepo. The Twitch client needs a 1.x runtime. -#tokio = { version = "1.6.0", features = ["macros", "rt-multi-thread"] } -# Async runtime, Futures, etc. +# NB: We switched to Tokio from `async-std` for broader ecosystem support. tokio = { version = "1.10.0", features = ["rt-multi-thread", "macros", "time"] } + +# Futures +futures = { version = "0.3.15", features = ["thread-pool"] } # feature for ThreadPool futures-util = "0.3.17" +futures_old_for_limiter = { package = "futures", version = "0.1.29" } # Older version of futures for `limiter` crate # MySql Database # "offline" supports typesafe builds without a live database # "rustls" doesn't appear to work with IP addresses, per: # https://github.com/launchbadge/sqlx/issues/1095#issuecomment-798050828 #sqlx = { version = "0.5", features = [ "mysql", "runtime-async-std-native-tls", "offline", "chrono" ] } -# NB: We can't use `sqlx` 0.5 due to the `rust-s3` bug that requires a Tokio 1.x -> 0.2 downgrade -#sqlx = { version = "0.5", features = [ "mysql", "runtime-actix-native-tls", "offline", "chrono" ] } sqlx = { version = "0.4", features = [ "mysql", "runtime-tokio-native-tls", "offline", "chrono" ] } # Redis Database @@ -74,7 +64,6 @@ twitch_oauth2 = "0.6.0-rc.2" # HTTP reqwest = { version = "0.11.4" } - native-tls = "0.2.8" # In-memory caching diff --git a/crates/app/storyteller_web/Cargo.toml b/crates/app/storyteller_web/Cargo.toml index 7ff25f0492..5e32f25947 100644 --- a/crates/app/storyteller_web/Cargo.toml +++ b/crates/app/storyteller_web/Cargo.toml @@ -48,15 +48,11 @@ chrono = { version = "0.4.19", features = ["serde"] } derive_more = "0.99.14" dotenv = "0.15.0" easyenv = "0.0.6" -futures = { version = "0.3.15", features = ["thread-pool"] } # feature for ThreadPool -futures_old_for_limiter = { package = "futures", version = "0.1.29" } # Older version of futures for `limiter` crate -futures-util = "0.3.9" hex = "0.4.3" hostname = "0.3.1" lazy_static = "1.4.0" lfu = "0.2.5" log = "0.4.14" -#newrelic = "0.2.2" newrelic-telemetry = { path = "../../../vendor/newrelic-telemetry-sdk-rust" } rand = "0.8.3" regex = "1.5.4" @@ -64,21 +60,19 @@ time = "0.2.26" uuid = { version = "0.8.2", features = ["v4"] } # Runtime -# NB(1): We switched to Tokio from `async-std` for broader ecosystem support. -#async-std = { version = "1.6", features = [ "attributes" ] } -# NB(2): Really unfortunate. We can't use Tokio 1.x due to a bug in `rust-s3` that I filed: -# https://github.com/durch/rust-s3/issues/198 +# NB: We switched to Tokio from `async-std` for broader ecosystem support. tokio = { version = "1.6.0", features = ["macros"] } -#tokio = { version = "0.2.25", features = ["macros"] } + +# Futures +futures = { version = "0.3.15", features = ["thread-pool"] } # feature for ThreadPool +futures-util = "0.3.9" +futures_old_for_limiter = { package = "futures", version = "0.1.29" } # Older version of futures for `limiter` crate # MySql Database # "offline" supports typesafe builds without a live database # "rustls" doesn't appear to work with IP addresses, per: # https://github.com/launchbadge/sqlx/issues/1095#issuecomment-798050828 -#sqlx = { version = "0.5", features = [ "mysql", "runtime-async-std-native-tls", "offline", "chrono" ] } -# NB: We can't use `sqlx` 0.5 due to the `rust-s3` bug that requires a Tokio 1.x -> 0.2 downgrade sqlx = { version = "0.5", features = [ "mysql", "runtime-actix-native-tls", "offline", "chrono" ] } -#sqlx = { version = "0.4", features = [ "mysql", "runtime-tokio-native-tls", "offline", "chrono" ] } # Redis Database limitation = "0.1.1" # Redis rate limiter @@ -90,43 +84,24 @@ lru_time_cache = "0.11.11" # Files data-encoding = "2.3.2" ring = "0.17.0-alpha.10" -# NB: This is the source of all of our problems. `rust-s3` can't upload to object names with directories -# in the 0.27.* series, so we have to downgrade to 0.26, which includes a broad downgrade from Tokio 1.0 -> 0.2 -#rust-s3 = "0.27.0-rc4" -#rust-s3 = { version = "0.27.0-rc4", features = ["with-async-std"], default-features = false } -#rust-s3 = { version = "0.26" } -#rust-s3 = { version = "0.28", features = ["with-async-std"], default-features = false } rust-s3 = { version = "0.28", features = ["never-encode-slash"] } infer = "0.5.0" subprocess = "0.2.6" tempdir = "0.3.7" -# Web -#actix = "0.10" -#actix-cors = "0.5.4" -#actix-files= "0.5" -#actix-http = "2.2.0" -#actix-rt = "2.2.0" -#actix-service = "1.0.6" -#actix-utils = "3.0.0" -#actix-web = "3.3.2" -#actix-web-actors = "3" -#jwt = "0.13.0" - actix = "0.12.0" actix-cors = "0.6.0-beta.3" actix-files= "0.6.0-beta.8" actix-http = "3.0.0-beta.11" -actix-multipart = "0.4.0-beta.7" # TODO: Ready for 0.4 upgrade +actix-multipart = "0.4.0-beta.7" actix-rt = "2.4.0" actix-service = "2.0.1" actix-utils = "3.0.0" -actix-web = "4.0.0-beta.7" +actix-web = "4.0.0-beta.10" actix-web-actors = "4.0.0-beta.7" jwt = "0.13.0" - # NB: Hyper is just for HTTP client use in jobs. I'd use Actix client, but I need tokio runtime # NB: Furthermore, the Tokio runtime is old, so I have to use an older Hyper. hyper = { version = "0.14.14" } diff --git a/crates/lib/http_server_common/Cargo.toml b/crates/lib/http_server_common/Cargo.toml index 19ac74b6aa..1dc4b28a0c 100644 --- a/crates/lib/http_server_common/Cargo.toml +++ b/crates/lib/http_server_common/Cargo.toml @@ -24,8 +24,7 @@ log = "0.4.14" # Web actix-cors = "0.6.0-beta.3" actix-http = "3.0.0-beta.11" -#actix-web = "4.0.0-beta.10" -actix-web = "4.0.0-beta.7" +actix-web = "4.0.0-beta.10" # Serialization serde = "1.0.125"