diff --git a/.github/workflows/ci-master.yml b/.github/workflows/ci-master.yml
index c9b5c0ab..45e5683a 100644
--- a/.github/workflows/ci-master.yml
+++ b/.github/workflows/ci-master.yml
@@ -124,7 +124,7 @@ jobs:
       - name: Install Rust (nightly)
         uses: actions-rs/toolchain@v1
         with:
-          toolchain: stable-x86_64-unknown-linux-gnu
+          toolchain: nightly
           profile: minimal
           override: true
 
@@ -143,3 +143,71 @@ jobs:
         if: github.ref == 'refs/heads/master'
         uses: codecov/codecov-action@v1
         with: { file: cobertura.xml }
+
+  minimal-versions:
+    name: minimal versions
+    runs-on: ubuntu-latest
+    steps:
+      - uses: actions/checkout@v2
+
+      - name: Install Rust (nightly)
+        uses: actions-rs/toolchain@v1
+        with:
+          toolchain: nightly
+          profile: minimal
+          override: true
+
+      - name: Generate Cargo.lock
+        uses: actions-rs/cargo@v1
+        with: { command: generate-lockfile }
+      - name: Cache Dependencies
+        uses: Swatinem/rust-cache@v1.3.0
+
+      - name: Install cargo-minimal-versions
+        uses: actions-rs/cargo@v1
+        with:
+          command: install
+          args: cargo-minimal-versions
+
+      - name: Install cargo-hack
+        uses: actions-rs/cargo@v1
+        with:
+          command: install
+          args: cargo-hack
+
+      - name: Check With Minimal Versions
+        uses: actions-rs/cargo@v1
+        with:
+          command: minimal-versions
+          args: check
+
+  nextest:
+    name: nextest
+    runs-on: ubuntu-latest
+    steps:
+      - uses: actions/checkout@v2
+
+      - name: Install Rust
+        uses: actions-rs/toolchain@v1
+        with:
+          toolchain: stable
+          profile: minimal
+          override: true
+
+      - name: Generate Cargo.lock
+        uses: actions-rs/cargo@v1
+        with: { command: generate-lockfile }
+      - name: Cache Dependencies
+        uses: Swatinem/rust-cache@v1.3.0
+
+      - name: Install cargo-nextest
+        uses: actions-rs/cargo@v1
+        with:
+          command: install
+          args: cargo-nextest
+
+      - name: Test with cargo-nextest
+        uses: actions-rs/cargo@v1
+        with:
+          command: nextest
+          args: run
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index bf631e7b..f37adc2e 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -137,6 +137,16 @@ jobs:
           command: install
           args: cargo-hack
 
+      - name: Generate Cargo.lock
+        uses: actions-rs/cargo@v1
+        with: { command: generate-lockfile }
+
+      - name: Tweak lockfile
+        uses: actions-rs/cargo@v1
+        with:
+          command: update
+          args: -p=rustls --precise=0.20.2
+
       - name: tests
         run: |
           sudo bash -c "ulimit -Sl 512 && ulimit -Hl 512 && PATH=$PATH:/usr/share/rust/.cargo/bin && RUSTUP_TOOLCHAIN=1.46 cargo ci-test-lower-msrv"
diff --git a/actix-codec/CHANGES.md b/actix-codec/CHANGES.md
index 8f492a3b..dfb2fc7a 100644
--- a/actix-codec/CHANGES.md
+++ b/actix-codec/CHANGES.md
@@ -3,6 +3,12 @@
 ## Unreleased - 2021-xx-xx
 
 
