From 111f298fceab4e21f634750f1c3ad658d412755b Mon Sep 17 00:00:00 2001 From: Yuki Okushi Date: Sun, 1 Feb 2026 14:01:09 +0900 Subject: [PATCH 01/10] Add funding information for JohnTitor --- .github/FUNDING.yml | 1 + 1 file changed, 1 insertion(+) create mode 100644 .github/FUNDING.yml diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml new file mode 100644 index 00000000..f819f7c4 --- /dev/null +++ b/.github/FUNDING.yml @@ -0,0 +1 @@ +github: [JohnTitor] From 7880d991e7cc0d01371300a2c17b0d9301dad2a0 Mon Sep 17 00:00:00 2001 From: Yuki Okushi Date: Sun, 1 Feb 2026 14:24:58 +0900 Subject: [PATCH 02/10] feat: upgrade MSRV to 1.88 (#799) --- Cargo.toml | 2 +- README.md | 2 +- actix-codec/CHANGES.md | 2 +- actix-macros/CHANGES.md | 2 +- actix-rt/CHANGES.md | 2 +- actix-rt/README.md | 2 +- actix-server/CHANGES.md | 2 +- actix-server/README.md | 2 +- actix-service/CHANGES.md | 2 +- actix-service/README.md | 2 +- actix-tls/CHANGES.md | 2 ++ actix-tls/README.md | 2 +- actix-tracing/CHANGES.md | 2 +- actix-utils/CHANGES.md | 2 +- bytestring/CHANGES.md | 2 +- bytestring/README.md | 2 +- justfile | 8 -------- local-channel/CHANGES.md | 2 +- local-channel/README.md | 2 +- local-waker/CHANGES.md | 2 +- local-waker/README.md | 2 +- 21 files changed, 21 insertions(+), 27 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index 74792da7..f38ba50f 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -19,7 +19,7 @@ homepage = "https://actix.rs" repository = "https://github.com/actix/actix-net" license = "MIT OR Apache-2.0" edition = "2021" -rust-version = "1.76" +rust-version = "1.88" [patch.crates-io] actix-codec = { path = "actix-codec" } diff --git a/README.md b/README.md index 3193bd09..742492f6 100644 --- a/README.md +++ b/README.md @@ -13,7 +13,7 @@ See example folders for [`actix-server`](./actix-server/examples) and [`actix-tl ## MSRV -Crates in this repo currently have a Minimum Supported Rust Version (MSRV) of 1.65. As a policy, we permit MSRV increases in non-breaking releases. +Crates in this repo currently have a Minimum Supported Rust Version (MSRV) of 1.88. As a policy, we permit MSRV increases in non-breaking releases. ## License diff --git a/actix-codec/CHANGES.md b/actix-codec/CHANGES.md index f50ded24..2cfe60d2 100644 --- a/actix-codec/CHANGES.md +++ b/actix-codec/CHANGES.md @@ -2,7 +2,7 @@ ## Unreleased -- Minimum supported Rust version (MSRV) is now 1.76. +- Minimum supported Rust version (MSRV) is now 1.88. ## 0.5.2 diff --git a/actix-macros/CHANGES.md b/actix-macros/CHANGES.md index 3900129e..146f69f7 100644 --- a/actix-macros/CHANGES.md +++ b/actix-macros/CHANGES.md @@ -2,7 +2,7 @@ ## Unreleased -- Minimum supported Rust version (MSRV) is now 1.76. +- Minimum supported Rust version (MSRV) is now 1.88. ## 0.2.4 diff --git a/actix-rt/CHANGES.md b/actix-rt/CHANGES.md index b651ac7a..6ba3532b 100644 --- a/actix-rt/CHANGES.md +++ b/actix-rt/CHANGES.md @@ -2,7 +2,7 @@ ## Unreleased -- Minimum supported Rust version (MSRV) is now 1.76. +- Minimum supported Rust version (MSRV) is now 1.88. ## 2.11.0 diff --git a/actix-rt/README.md b/actix-rt/README.md index f1618fe6..31037720 100644 --- a/actix-rt/README.md +++ b/actix-rt/README.md @@ -4,7 +4,7 @@ [![crates.io](https://img.shields.io/crates/v/actix-rt?label=latest)](https://crates.io/crates/actix-rt) [![Documentation](https://docs.rs/actix-rt/badge.svg?version=2.11.0)](https://docs.rs/actix-rt/2.11.0) -[![Version](https://img.shields.io/badge/rustc-1.46+-ab6000.svg)](https://blog.rust-lang.org/2020/03/12/Rust-1.46.html) +[![Version](https://img.shields.io/badge/rustc-1.88+-ab6000.svg)](https://blog.rust-lang.org/2020/03/12/Rust-1.46.html) ![MIT or Apache 2.0 licensed](https://img.shields.io/crates/l/actix-rt.svg)
[![dependency status](https://deps.rs/crate/actix-rt/2.11.0/status.svg)](https://deps.rs/crate/actix-rt/2.11.0) diff --git a/actix-server/CHANGES.md b/actix-server/CHANGES.md index 729953f0..22aee61b 100644 --- a/actix-server/CHANGES.md +++ b/actix-server/CHANGES.md @@ -2,7 +2,7 @@ ## Unreleased -- Minimum supported Rust version (MSRV) is now 1.76. +- Minimum supported Rust version (MSRV) is now 1.88. ## 2.6.0 diff --git a/actix-server/README.md b/actix-server/README.md index c51e1864..f7bcda42 100644 --- a/actix-server/README.md +++ b/actix-server/README.md @@ -6,7 +6,7 @@ [![crates.io](https://img.shields.io/crates/v/actix-server?label=latest)](https://crates.io/crates/actix-server) [![Documentation](https://docs.rs/actix-server/badge.svg?version=2.6.0)](https://docs.rs/actix-server/2.6.0) -[![Version](https://img.shields.io/badge/rustc-1.52+-ab6000.svg)](https://blog.rust-lang.org/2021/05/06/Rust-1.52.0.html) +[![Version](https://img.shields.io/badge/rustc-1.88+-ab6000.svg)](https://blog.rust-lang.org/2021/05/06/Rust-1.52.0.html) ![MIT or Apache 2.0 licensed](https://img.shields.io/crates/l/actix-server.svg)
[![Dependency Status](https://deps.rs/crate/actix-server/2.6.0/status.svg)](https://deps.rs/crate/actix-server/2.6.0) diff --git a/actix-service/CHANGES.md b/actix-service/CHANGES.md index 7a31a56f..5980ae92 100644 --- a/actix-service/CHANGES.md +++ b/actix-service/CHANGES.md @@ -2,7 +2,7 @@ ## Unreleased -- Minimum supported Rust version (MSRV) is now 1.76. +- Minimum supported Rust version (MSRV) is now 1.88. ## 2.0.3 diff --git a/actix-service/README.md b/actix-service/README.md index 0af08a83..7a31fdc6 100644 --- a/actix-service/README.md +++ b/actix-service/README.md @@ -4,7 +4,7 @@ [![crates.io](https://img.shields.io/crates/v/actix-service?label=latest)](https://crates.io/crates/actix-service) [![Documentation](https://docs.rs/actix-service/badge.svg?version=2.0.3)](https://docs.rs/actix-service/2.0.3) -[![Version](https://img.shields.io/badge/rustc-1.46+-ab6000.svg)](https://blog.rust-lang.org/2020/03/12/Rust-1.46.html) +[![Version](https://img.shields.io/badge/rustc-1.88+-ab6000.svg)](https://blog.rust-lang.org/2020/03/12/Rust-1.46.html) ![MIT or Apache 2.0 licensed](https://img.shields.io/crates/l/actix-service.svg) [![Dependency Status](https://deps.rs/crate/actix-service/2.0.3/status.svg)](https://deps.rs/crate/actix-service/2.0.3) ![Download](https://img.shields.io/crates/d/actix-service.svg) diff --git a/actix-tls/CHANGES.md b/actix-tls/CHANGES.md index 4f0bc4e8..4ea54b2f 100644 --- a/actix-tls/CHANGES.md +++ b/actix-tls/CHANGES.md @@ -2,6 +2,8 @@ ## Unreleased +- Minimum supported Rust version (MSRV) is now 1.88. + ## 3.5.0 - Update `rustls-native-certs` (`0.7`) dependency to `0.8`. diff --git a/actix-tls/README.md b/actix-tls/README.md index 081c3e7f..a6c15fc5 100644 --- a/actix-tls/README.md +++ b/actix-tls/README.md @@ -6,7 +6,7 @@ [![crates.io](https://img.shields.io/crates/v/actix-tls?label=latest)](https://crates.io/crates/actix-tls) [![Documentation](https://docs.rs/actix-tls/badge.svg?version=3.5.0)](https://docs.rs/actix-tls/3.5.0) -[![Version](https://img.shields.io/badge/rustc-1.52+-ab6000.svg)](https://blog.rust-lang.org/2021/05/06/Rust-1.52.0.html) +[![Version](https://img.shields.io/badge/rustc-1.88+-ab6000.svg)](https://blog.rust-lang.org/2021/05/06/Rust-1.52.0.html) ![MIT or Apache 2.0 licensed](https://img.shields.io/crates/l/actix-tls.svg)
[![Dependency Status](https://deps.rs/crate/actix-tls/3.5.0/status.svg)](https://deps.rs/crate/actix-tls/3.5.0) diff --git a/actix-tracing/CHANGES.md b/actix-tracing/CHANGES.md index 8f59bb50..2a9f6c6c 100644 --- a/actix-tracing/CHANGES.md +++ b/actix-tracing/CHANGES.md @@ -2,7 +2,7 @@ ## Unreleased -- Minimum supported Rust version (MSRV) is now 1.76. +- Minimum supported Rust version (MSRV) is now 1.88. ## 0.1.0 diff --git a/actix-utils/CHANGES.md b/actix-utils/CHANGES.md index 9cd71ef3..42dea2f3 100644 --- a/actix-utils/CHANGES.md +++ b/actix-utils/CHANGES.md @@ -2,7 +2,7 @@ ## Unreleased -- Minimum supported Rust version (MSRV) is now 1.76. +- Minimum supported Rust version (MSRV) is now 1.88. ## 3.0.1 diff --git a/bytestring/CHANGES.md b/bytestring/CHANGES.md index d82400d7..b29e3e72 100644 --- a/bytestring/CHANGES.md +++ b/bytestring/CHANGES.md @@ -2,7 +2,7 @@ ## Unreleased -- Minimum supported Rust version (MSRV) is now 1.76. +- Minimum supported Rust version (MSRV) is now 1.88. ## 1.5.0 diff --git a/bytestring/README.md b/bytestring/README.md index 589c35c4..f55bbc4a 100644 --- a/bytestring/README.md +++ b/bytestring/README.md @@ -6,7 +6,7 @@ [![crates.io](https://img.shields.io/crates/v/bytestring?label=latest)](https://crates.io/crates/bytestring) [![Documentation](https://docs.rs/bytestring/badge.svg?version=1.5.0)](https://docs.rs/bytestring/1.5.0) -[![Version](https://img.shields.io/badge/rustc-1.52+-ab6000.svg)](https://blog.rust-lang.org/2021/05/06/Rust-1.52.0.html) +[![Version](https://img.shields.io/badge/rustc-1.88+-ab6000.svg)](https://blog.rust-lang.org/2021/05/06/Rust-1.52.0.html) ![MIT or Apache 2.0 licensed](https://img.shields.io/crates/l/bytestring.svg)
[![Dependency Status](https://deps.rs/crate/bytestring/1.5.0/status.svg)](https://deps.rs/crate/bytestring/1.5.0) diff --git a/justfile b/justfile index 7912634c..8c473132 100644 --- a/justfile +++ b/justfile @@ -23,14 +23,6 @@ fmt: # Downgrade dependencies necessary to run MSRV checks/tests. [private] downgrade-for-msrv: - cargo {{ toolchain }} update -p=rayon --precise=1.10.0 # next ver: 1.80.0 - cargo {{ toolchain }} update -p=rayon-core --precise=1.12.1 # next ver: 1.80.0 - cargo {{ toolchain }} update -p=native-tls --precise=0.2.13 # next ver: 1.80.0 - cargo {{ toolchain }} update -p=idna_adapter --precise=1.2.0 # next ver: 1.82.0 - cargo {{ toolchain }} update -p=litemap --precise=0.7.4 # next ver: 1.81.0 - cargo {{ toolchain }} update -p=zerofrom --precise=0.1.5 # next ver: 1.81.0 - cargo {{ toolchain }} update -p=half --precise=2.4.1 # next ver: 1.81.0 - cargo {{ toolchain }} update -p=time --precise=0.3.41 # next ver: 1.81.0 msrv := ``` cargo metadata --format-version=1 \ diff --git a/local-channel/CHANGES.md b/local-channel/CHANGES.md index fbd52108..bdc0c7ea 100644 --- a/local-channel/CHANGES.md +++ b/local-channel/CHANGES.md @@ -2,7 +2,7 @@ ## Unreleased -- Minimum supported Rust version (MSRV) is now 1.76. +- Minimum supported Rust version (MSRV) is now 1.88. ## 0.1.5 diff --git a/local-channel/README.md b/local-channel/README.md index 5a320383..5cc14692 100644 --- a/local-channel/README.md +++ b/local-channel/README.md @@ -6,7 +6,7 @@ [![crates.io](https://img.shields.io/crates/v/local-channel?label=latest)](https://crates.io/crates/local-channel) [![Documentation](https://docs.rs/local-channel/badge.svg?version=0.1.5)](https://docs.rs/local-channel/0.1.5) -[![Version](https://img.shields.io/badge/rustc-1.52+-ab6000.svg)](https://blog.rust-lang.org/2021/05/06/Rust-1.52.0.html) +[![Version](https://img.shields.io/badge/rustc-1.88+-ab6000.svg)](https://blog.rust-lang.org/2021/05/06/Rust-1.52.0.html) ![MIT or Apache 2.0 licensed](https://img.shields.io/crates/l/local-channel.svg)
[![Dependency Status](https://deps.rs/crate/local-channel/0.1.5/status.svg)](https://deps.rs/crate/local-channel/0.1.5) diff --git a/local-waker/CHANGES.md b/local-waker/CHANGES.md index 72431a08..00883d58 100644 --- a/local-waker/CHANGES.md +++ b/local-waker/CHANGES.md @@ -2,7 +2,7 @@ ## Unreleased -- Minimum supported Rust version (MSRV) is now 1.76. +- Minimum supported Rust version (MSRV) is now 1.88. ## 0.1.4 diff --git a/local-waker/README.md b/local-waker/README.md index f82ca84b..db9d24d8 100644 --- a/local-waker/README.md +++ b/local-waker/README.md @@ -6,7 +6,7 @@ [![crates.io](https://img.shields.io/crates/v/local-waker?label=latest)](https://crates.io/crates/local-waker) [![Documentation](https://docs.rs/local-waker/badge.svg?version=0.1.4)](https://docs.rs/local-waker/0.1.4) -[![Version](https://img.shields.io/badge/rustc-1.52+-ab6000.svg)](https://blog.rust-lang.org/2021/05/06/Rust-1.52.0.html) +[![Version](https://img.shields.io/badge/rustc-1.88+-ab6000.svg)](https://blog.rust-lang.org/2021/05/06/Rust-1.52.0.html) ![MIT or Apache 2.0 licensed](https://img.shields.io/crates/l/local-waker.svg)
[![Dependency Status](https://deps.rs/crate/local-waker/0.1.4/status.svg)](https://deps.rs/crate/local-waker/0.1.4) From 9f10a4222b5dab989c632e3e6a2bcf4575f7e4e9 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 1 Feb 2026 14:25:18 +0900 Subject: [PATCH 03/10] build(deps): bump proc-macro2 from 1.0.104 to 1.0.105 (#792) Bumps [proc-macro2](https://github.com/dtolnay/proc-macro2) from 1.0.104 to 1.0.105. - [Release notes](https://github.com/dtolnay/proc-macro2/releases) - [Commits](https://github.com/dtolnay/proc-macro2/compare/1.0.104...1.0.105) --- updated-dependencies: - dependency-name: proc-macro2 dependency-version: 1.0.105 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Cargo.lock | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 25830628..6b0a3565 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1475,9 +1475,9 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.104" +version = "1.0.105" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9695f8df41bb4f3d222c95a67532365f569318332d03d5f3f67f37b20e6ebdf0" +checksum = "535d180e0ecab6268a3e718bb9fd44db66bbbc256257165fc699dadf70d16fe7" dependencies = [ "unicode-ident", ] From 758213b3de555dffa9cb13af1109a9a3e72762c6 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 1 Feb 2026 14:25:38 +0900 Subject: [PATCH 04/10] build(deps): bump tracing-subscriber from 0.3.20 to 0.3.22 (#793) Bumps [tracing-subscriber](https://github.com/tokio-rs/tracing) from 0.3.20 to 0.3.22. - [Release notes](https://github.com/tokio-rs/tracing/releases) - [Commits](https://github.com/tokio-rs/tracing/compare/tracing-subscriber-0.3.20...tracing-subscriber-0.3.22) --- updated-dependencies: - dependency-name: tracing-subscriber dependency-version: 0.3.22 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Cargo.lock | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 6b0a3565..07ebab91 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2442,9 +2442,9 @@ dependencies = [ [[package]] name = "tracing-subscriber" -version = "0.3.20" +version = "0.3.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2054a14f5307d601f88daf0553e1cbf472acc4f2c51afab632431cdcd72124d5" +checksum = "2f30143827ddab0d256fd843b7a66d164e9f271cfa0dde49142c5ca0ca291f1e" dependencies = [ "matchers", "nu-ansi-term", From 5b3c28f780650991fc128f356b35e3ad0c2cb9cd Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 1 Feb 2026 14:25:47 +0900 Subject: [PATCH 05/10] build(deps): bump taiki-e/cache-cargo-install-action from 3.0.0 to 3.0.1 (#790) Bumps [taiki-e/cache-cargo-install-action](https://github.com/taiki-e/cache-cargo-install-action) from 3.0.0 to 3.0.1. - [Release notes](https://github.com/taiki-e/cache-cargo-install-action/releases) - [Changelog](https://github.com/taiki-e/cache-cargo-install-action/blob/main/CHANGELOG.md) - [Commits](https://github.com/taiki-e/cache-cargo-install-action/compare/v3.0.0...v3.0.1) --- updated-dependencies: - dependency-name: taiki-e/cache-cargo-install-action dependency-version: 3.0.1 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/lint.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 0b401e05..24986785 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -61,7 +61,7 @@ jobs: tool: just - name: Install cargo-check-external-types - uses: taiki-e/cache-cargo-install-action@v3.0.0 + uses: taiki-e/cache-cargo-install-action@v3.0.1 with: tool: cargo-check-external-types From 1591b3525883fd79eaaf5cf677b9ea45c462f4b5 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 1 Feb 2026 14:25:50 +0900 Subject: [PATCH 06/10] build(deps): bump serde_json from 1.0.148 to 1.0.149 (#791) Bumps [serde_json](https://github.com/serde-rs/json) from 1.0.148 to 1.0.149. - [Release notes](https://github.com/serde-rs/json/releases) - [Commits](https://github.com/serde-rs/json/compare/v1.0.148...v1.0.149) --- updated-dependencies: - dependency-name: serde_json dependency-version: 1.0.149 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Cargo.lock | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 07ebab91..cb5941ab 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1936,9 +1936,9 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.148" +version = "1.0.149" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3084b546a1dd6289475996f182a22aba973866ea8e8b02c51d9f46b1336a22da" +checksum = "83fc039473c5595ace860d8c4fafa220ff474b3fc6bfdb4293327f1a37e94d86" dependencies = [ "itoa", "memchr", From df317d1546e2a1c63a201d0316288f3aadc24769 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 1 Feb 2026 14:32:04 +0900 Subject: [PATCH 07/10] build(deps): bump tokio-test from 0.4.4 to 0.4.5 (#794) Bumps [tokio-test](https://github.com/tokio-rs/tokio) from 0.4.4 to 0.4.5. - [Release notes](https://github.com/tokio-rs/tokio/releases) - [Commits](https://github.com/tokio-rs/tokio/compare/tokio-test-0.4.4...tokio-test-0.4.5) --- updated-dependencies: - dependency-name: tokio-test dependency-version: 0.4.5 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Cargo.lock | 28 ++-------------------------- 1 file changed, 2 insertions(+), 26 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index cb5941ab..966084a3 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -172,28 +172,6 @@ version = "1.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "862ed96ca487e809f1c8e5a8447f6ee2cf102f846893800b20cebdf541fc6bbd" -[[package]] -name = "async-stream" -version = "0.3.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b5a71a6f37880a80d1d7f19efd781e4b5de42c88f0722cc13bcb6cc2cfe8476" -dependencies = [ - "async-stream-impl", - "futures-core", - "pin-project-lite", -] - -[[package]] -name = "async-stream-impl" -version = "0.3.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c7c24de15d275a1ecfd47a380fb4d5ec9bfe0933f309ed5e705b775596a3574d" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - [[package]] name = "async-trait" version = "0.1.89" @@ -2309,12 +2287,10 @@ dependencies = [ [[package]] name = "tokio-test" -version = "0.4.4" +version = "0.4.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2468baabc3311435b55dd935f702f42cd1b8abb7e754fb7dfb16bd36aa88f9f7" +checksum = "3f6d24790a10a7af737693a3e8f1d03faef7e6ca0cc99aae5066f533766de545" dependencies = [ - "async-stream", - "bytes", "futures-core", "tokio", "tokio-stream", From ebe002fe7eb5c77d49faaffb35c8eb8c0fd99d4e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 1 Feb 2026 05:32:52 +0000 Subject: [PATCH 08/10] build(deps): bump syn from 2.0.111 to 2.0.114 (#795) Bumps [syn](https://github.com/dtolnay/syn) from 2.0.111 to 2.0.114. - [Release notes](https://github.com/dtolnay/syn/releases) - [Commits](https://github.com/dtolnay/syn/compare/2.0.111...2.0.114) --- updated-dependencies: - dependency-name: syn dependency-version: 2.0.114 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Cargo.lock | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 966084a3..5951d194 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2026,9 +2026,9 @@ checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" [[package]] name = "syn" -version = "2.0.111" +version = "2.0.114" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "390cc9a294ab71bdb1aa2e99d13be9c753cd2d7bd6560c77118597410c4d2e87" +checksum = "d4d107df263a3013ef9b1879b0df87d706ff80f65a86ea879bd9c31f9b307c2a" dependencies = [ "proc-macro2", "quote", From 7cf62ad80be3a0d66a138e19dff66bd67906b418 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 1 Feb 2026 05:49:13 +0000 Subject: [PATCH 09/10] build(deps): bump taiki-e/install-action from 2.65.13 to 2.67.13 (#798) Bumps [taiki-e/install-action](https://github.com/taiki-e/install-action) from 2.65.13 to 2.67.13. - [Release notes](https://github.com/taiki-e/install-action/releases) - [Changelog](https://github.com/taiki-e/install-action/blob/main/CHANGELOG.md) - [Commits](https://github.com/taiki-e/install-action/compare/v2.65.13...v2.67.13) --- updated-dependencies: - dependency-name: taiki-e/install-action dependency-version: 2.67.13 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/ci-post-merge.yml | 4 ++-- .github/workflows/ci.yml | 4 ++-- .github/workflows/coverage.yml | 2 +- .github/workflows/lint.yml | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/ci-post-merge.yml b/.github/workflows/ci-post-merge.yml index ee64cf64..02610dfc 100644 --- a/.github/workflows/ci-post-merge.yml +++ b/.github/workflows/ci-post-merge.yml @@ -64,7 +64,7 @@ jobs: toolchain: ${{ matrix.version }} - name: Install just, cargo-hack, cargo-nextest, cargo-ci-cache-clean - uses: taiki-e/install-action@v2.65.13 + uses: taiki-e/install-action@v2.67.13 with: tool: just,cargo-hack,cargo-nextest,cargo-ci-cache-clean @@ -121,7 +121,7 @@ jobs: toolchain: nightly - name: Install cargo-hack & cargo-minimal-versions - uses: taiki-e/install-action@v2.65.13 + uses: taiki-e/install-action@v2.67.13 with: tool: cargo-hack,cargo-minimal-versions diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 5e54585f..e418306d 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -73,7 +73,7 @@ jobs: toolchain: ${{ matrix.version.version }} - name: Install just, cargo-hack, cargo-nextest, cargo-ci-cache-clean - uses: taiki-e/install-action@v2.65.13 + uses: taiki-e/install-action@v2.67.13 with: tool: just,cargo-hack,cargo-nextest,cargo-ci-cache-clean @@ -125,7 +125,7 @@ jobs: toolchain: nightly - name: Install just - uses: taiki-e/install-action@v2.65.13 + uses: taiki-e/install-action@v2.67.13 with: tool: just diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml index d4f0c818..2f10ace4 100644 --- a/.github/workflows/coverage.yml +++ b/.github/workflows/coverage.yml @@ -23,7 +23,7 @@ jobs: components: llvm-tools-preview - name: Install cargo-llvm-cov - uses: taiki-e/install-action@v2.65.13 + uses: taiki-e/install-action@v2.67.13 with: tool: cargo-llvm-cov diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 24986785..23f14979 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -56,7 +56,7 @@ jobs: toolchain: ${{ vars.RUST_VERSION_EXTERNAL_TYPES }} - name: Install just - uses: taiki-e/install-action@v2.65.13 + uses: taiki-e/install-action@v2.67.13 with: tool: just From 7a908e01eab2d69b050ccfcdf188085fdd92416c Mon Sep 17 00:00:00 2001 From: Yuki Okushi Date: Sun, 1 Feb 2026 20:56:45 +0900 Subject: [PATCH 10/10] chore: prefer `core::future::{ready, Ready}` (#800) --- actix-server/CHANGES.md | 1 + actix-server/src/join_all.rs | 2 +- actix-server/src/service.rs | 2 +- actix-service/CHANGES.md | 1 + actix-service/src/and_then.rs | 9 ++--- actix-service/src/apply.rs | 12 +++---- actix-service/src/fn_service.rs | 32 +++++++++++------ actix-service/src/lib.rs | 3 -- actix-service/src/map.rs | 8 +++-- actix-service/src/map_err.rs | 10 ++++-- actix-service/src/ready.rs | 54 ---------------------------- actix-service/src/then.rs | 12 +++---- actix-service/src/transform.rs | 7 ++-- actix-tls/CHANGES.md | 1 + actix-tls/src/accept/native_tls.rs | 6 ++-- actix-tls/src/accept/openssl.rs | 6 ++-- actix-tls/src/accept/rustls_0_20.rs | 6 ++-- actix-tls/src/accept/rustls_0_21.rs | 6 ++-- actix-tls/src/accept/rustls_0_22.rs | 6 ++-- actix-tls/src/accept/rustls_0_23.rs | 6 ++-- actix-tls/src/connect/connector.rs | 4 +-- actix-tls/src/connect/native_tls.rs | 4 +-- actix-tls/src/connect/openssl.rs | 6 ++-- actix-tls/src/connect/resolver.rs | 4 +-- actix-tls/src/connect/rustls_0_20.rs | 6 ++-- actix-tls/src/connect/rustls_0_21.rs | 6 ++-- actix-tls/src/connect/rustls_0_22.rs | 6 ++-- actix-tls/src/connect/rustls_0_23.rs | 6 ++-- actix-tls/src/connect/tcp.rs | 4 +-- actix-tls/tests/accept-openssl.rs | 4 +-- actix-tls/tests/accept-rustls.rs | 4 +-- actix-tracing/CHANGES.md | 1 + actix-tracing/src/lib.rs | 16 +++++---- actix-utils/CHANGES.md | 1 + actix-utils/src/future/either.rs | 6 ++-- actix-utils/src/future/mod.rs | 3 +- actix-utils/src/future/ready.rs | 9 ++++- 37 files changed, 123 insertions(+), 157 deletions(-) delete mode 100644 actix-service/src/ready.rs diff --git a/actix-server/CHANGES.md b/actix-server/CHANGES.md index 22aee61b..aff4c8da 100644 --- a/actix-server/CHANGES.md +++ b/actix-server/CHANGES.md @@ -3,6 +3,7 @@ ## Unreleased - Minimum supported Rust version (MSRV) is now 1.88. +- internal: Use `core::future::{ready, Ready}` instead of actix-utils' ## 2.6.0 diff --git a/actix-server/src/join_all.rs b/actix-server/src/join_all.rs index e9bd8949..b7a33c8b 100644 --- a/actix-server/src/join_all.rs +++ b/actix-server/src/join_all.rs @@ -63,7 +63,7 @@ impl Future for JoinAll { #[cfg(test)] mod test { - use actix_utils::future::ready; + use core::future::ready; use super::*; diff --git a/actix-server/src/service.rs b/actix-server/src/service.rs index eba1470e..2de89702 100644 --- a/actix-server/src/service.rs +++ b/actix-server/src/service.rs @@ -1,3 +1,4 @@ +use core::future::{ready, Ready}; use std::{ marker::PhantomData, net::SocketAddr, @@ -5,7 +6,6 @@ use std::{ }; use actix_service::{Service, ServiceFactory as BaseServiceFactory}; -use actix_utils::future::{ready, Ready}; use futures_core::future::LocalBoxFuture; use tracing::error; diff --git a/actix-service/CHANGES.md b/actix-service/CHANGES.md index 5980ae92..35ded6aa 100644 --- a/actix-service/CHANGES.md +++ b/actix-service/CHANGES.md @@ -3,6 +3,7 @@ ## Unreleased - Minimum supported Rust version (MSRV) is now 1.88. +- internal: Use `core::future::{ready, Ready}` instead of hand-crafted one ## 2.0.3 diff --git a/actix-service/src/and_then.rs b/actix-service/src/and_then.rs index 28a17044..e453f7be 100644 --- a/actix-service/src/and_then.rs +++ b/actix-service/src/and_then.rs @@ -246,15 +246,16 @@ mod tests { use alloc::rc::Rc; use core::{ cell::Cell, + future::{ready, Ready}, task::{Context, Poll}, }; use futures_util::future::lazy; use crate::{ - fn_factory, ok, + fn_factory, pipeline::{pipeline, pipeline_factory}, - ready, Ready, Service, ServiceFactory, + Service, ServiceFactory, }; struct Srv1(Rc>); @@ -270,7 +271,7 @@ mod tests { } fn call(&self, req: &'static str) -> Self::Future { - ok(req) + ready(Ok(req)) } } @@ -288,7 +289,7 @@ mod tests { } fn call(&self, req: &'static str) -> Self::Future { - ok((req, "srv2")) + ready(Ok((req, "srv2"))) } } diff --git a/actix-service/src/apply.rs b/actix-service/src/apply.rs index 8c7097c0..2bf88637 100644 --- a/actix-service/src/apply.rs +++ b/actix-service/src/apply.rs @@ -208,14 +208,12 @@ where #[cfg(test)] mod tests { + use core::future::{ready, Ready}; + use futures_util::future::lazy; use super::*; - use crate::{ - ok, - pipeline::{pipeline, pipeline_factory}, - Ready, - }; + use crate::pipeline::{pipeline, pipeline_factory}; #[derive(Clone)] struct Srv; @@ -228,7 +226,7 @@ mod tests { crate::always_ready!(); fn call(&self, _: ()) -> Self::Future { - ok(()) + ready(Ok(())) } } @@ -252,7 +250,7 @@ mod tests { #[actix_rt::test] async fn test_new_service() { let new_srv = pipeline_factory(apply_fn_factory( - || ok::<_, ()>(Srv), + || ready(Ok::<_, ()>(Srv)), |req: &'static str, srv| { let fut = srv.call(()); async move { diff --git a/actix-service/src/fn_service.rs b/actix-service/src/fn_service.rs index c0f8a9c3..b4d82013 100644 --- a/actix-service/src/fn_service.rs +++ b/actix-service/src/fn_service.rs @@ -1,6 +1,9 @@ -use core::{future::Future, marker::PhantomData}; +use core::{ + future::{ready, Future, Ready}, + marker::PhantomData, +}; -use crate::{ok, IntoService, IntoServiceFactory, Ready, Service, ServiceFactory}; +use crate::{IntoService, IntoServiceFactory, Service, ServiceFactory}; /// Create `ServiceFactory` for function that can act as a `Service` pub fn fn_service(f: F) -> FnServiceFactory @@ -210,7 +213,7 @@ where type Future = Ready>; fn new_service(&self, _: Cfg) -> Self::Future { - ok(FnService::new(self.f.clone())) + ready(Ok(FnService::new(self.f.clone()))) } } @@ -346,7 +349,7 @@ where #[cfg(test)] mod tests { - use core::task::Poll; + use core::{future::ready, task::Poll}; use futures_util::future::lazy; @@ -354,7 +357,7 @@ mod tests { #[actix_rt::test] async fn test_fn_service() { - let new_srv = fn_service(|()| ok::<_, ()>("srv")); + let new_srv = fn_service(|()| ready(Ok::<_, ()>("srv"))); let srv = new_srv.new_service(()).await.unwrap(); let res = srv.call(()).await; @@ -365,7 +368,7 @@ mod tests { #[actix_rt::test] async fn test_fn_service_service() { - let srv = fn_service(|()| ok::<_, ()>("srv")); + let srv = fn_service(|()| ready(Ok::<_, ()>("srv"))); let res = srv.call(()).await; assert_eq!(lazy(|cx| srv.poll_ready(cx)).await, Poll::Ready(Ok(()))); @@ -376,7 +379,9 @@ mod tests { #[actix_rt::test] async fn test_fn_service_with_config() { let new_srv = fn_factory_with_config(|cfg: usize| { - ok::<_, ()>(fn_service(move |()| ok::<_, ()>(("srv", cfg)))) + ready(Ok::<_, ()>(fn_service(move |()| { + ready(Ok::<_, ()>(("srv", cfg))) + }))) }); let srv = new_srv.new_service(1).await.unwrap(); @@ -392,14 +397,19 @@ mod tests { use crate::{map_config, ServiceExt, ServiceFactoryExt}; - let srv_1 = fn_service(|_: Rc| ok::<_, Rc>(Rc::new(0u8))); + let srv_1 = fn_service(|_: Rc| ready(Ok::<_, Rc>(Rc::new(0u8)))); let fac_1 = fn_factory_with_config(|_: Rc| { - ok::<_, Rc>(fn_service(|_: Rc| ok::<_, Rc>(Rc::new(0u8)))) + ready(Ok::<_, Rc>(fn_service(|_: Rc| { + ready(Ok::<_, Rc>(Rc::new(0u8))) + }))) }); - let fac_2 = - fn_factory(|| ok::<_, Rc>(fn_service(|_: Rc| ok::<_, Rc>(Rc::new(0u8))))); + let fac_2 = fn_factory(|| { + ready(Ok::<_, Rc>(fn_service(|_: Rc| { + ready(Ok::<_, Rc>(Rc::new(0u8))) + }))) + }); fn is_send(_: &T) {} diff --git a/actix-service/src/lib.rs b/actix-service/src/lib.rs index 963851ac..43587842 100644 --- a/actix-service/src/lib.rs +++ b/actix-service/src/lib.rs @@ -26,13 +26,10 @@ mod map_config; mod map_err; mod map_init_err; mod pipeline; -mod ready; mod then; mod transform; mod transform_err; -#[allow(unused_imports)] -use self::ready::{err, ok, ready, Ready}; pub use self::{ apply::{apply_fn, apply_fn_factory}, apply_cfg::{apply_cfg, apply_cfg_factory}, diff --git a/actix-service/src/map.rs b/actix-service/src/map.rs index 97aec16e..23dc0d08 100644 --- a/actix-service/src/map.rs +++ b/actix-service/src/map.rs @@ -199,10 +199,12 @@ where #[cfg(test)] mod tests { + use core::future::{ready, Ready}; + use futures_util::future::lazy; use super::*; - use crate::{ok, IntoServiceFactory, Ready, ServiceExt, ServiceFactoryExt}; + use crate::{IntoServiceFactory, ServiceExt, ServiceFactoryExt}; struct Srv; @@ -214,7 +216,7 @@ mod tests { crate::always_ready!(); fn call(&self, _: ()) -> Self::Future { - ok(()) + ready(Ok(())) } } @@ -235,7 +237,7 @@ mod tests { #[actix_rt::test] async fn test_new_service() { - let new_srv = (|| ok::<_, ()>(Srv)).into_factory().map(|_| "ok"); + let new_srv = (|| ready(Ok::<_, ()>(Srv))).into_factory().map(|_| "ok"); let srv = new_srv.new_service(&()).await.unwrap(); let res = srv.call(()).await; assert!(res.is_ok()); diff --git a/actix-service/src/map_err.rs b/actix-service/src/map_err.rs index da77b242..e3836ed8 100644 --- a/actix-service/src/map_err.rs +++ b/actix-service/src/map_err.rs @@ -202,10 +202,12 @@ where #[cfg(test)] mod tests { + use core::future::{ready, Ready}; + use futures_util::future::lazy; use super::*; - use crate::{err, ok, IntoServiceFactory, Ready, ServiceExt, ServiceFactoryExt}; + use crate::{IntoServiceFactory, ServiceExt, ServiceFactoryExt}; struct Srv; @@ -219,7 +221,7 @@ mod tests { } fn call(&self, _: ()) -> Self::Future { - err(()) + ready(Err(())) } } @@ -240,7 +242,9 @@ mod tests { #[actix_rt::test] async fn test_new_service() { - let new_srv = (|| ok::<_, ()>(Srv)).into_factory().map_err(|_| "error"); + let new_srv = (|| ready(Ok::<_, ()>(Srv))) + .into_factory() + .map_err(|_| "error"); let srv = new_srv.new_service(&()).await.unwrap(); let res = srv.call(()).await; assert!(res.is_err()); diff --git a/actix-service/src/ready.rs b/actix-service/src/ready.rs deleted file mode 100644 index 7e32fa9e..00000000 --- a/actix-service/src/ready.rs +++ /dev/null @@ -1,54 +0,0 @@ -//! When MSRV is 1.82, replace with `core::future::Ready` and `core::future::ready()`. - -use core::{ - future::Future, - pin::Pin, - task::{Context, Poll}, -}; - -/// Future for the [`ready`](ready()) function. -#[derive(Debug, Clone)] -#[must_use = "futures do nothing unless you `.await` or poll them"] -pub struct Ready { - val: Option, -} - -impl Ready { - /// Unwraps the value from this immediately ready future. - #[inline] - pub fn into_inner(mut self) -> T { - self.val.take().unwrap() - } -} - -impl Unpin for Ready {} - -impl Future for Ready { - type Output = T; - - #[inline] - fn poll(mut self: Pin<&mut Self>, _cx: &mut Context<'_>) -> Poll { - let val = self.val.take().expect("Ready can not be polled twice."); - Poll::Ready(val) - } -} - -/// Creates a future that is immediately ready with a value. -#[allow(dead_code)] -pub(crate) fn ready(val: T) -> Ready { - Ready { val: Some(val) } -} - -/// Create a future that is immediately ready with a success value. -#[allow(dead_code)] -pub(crate) fn ok(val: T) -> Ready> { - Ready { val: Some(Ok(val)) } -} - -/// Create a future that is immediately ready with an error value. -#[allow(dead_code)] -pub(crate) fn err(err: E) -> Ready> { - Ready { - val: Some(Err(err)), - } -} diff --git a/actix-service/src/then.rs b/actix-service/src/then.rs index 82b9dc94..09c14a07 100644 --- a/actix-service/src/then.rs +++ b/actix-service/src/then.rs @@ -241,15 +241,15 @@ mod tests { use alloc::rc::Rc; use core::{ cell::Cell, + future::{ready, Ready}, task::{Context, Poll}, }; use futures_util::future::lazy; use crate::{ - err, ok, pipeline::{pipeline, pipeline_factory}, - ready, Ready, Service, ServiceFactory, + Service, ServiceFactory, }; #[derive(Clone)] @@ -267,8 +267,8 @@ mod tests { fn call(&self, req: Result<&'static str, &'static str>) -> Self::Future { match req { - Ok(msg) => ok(msg), - Err(_) => err(()), + Ok(msg) => ready(Ok(msg)), + Err(_) => ready(Err(())), } } } @@ -287,8 +287,8 @@ mod tests { fn call(&self, req: Result<&'static str, ()>) -> Self::Future { match req { - Ok(msg) => ok((msg, "ok")), - Err(()) => ok(("srv2", "err")), + Ok(msg) => ready(Ok((msg, "ok"))), + Err(()) => ready(Ok(("srv2", "err"))), } } } diff --git a/actix-service/src/transform.rs b/actix-service/src/transform.rs index cffa3e61..98ad7a07 100644 --- a/actix-service/src/transform.rs +++ b/actix-service/src/transform.rs @@ -221,9 +221,10 @@ where #[cfg(test)] mod tests { - use core::time::Duration; - - use actix_utils::future::{ready, Ready}; + use core::{ + future::{ready, Ready}, + time::Duration, + }; use super::*; diff --git a/actix-tls/CHANGES.md b/actix-tls/CHANGES.md index 4ea54b2f..6b1bdbbe 100644 --- a/actix-tls/CHANGES.md +++ b/actix-tls/CHANGES.md @@ -3,6 +3,7 @@ ## Unreleased - Minimum supported Rust version (MSRV) is now 1.88. +- internal: Use `core::future::{ready, Ready}` instead of actix-utils' ## 3.5.0 diff --git a/actix-tls/src/accept/native_tls.rs b/actix-tls/src/accept/native_tls.rs index aad9c4c8..ceb58fac 100644 --- a/actix-tls/src/accept/native_tls.rs +++ b/actix-tls/src/accept/native_tls.rs @@ -2,6 +2,7 @@ //! //! See [`Acceptor`] for main service factory docs. +use core::future::{ready, Ready as FutReady}; use std::{ convert::Infallible, io::{self, IoSlice}, @@ -15,10 +16,7 @@ use actix_rt::{ time::timeout, }; use actix_service::{Service, ServiceFactory}; -use actix_utils::{ - counter::Counter, - future::{ready, Ready as FutReady}, -}; +use actix_utils::counter::Counter; use futures_core::future::LocalBoxFuture; use tokio::io::{AsyncRead, AsyncWrite, ReadBuf}; use tokio_native_tls::{native_tls::Error, TlsAcceptor}; diff --git a/actix-tls/src/accept/openssl.rs b/actix-tls/src/accept/openssl.rs index 81c207ee..4f595a65 100644 --- a/actix-tls/src/accept/openssl.rs +++ b/actix-tls/src/accept/openssl.rs @@ -2,6 +2,7 @@ //! //! See [`Acceptor`] for main service factory docs. +use core::future::{ready, Ready as FutReady}; use std::{ convert::Infallible, future::Future, @@ -16,10 +17,7 @@ use actix_rt::{ time::{sleep, Sleep}, }; use actix_service::{Service, ServiceFactory}; -use actix_utils::{ - counter::{Counter, CounterGuard}, - future::{ready, Ready as FutReady}, -}; +use actix_utils::counter::{Counter, CounterGuard}; use openssl::ssl::{Error, Ssl, SslAcceptor}; use pin_project_lite::pin_project; use tokio::io::{AsyncRead, AsyncWrite, ReadBuf}; diff --git a/actix-tls/src/accept/rustls_0_20.rs b/actix-tls/src/accept/rustls_0_20.rs index f8c9206c..b2d785c9 100644 --- a/actix-tls/src/accept/rustls_0_20.rs +++ b/actix-tls/src/accept/rustls_0_20.rs @@ -2,6 +2,7 @@ //! //! See [`Acceptor`] for main service factory docs. +use core::future::{ready, Ready as FutReady}; use std::{ convert::Infallible, future::Future, @@ -17,10 +18,7 @@ use actix_rt::{ time::{sleep, Sleep}, }; use actix_service::{Service, ServiceFactory}; -use actix_utils::{ - counter::{Counter, CounterGuard}, - future::{ready, Ready as FutReady}, -}; +use actix_utils::counter::{Counter, CounterGuard}; use pin_project_lite::pin_project; use tokio::io::{AsyncRead, AsyncWrite, ReadBuf}; use tokio_rustls::{Accept, TlsAcceptor}; diff --git a/actix-tls/src/accept/rustls_0_21.rs b/actix-tls/src/accept/rustls_0_21.rs index fcf6a693..0725fcdd 100644 --- a/actix-tls/src/accept/rustls_0_21.rs +++ b/actix-tls/src/accept/rustls_0_21.rs @@ -2,6 +2,7 @@ //! //! See [`Acceptor`] for main service factory docs. +use core::future::{ready, Ready as FutReady}; use std::{ convert::Infallible, future::Future, @@ -17,10 +18,7 @@ use actix_rt::{ time::{sleep, Sleep}, }; use actix_service::{Service, ServiceFactory}; -use actix_utils::{ - counter::{Counter, CounterGuard}, - future::{ready, Ready as FutReady}, -}; +use actix_utils::counter::{Counter, CounterGuard}; use pin_project_lite::pin_project; use tokio::io::{AsyncRead, AsyncWrite, ReadBuf}; use tokio_rustls::{Accept, TlsAcceptor}; diff --git a/actix-tls/src/accept/rustls_0_22.rs b/actix-tls/src/accept/rustls_0_22.rs index 46b4c03e..fd23ee68 100644 --- a/actix-tls/src/accept/rustls_0_22.rs +++ b/actix-tls/src/accept/rustls_0_22.rs @@ -2,6 +2,7 @@ //! //! See [`Acceptor`] for main service factory docs. +use core::future::{ready, Ready as FutReady}; use std::{ convert::Infallible, future::Future, @@ -17,10 +18,7 @@ use actix_rt::{ time::{sleep, Sleep}, }; use actix_service::{Service, ServiceFactory}; -use actix_utils::{ - counter::{Counter, CounterGuard}, - future::{ready, Ready as FutReady}, -}; +use actix_utils::counter::{Counter, CounterGuard}; use pin_project_lite::pin_project; use tokio::io::{AsyncRead, AsyncWrite, ReadBuf}; use tokio_rustls::{Accept, TlsAcceptor}; diff --git a/actix-tls/src/accept/rustls_0_23.rs b/actix-tls/src/accept/rustls_0_23.rs index 9d2025ba..26b87f86 100644 --- a/actix-tls/src/accept/rustls_0_23.rs +++ b/actix-tls/src/accept/rustls_0_23.rs @@ -2,6 +2,7 @@ //! //! See [`Acceptor`] for main service factory docs. +use core::future::{ready, Ready as FutReady}; use std::{ convert::Infallible, future::Future, @@ -17,10 +18,7 @@ use actix_rt::{ time::{sleep, Sleep}, }; use actix_service::{Service, ServiceFactory}; -use actix_utils::{ - counter::{Counter, CounterGuard}, - future::{ready, Ready as FutReady}, -}; +use actix_utils::counter::{Counter, CounterGuard}; use pin_project_lite::pin_project; use tokio::io::{AsyncRead, AsyncWrite, ReadBuf}; use tokio_rustls::{Accept, TlsAcceptor}; diff --git a/actix-tls/src/connect/connector.rs b/actix-tls/src/connect/connector.rs index a4276548..1009cbec 100644 --- a/actix-tls/src/connect/connector.rs +++ b/actix-tls/src/connect/connector.rs @@ -1,3 +1,4 @@ +use core::future::{ready, Ready}; use std::{ future::Future, pin::Pin, @@ -6,7 +7,6 @@ use std::{ use actix_rt::net::TcpStream; use actix_service::{Service, ServiceFactory}; -use actix_utils::future::{ok, Ready}; use futures_core::ready; use super::{ @@ -49,7 +49,7 @@ impl ServiceFactory> for Connector { type Future = Ready>; fn new_service(&self, _: ()) -> Self::Future { - ok(self.service()) + ready(Ok(self.service())) } } diff --git a/actix-tls/src/connect/native_tls.rs b/actix-tls/src/connect/native_tls.rs index 674de842..dbacd574 100644 --- a/actix-tls/src/connect/native_tls.rs +++ b/actix-tls/src/connect/native_tls.rs @@ -2,11 +2,11 @@ //! //! See [`TlsConnector`] for main connector service factory docs. +use core::future::{ready, Ready}; use std::io; use actix_rt::net::ActixStream; use actix_service::{Service, ServiceFactory}; -use actix_utils::future::{ok, Ready}; use futures_core::future::LocalBoxFuture; use tokio_native_tls::{ native_tls::TlsConnector as NativeTlsConnector, TlsConnector as AsyncNativeTlsConnector, @@ -51,7 +51,7 @@ where type Future = Ready>; fn new_service(&self, _: ()) -> Self::Future { - ok(self.clone()) + ready(Ok(self.clone())) } } diff --git a/actix-tls/src/connect/openssl.rs b/actix-tls/src/connect/openssl.rs index 0b17f9a2..3533f98b 100644 --- a/actix-tls/src/connect/openssl.rs +++ b/actix-tls/src/connect/openssl.rs @@ -2,6 +2,7 @@ //! //! See [`TlsConnector`] for main connector service factory docs. +use core::future::{ready, Ready}; use std::{ future::Future, io, @@ -11,7 +12,6 @@ use std::{ use actix_rt::net::ActixStream; use actix_service::{Service, ServiceFactory}; -use actix_utils::future::{ok, Ready}; use futures_core::ready; use openssl::ssl::SslConnector; use tokio_openssl::SslStream as AsyncSslStream; @@ -64,9 +64,9 @@ where type Future = Ready>; fn new_service(&self, _: ()) -> Self::Future { - ok(TlsConnectorService { + ready(Ok(TlsConnectorService { connector: self.connector.clone(), - }) + })) } } diff --git a/actix-tls/src/connect/resolver.rs b/actix-tls/src/connect/resolver.rs index 5ab5f475..e5d1b891 100644 --- a/actix-tls/src/connect/resolver.rs +++ b/actix-tls/src/connect/resolver.rs @@ -1,3 +1,4 @@ +use core::future::{ready, Ready}; use std::{ future::Future, io, @@ -10,7 +11,6 @@ use std::{ use actix_rt::task::{spawn_blocking, JoinHandle}; use actix_service::{Service, ServiceFactory}; -use actix_utils::future::{ok, Ready}; use futures_core::{future::LocalBoxFuture, ready}; use tracing::trace; @@ -45,7 +45,7 @@ impl ServiceFactory> for Resolver { type Future = Ready>; fn new_service(&self, _: ()) -> Self::Future { - ok(self.resolver.clone()) + ready(Ok(self.resolver.clone())) } } diff --git a/actix-tls/src/connect/rustls_0_20.rs b/actix-tls/src/connect/rustls_0_20.rs index 27d26292..9e19b754 100644 --- a/actix-tls/src/connect/rustls_0_20.rs +++ b/actix-tls/src/connect/rustls_0_20.rs @@ -2,6 +2,7 @@ //! //! See [`TlsConnector`] for main connector service factory docs. +use core::future::{ready, Ready}; use std::{ future::Future, io, @@ -12,7 +13,6 @@ use std::{ use actix_rt::net::ActixStream; use actix_service::{Service, ServiceFactory}; -use actix_utils::future::{ok, Ready}; use futures_core::ready; use tokio_rustls::{ client::TlsStream as AsyncTlsStream, @@ -100,9 +100,9 @@ where type Future = Ready>; fn new_service(&self, _: ()) -> Self::Future { - ok(TlsConnectorService { + ready(Ok(TlsConnectorService { connector: self.connector.clone(), - }) + })) } } diff --git a/actix-tls/src/connect/rustls_0_21.rs b/actix-tls/src/connect/rustls_0_21.rs index 071cb98e..58cbfc68 100644 --- a/actix-tls/src/connect/rustls_0_21.rs +++ b/actix-tls/src/connect/rustls_0_21.rs @@ -2,6 +2,7 @@ //! //! See [`TlsConnector`] for main connector service factory docs. +use core::future::{ready, Ready}; use std::{ future::Future, io, @@ -12,7 +13,6 @@ use std::{ use actix_rt::net::ActixStream; use actix_service::{Service, ServiceFactory}; -use actix_utils::future::{ok, Ready}; use futures_core::ready; use tokio_rustls::{ client::TlsStream as AsyncTlsStream, @@ -100,9 +100,9 @@ where type Future = Ready>; fn new_service(&self, _: ()) -> Self::Future { - ok(TlsConnectorService { + ready(Ok(TlsConnectorService { connector: self.connector.clone(), - }) + })) } } diff --git a/actix-tls/src/connect/rustls_0_22.rs b/actix-tls/src/connect/rustls_0_22.rs index de6c28e4..264258fe 100644 --- a/actix-tls/src/connect/rustls_0_22.rs +++ b/actix-tls/src/connect/rustls_0_22.rs @@ -2,6 +2,7 @@ //! //! See [`TlsConnector`] for main connector service factory docs. +use core::future::{ready, Ready}; use std::{ future::Future, io, @@ -12,7 +13,6 @@ use std::{ use actix_rt::net::ActixStream; use actix_service::{Service, ServiceFactory}; -use actix_utils::future::{ok, Ready}; use futures_core::ready; use rustls_pki_types_1::ServerName; use tokio_rustls::{ @@ -91,9 +91,9 @@ where type Future = Ready>; fn new_service(&self, _: ()) -> Self::Future { - ok(TlsConnectorService { + ready(Ok(TlsConnectorService { connector: self.connector.clone(), - }) + })) } } diff --git a/actix-tls/src/connect/rustls_0_23.rs b/actix-tls/src/connect/rustls_0_23.rs index da776468..c3727f98 100644 --- a/actix-tls/src/connect/rustls_0_23.rs +++ b/actix-tls/src/connect/rustls_0_23.rs @@ -2,6 +2,7 @@ //! //! See [`TlsConnector`] for main connector service factory docs. +use core::future::{ready, Ready}; use std::{ future::Future, io, @@ -12,7 +13,6 @@ use std::{ use actix_rt::net::ActixStream; use actix_service::{Service, ServiceFactory}; -use actix_utils::future::{ok, Ready}; use futures_core::ready; use rustls_pki_types_1::ServerName; use tokio_rustls::{ @@ -91,9 +91,9 @@ where type Future = Ready>; fn new_service(&self, _: ()) -> Self::Future { - ok(TlsConnectorService { + ready(Ok(TlsConnectorService { connector: self.connector.clone(), - }) + })) } } diff --git a/actix-tls/src/connect/tcp.rs b/actix-tls/src/connect/tcp.rs index b247e7f1..0aee74d4 100644 --- a/actix-tls/src/connect/tcp.rs +++ b/actix-tls/src/connect/tcp.rs @@ -2,6 +2,7 @@ //! //! See [`TcpConnector`] for main connector service factory docs. +use core::future::{ready, Ready}; use std::{ collections::VecDeque, future::Future, @@ -13,7 +14,6 @@ use std::{ use actix_rt::net::{TcpSocket, TcpStream}; use actix_service::{Service, ServiceFactory}; -use actix_utils::future::{ok, Ready}; use futures_core::ready; use tokio_util::sync::ReusableBoxFuture; use tracing::{error, trace}; @@ -41,7 +41,7 @@ impl ServiceFactory> for TcpConnector { type Future = Ready>; fn new_service(&self, _: ()) -> Self::Future { - ok(self.service()) + ready(Ok(self.service())) } } diff --git a/actix-tls/tests/accept-openssl.rs b/actix-tls/tests/accept-openssl.rs index ebac10d1..8fae2c48 100644 --- a/actix-tls/tests/accept-openssl.rs +++ b/actix-tls/tests/accept-openssl.rs @@ -7,6 +7,7 @@ feature = "openssl" ))] +use core::future::ready; use std::{io::Write as _, sync::Arc}; use actix_rt::net::TcpStream; @@ -16,7 +17,6 @@ use actix_tls::{ accept::openssl::{Acceptor, TlsStream}, connect::rustls_0_23::reexports::ClientConfig, }; -use actix_utils::future::ok; use rustls_pki_types_1::ServerName; use tokio_rustls_026::rustls::RootCertStore; @@ -127,7 +127,7 @@ async fn accepts_connections() { tls_acceptor .map_err(|err| println!("OpenSSL error: {err:?}")) - .and_then(move |_stream: TlsStream| ok(())) + .and_then(move |_stream: TlsStream| ready(Ok(()))) } }); diff --git a/actix-tls/tests/accept-rustls.rs b/actix-tls/tests/accept-rustls.rs index c556050e..e04542ff 100644 --- a/actix-tls/tests/accept-rustls.rs +++ b/actix-tls/tests/accept-rustls.rs @@ -9,6 +9,7 @@ extern crate tls_openssl as openssl; +use core::future::ready; use std::io::{BufReader, Write}; use actix_rt::net::TcpStream; @@ -18,7 +19,6 @@ use actix_tls::{ accept::rustls_0_23::{reexports::ServerConfig, Acceptor, TlsStream}, connect::openssl::reexports::SslConnector, }; -use actix_utils::future::ok; use rustls_pemfile::{certs, pkcs8_private_keys}; use rustls_pki_types_1::PrivateKeyDer; use tls_openssl::ssl::SslVerifyMode; @@ -88,7 +88,7 @@ async fn accepts_connections() { tls_acceptor .map_err(|err| println!("Rustls error: {err:?}")) - .and_then(move |_stream: TlsStream| ok(())) + .and_then(move |_stream: TlsStream| ready(Ok(()))) } }); diff --git a/actix-tracing/CHANGES.md b/actix-tracing/CHANGES.md index 2a9f6c6c..4e907181 100644 --- a/actix-tracing/CHANGES.md +++ b/actix-tracing/CHANGES.md @@ -3,6 +3,7 @@ ## Unreleased - Minimum supported Rust version (MSRV) is now 1.88. +- internal: Use `core::future::{ready, Ready}` instead of actix-utils' ## 0.1.0 diff --git a/actix-tracing/src/lib.rs b/actix-tracing/src/lib.rs index f110ccbe..d7b072a4 100644 --- a/actix-tracing/src/lib.rs +++ b/actix-tracing/src/lib.rs @@ -3,12 +3,15 @@ #![doc(html_logo_url = "https://actix.rs/img/logo.png")] #![doc(html_favicon_url = "https://actix.rs/favicon.ico")] -use core::marker::PhantomData; +use core::{ + future::{ready, Ready}, + marker::PhantomData, +}; use actix_service::{ apply, ApplyTransform, IntoServiceFactory, Service, ServiceFactory, Transform, }; -use actix_utils::future::{ok, Either, Ready}; +use actix_utils::future::Either; use tracing_futures::{Instrument, Instrumented}; /// A `Service` implementation that automatically enters/exits tracing spans @@ -84,7 +87,7 @@ where type Future = Ready>; fn new_transform(&self, service: S) -> Self::Future { - ok(TracingService::new(service, self.make_span.clone())) + ready(Ok(TracingService::new(service, self.make_span.clone()))) } } @@ -118,6 +121,7 @@ where #[cfg(test)] mod test { + use core::future::ready; use std::{ cell::RefCell, collections::{BTreeMap, BTreeSet}, @@ -221,10 +225,10 @@ mod test { #[actix_rt::test] async fn service_call() { let service_factory = fn_factory(|| { - ok::<_, ()>(fn_service(|req: &'static str| { + ready(Ok::<_, ()>(fn_service(|req: &'static str| { tracing::event!(Level::TRACE, "It's happening - {}!", req); - ok::<_, ()>(()) - })) + ready(Ok::<_, ()>(())) + }))) }); let subscriber = TestSubscriber::default(); diff --git a/actix-utils/CHANGES.md b/actix-utils/CHANGES.md index 42dea2f3..ca21abb8 100644 --- a/actix-utils/CHANGES.md +++ b/actix-utils/CHANGES.md @@ -3,6 +3,7 @@ ## Unreleased - Minimum supported Rust version (MSRV) is now 1.88. +- Deprecate `crate::ready::*` in favor of `core::future::{ready, Ready}` ## 3.0.1 diff --git a/actix-utils/src/future/either.rs b/actix-utils/src/future/either.rs index 78582954..018de24e 100644 --- a/actix-utils/src/future/either.rs +++ b/actix-utils/src/future/either.rs @@ -15,7 +15,8 @@ pin_project! { /// /// # Examples /// ``` - /// use actix_utils::future::{ready, Ready, Either}; + /// use actix_utils::future::Either; + /// use core::future::{ready, Ready}; /// /// # async fn run() { /// let res = Either::<_, Ready>::left(ready(42)); @@ -81,8 +82,9 @@ where #[cfg(test)] mod tests { + use core::future::{ready, Ready}; + use super::*; - use crate::future::{ready, Ready}; #[actix_rt::test] async fn test_either() { diff --git a/actix-utils/src/future/mod.rs b/actix-utils/src/future/mod.rs index ec87428d..d03ac061 100644 --- a/actix-utils/src/future/mod.rs +++ b/actix-utils/src/future/mod.rs @@ -4,8 +4,9 @@ mod either; mod poll_fn; mod ready; +#[allow(deprecated)] +pub use self::ready::{err, ok, ready, Ready}; pub use self::{ either::Either, poll_fn::{poll_fn, PollFn}, - ready::{err, ok, ready, Ready}, }; diff --git a/actix-utils/src/future/ready.rs b/actix-utils/src/future/ready.rs index 31eb6551..f8dfe22e 100644 --- a/actix-utils/src/future/ready.rs +++ b/actix-utils/src/future/ready.rs @@ -1,4 +1,6 @@ -//! When `core::future::Ready` has a `into_inner()` method, this can be deprecated. +//! Deprecated. Use `core::future::Ready` instead, it has the same functionality. + +#![allow(deprecated)] use core::{ future::Future, @@ -26,6 +28,7 @@ use core::{ /// ``` #[derive(Debug, Clone)] #[must_use = "futures do nothing unless you `.await` or poll them"] +#[deprecated(since = "3.0.2", note = "Use `core::future::Ready` instead.")] pub struct Ready { val: Option, } @@ -66,6 +69,7 @@ impl Future for Ready { /// assert_eq!(a.into_inner(), 1); /// ``` #[inline] +#[deprecated(since = "3.0.2", note = "Use `core::future::ready(val)` instead.")] pub fn ready(val: T) -> Ready { Ready { val: Some(val) } } @@ -82,6 +86,7 @@ pub fn ready(val: T) -> Ready { /// # } /// ``` #[inline] +#[deprecated(since = "3.0.2", note = "Use `core::future::ready(Ok(val))` instead.")] pub fn ok(val: T) -> Ready> { Ready { val: Some(Ok(val)) } } @@ -98,6 +103,7 @@ pub fn ok(val: T) -> Ready> { /// # } /// ``` #[inline] +#[deprecated(since = "3.0.2", note = "Use `core::future::ready(Err(err))` instead.")] pub fn err(err: E) -> Ready> { Ready { val: Some(Err(err)), @@ -105,6 +111,7 @@ pub fn err(err: E) -> Ready> { } #[cfg(test)] +#[allow(deprecated)] mod tests { use std::rc::Rc;