+## 0.5.0 - 2022-02-15
+- Updated `tokio-util` dependency to `0.7.0`. [#446]
+
+[#446]: https://github.com/actix/actix-net/pull/446
+
+
 ## 0.4.2 - 2021-12-31
 - No significant changes since `0.4.1`.
 
diff --git a/actix-codec/Cargo.toml b/actix-codec/Cargo.toml
index d9920c7d..abd45f34 100644
--- a/actix-codec/Cargo.toml
+++ b/actix-codec/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "actix-codec"
-version = "0.4.2"
+version = "0.5.0"
 authors = [
     "Nikolay Kim <fafhrd91@gmail.com>",
     "Rob Ede <robjtede@icloud.com>",
@@ -17,7 +17,7 @@ name = "actix_codec"
 path = "src/lib.rs"
 
 [dependencies]
-bitflags = "1.2.1"
+bitflags = "1.2"
 bytes = "1"
 futures-core = { version = "0.3.7", default-features = false }
 futures-sink = { version = "0.3.7", default-features = false }
@@ -25,7 +25,7 @@ log = "0.4"
 memchr = "2.3"
 pin-project-lite = "0.2"
 tokio = "1.13.1"
-tokio-util = { version = "0.6", features = ["codec", "io"] }
+tokio-util = { version = "0.7", features = ["codec", "io"] }
 
 [dev-dependencies]
 criterion = { version = "0.3", features = ["html_reports"] }
diff --git a/actix-codec/src/lines.rs b/actix-codec/src/lines.rs
index af399e8f..3c233ace 100644
--- a/actix-codec/src/lines.rs
+++ b/actix-codec/src/lines.rs
@@ -7,8 +7,8 @@ use super::{Decoder, Encoder};
 
 /// Lines codec. Reads/writes line delimited strings.
 ///
-/// Will split input up by LF or CRLF delimiters. I.e. carriage return characters at the end of
-/// lines are not preserved.
+/// Will split input up by LF or CRLF delimiters. Carriage return characters at the end of lines are
+/// not preserved.
 #[derive(Debug, Copy, Clone, Default)]
 #[non_exhaustive]
 pub struct LinesCodec;
diff --git a/actix-server/Cargo.toml b/actix-server/Cargo.toml
index 23701332..4a788a9b 100755
--- a/actix-server/Cargo.toml
+++ b/actix-server/Cargo.toml
@@ -41,7 +41,7 @@ tokio = { version = "1.13.1", features = ["sync"] }
 tokio-uring = { version = "0.2", optional = true }
 
 [dev-dependencies]
-actix-codec = "0.4.2"
+actix-codec = "0.5.0"
 actix-rt = "2.6.0"
 
 bytes = "1"
diff --git a/actix-tls/CHANGES.md b/actix-tls/CHANGES.md
index da7bec65..c583b3f8 100644
--- a/actix-tls/CHANGES.md
+++ b/actix-tls/CHANGES.md
@@ -3,6 +3,10 @@
 ## Unreleased - 2021-xx-xx
 
 
+## 3.0.3 - 2022-02-15
+- No significant changes since `3.0.2`.
+
+
 ## 3.0.2 - 2022-01-28
 - Expose `connect::Connection::new`. [#439]
 
diff --git a/actix-tls/Cargo.toml b/actix-tls/Cargo.toml
index 28c8e04a..b78c0e8b 100755
--- a/actix-tls/Cargo.toml
+++ b/actix-tls/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "actix-tls"
-version = "3.0.2"
+version = "3.0.3"
 authors = [
     "Nikolay Kim <fafhrd91@gmail.com>",
     "Rob Ede <robjtede@icloud.com>",
@@ -42,7 +42,7 @@ native-tls = ["tokio-native-tls"]
 uri = ["http"]
 
 [dependencies]
-actix-codec = "0.4.2"
+actix-codec = "0.5.0"
 actix-rt = { version = "2.2.0", default-features = false }
 actix-service = "2.0.0"
 actix-utils = "3.0.0"
@@ -50,7 +50,7 @@ actix-utils = "3.0.0"
 futures-core = { version = "0.3.7", default-features = false, features = ["alloc"] }
 log = "0.4"
 pin-project-lite = "0.2.7"
-tokio-util = { version = "0.6.3", default-features = false }
+tokio-util = "0.7"
 
 # uri
 http = { version = "0.2.3", optional = true }
diff --git a/actix-tls/src/connect/tcp.rs b/actix-tls/src/connect/tcp.rs
index f8f0d3be..e2bc749a 100644
--- a/actix-tls/src/connect/tcp.rs
+++ b/actix-tls/src/connect/tcp.rs
@@ -79,7 +79,7 @@ pub enum TcpConnectorFut<R> {
         port: u16,
         local_addr: Option<IpAddr>,
         addrs: Option<VecDeque<SocketAddr>>,
-        stream: ReusableBoxFuture<Result<TcpStream, io::Error>>,
+        stream: ReusableBoxFuture<'static, Result<TcpStream, io::Error>>,
     },
 
     Error(Option<ConnectError>),