From 6792f799a6362ac5834a23774b1ba01341b4d066 Mon Sep 17 00:00:00 2001 From: Rob Ede Date: Sat, 12 Feb 2022 08:37:56 +0000 Subject: [PATCH 001/410] add minimal-versions check --- .github/workflows/ci-master.yml | 33 ++++++++++++++++++++++++++++++++- 1 file changed, 32 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci-master.yml b/.github/workflows/ci-master.yml index c9b5c0ab..2b060fbc 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,34 @@ 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: Check With Minimal Versions + uses: actions-rs/cargo@v1 + with: + command: minimal-versions + args: check From d229c1e886323d90e7c3a00e2b99d1c95dd759e0 Mon Sep 17 00:00:00 2001 From: Rob Ede Date: Sat, 12 Feb 2022 08:42:13 +0000 Subject: [PATCH 002/410] fix min ver check --- .github/workflows/ci-master.yml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/.github/workflows/ci-master.yml b/.github/workflows/ci-master.yml index 2b060fbc..3bca06ce 100644 --- a/.github/workflows/ci-master.yml +++ b/.github/workflows/ci-master.yml @@ -169,6 +169,12 @@ jobs: 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: From 217cbd2228bb80e6a1679951b825d645ae0ebf39 Mon Sep 17 00:00:00 2001 From: Rob Ede Date: Tue, 15 Feb 2022 01:47:27 +0000 Subject: [PATCH 003/410] bump tokio-util to 0.7 (#446) --- actix-codec/CHANGES.md | 6 ++++++ actix-codec/Cargo.toml | 6 +++--- actix-codec/src/lines.rs | 4 ++-- actix-server/Cargo.toml | 2 +- actix-tls/CHANGES.md | 4 ++++ actix-tls/Cargo.toml | 6 +++--- actix-tls/src/connect/tcp.rs | 2 +- 7 files changed, 20 insertions(+), 10 deletions(-) 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 ", "Rob Ede ", @@ -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 ", "Rob Ede ", @@ -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 { port: u16, local_addr: Option, addrs: Option>, - stream: ReusableBoxFuture>, + stream: ReusableBoxFuture<'static, Result>, }, Error(Option), From 2a54065faed5e736bb7c27955b1efd2ffdb632c1 Mon Sep 17 00:00:00 2001 From: Rob Ede Date: Tue, 15 Feb 2022 14:19:00 +0000 Subject: [PATCH 004/410] parallel master tests using nextest --- .github/workflows/ci-master.yml | 31 +++++++++++++++++++++++++++++++ .github/workflows/ci.yml | 10 ++++++++++ 2 files changed, 41 insertions(+) diff --git a/.github/workflows/ci-master.yml b/.github/workflows/ci-master.yml index 3bca06ce..45e5683a 100644 --- a/.github/workflows/ci-master.yml +++ b/.github/workflows/ci-master.yml @@ -180,3 +180,34 @@ jobs: 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" From 7804ed12ebe2b04861ecba792dc60299fc6ded6d Mon Sep 17 00:00:00 2001 From: fakeshadow <24548779@qq.com> Date: Wed, 2 Mar 2022 11:52:12 +0800 Subject: [PATCH 005/410] block and wait for accept thread to exit. (#443) Co-authored-by: Rob Ede --- actix-server/CHANGES.md | 3 +++ actix-server/src/accept.rs | 6 +++--- actix-server/src/server.rs | 15 +++++++++++++-- 3 files changed, 19 insertions(+), 5 deletions(-) diff --git a/actix-server/CHANGES.md b/actix-server/CHANGES.md index 14e5f4d7..daec4413 100644 --- a/actix-server/CHANGES.md +++ b/actix-server/CHANGES.md @@ -1,6 +1,9 @@ # Changes ## Unreleased - 2021-xx-xx +- Wait for accept thread to stop before sending completion signal. [#443] + +[#443]: https://github.com/actix/actix-net/pull/443 ## 2.0.0 - 2022-01-19 diff --git a/actix-server/src/accept.rs b/actix-server/src/accept.rs index 9f7872f8..a1c4f732 100644 --- a/actix-server/src/accept.rs +++ b/actix-server/src/accept.rs @@ -41,7 +41,7 @@ impl Accept { pub(crate) fn start( sockets: Vec<(usize, MioListener)>, builder: &ServerBuilder, - ) -> io::Result<(WakerQueue, Vec)> { + ) -> io::Result<(WakerQueue, Vec, thread::JoinHandle<()>)> { let handle_server = ServerHandle::new(builder.cmd_tx.clone()); // construct poll instance and its waker @@ -73,12 +73,12 @@ impl Accept { handle_server, )?; - thread::Builder::new() + let accept_handle = thread::Builder::new() .name("actix-server acceptor".to_owned()) .spawn(move || accept.poll_with(&mut sockets)) .map_err(|err| io::Error::new(io::ErrorKind::Other, err))?; - Ok((waker_queue, handles_server)) + Ok((waker_queue, handles_server, accept_handle)) } fn new_with_sockets( diff --git a/actix-server/src/server.rs b/actix-server/src/server.rs index fec3b06e..8defa543 100644 --- a/actix-server/src/server.rs +++ b/actix-server/src/server.rs @@ -3,6 +3,7 @@ use std::{ io, mem, pin::Pin, task::{Context, Poll}, + thread, time::Duration, }; @@ -158,6 +159,7 @@ impl Future for Server { pub struct ServerInner { worker_handles: Vec, + accept_handle: Option>, worker_config: ServerWorkerConfig, services: Vec>, waker_queue: WakerQueue, @@ -205,7 +207,7 @@ impl ServerInner { ); } - let (waker_queue, worker_handles) = Accept::start(sockets, &builder)?; + let (waker_queue, worker_handles, accept_handle) = Accept::start(sockets, &builder)?; let mux = ServerEventMultiplexer { signal_fut: (builder.listen_os_signals).then(Signals::new), @@ -214,6 +216,7 @@ impl ServerInner { let server = ServerInner { waker_queue, + accept_handle: Some(accept_handle), worker_handles, worker_config: builder.worker_config, services: builder.factories, @@ -243,7 +246,8 @@ impl ServerInner { } => { self.stopping = true; - // stop accept thread + // Signal accept thread to stop. + // Signal is non-blocking; we wait for thread to stop later. self.waker_queue.wake(WakerInterest::Stop); // send stop signal to workers @@ -258,6 +262,13 @@ impl ServerInner { let _ = join_all(workers_stop).await; } + // wait for accept thread stop + self.accept_handle + .take() + .unwrap() + .join() + .expect("Accept thread must not panic in any case"); + if let Some(tx) = completion { let _ = tx.send(()); } From 41ed48219d46049d0f024801e578b4b2d8762a86 Mon Sep 17 00:00:00 2001 From: Rob Ede Date: Wed, 2 Mar 2022 16:40:11 +0000 Subject: [PATCH 006/410] bump lower msrv to 1.49 --- .github/workflows/ci.yml | 8 ++++---- actix-codec/CHANGES.md | 3 ++- actix-macros/CHANGES.md | 3 ++- actix-rt/CHANGES.md | 3 ++- actix-server/CHANGES.md | 2 +- actix-service/CHANGES.md | 3 ++- actix-tls/CHANGES.md | 4 ++-- actix-tracing/CHANGES.md | 5 ++++- actix-utils/CHANGES.md | 3 ++- bytestring/CHANGES.md | 3 ++- local-channel/CHANGES.md | 3 ++- local-waker/CHANGES.md | 3 ++- 12 files changed, 27 insertions(+), 16 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index f37adc2e..fc82ab18 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -119,15 +119,15 @@ jobs: cargo-cache build_and_test_lower_msrv: - name: Linux / 1.46 (lower MSRV) + name: Linux / 1.49 (lower MSRV) runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - - name: Install 1.46.0 # MSRV for all but -server and -tls + - name: Install 1.49.0 # MSRV for all but -server and -tls uses: actions-rs/toolchain@v1 with: - toolchain: 1.46.0-x86_64-unknown-linux-gnu + toolchain: 1.49.0-x86_64-unknown-linux-gnu profile: minimal override: true @@ -149,7 +149,7 @@ jobs: - 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" + sudo bash -c "ulimit -Sl 512 && ulimit -Hl 512 && PATH=$PATH:/usr/share/rust/.cargo/bin && RUSTUP_TOOLCHAIN=1.49 cargo ci-test-lower-msrv" - name: Clear the cargo caches run: | diff --git a/actix-codec/CHANGES.md b/actix-codec/CHANGES.md index dfb2fc7a..4f093de5 100644 --- a/actix-codec/CHANGES.md +++ b/actix-codec/CHANGES.md @@ -1,6 +1,7 @@ # Changes -## Unreleased - 2021-xx-xx +## Unreleased - 2022-xx-xx +- Minimum supported Rust version (MSRV) is now 1.49. ## 0.5.0 - 2022-02-15 diff --git a/actix-macros/CHANGES.md b/actix-macros/CHANGES.md index c1b66088..accc52ce 100644 --- a/actix-macros/CHANGES.md +++ b/actix-macros/CHANGES.md @@ -1,6 +1,7 @@ # Changes -## Unreleased - 2021-xx-xx +## Unreleased - 2022-xx-xx +- Minimum supported Rust version (MSRV) is now 1.49. ## 0.2.3 - 2021-10-19 diff --git a/actix-rt/CHANGES.md b/actix-rt/CHANGES.md index 50371c14..80733537 100644 --- a/actix-rt/CHANGES.md +++ b/actix-rt/CHANGES.md @@ -1,6 +1,7 @@ # Changes -## Unreleased - 2021-xx-xx +## Unreleased - 2022-xx-xx +- Minimum supported Rust version (MSRV) is now 1.49. ## 2.6.0 - 2022-01-12 diff --git a/actix-server/CHANGES.md b/actix-server/CHANGES.md index daec4413..90b291c2 100644 --- a/actix-server/CHANGES.md +++ b/actix-server/CHANGES.md @@ -1,6 +1,6 @@ # Changes -## Unreleased - 2021-xx-xx +## Unreleased - 2022-xx-xx - Wait for accept thread to stop before sending completion signal. [#443] [#443]: https://github.com/actix/actix-net/pull/443 diff --git a/actix-service/CHANGES.md b/actix-service/CHANGES.md index 4e46148f..36c6fba5 100644 --- a/actix-service/CHANGES.md +++ b/actix-service/CHANGES.md @@ -1,6 +1,7 @@ # Changes -## Unreleased - 2021-xx-xx +## Unreleased - 2022-xx-xx +- Minimum supported Rust version (MSRV) is now 1.49. ## 2.0.2 - 2021-12-18 diff --git a/actix-tls/CHANGES.md b/actix-tls/CHANGES.md index c583b3f8..f6978fbe 100644 --- a/actix-tls/CHANGES.md +++ b/actix-tls/CHANGES.md @@ -1,6 +1,6 @@ # Changes -## Unreleased - 2021-xx-xx +## Unreleased - 2022-xx-xx ## 3.0.3 - 2022-02-15 @@ -132,7 +132,7 @@ [#273]: https://github.com/actix/actix-net/pull/273 -## 3.0.0-beta.2 - 2021-xx-xx +## 3.0.0-beta.2 - 2022-xx-xx - Depend on stable trust-dns packages. [#204] [#204]: https://github.com/actix/actix-net/pull/204 diff --git a/actix-tracing/CHANGES.md b/actix-tracing/CHANGES.md index 7bded322..aecc837c 100644 --- a/actix-tracing/CHANGES.md +++ b/actix-tracing/CHANGES.md @@ -1,5 +1,8 @@ # Changes -## [0.1.0] - 2020-01-15 +## Unreleased - 2022-xx-xx +- Minimum supported Rust version (MSRV) is now 1.49. + +## 0.1.0 - 2020-01-15 - Initial release diff --git a/actix-utils/CHANGES.md b/actix-utils/CHANGES.md index 8c86e646..6657000b 100644 --- a/actix-utils/CHANGES.md +++ b/actix-utils/CHANGES.md @@ -1,6 +1,7 @@ # Changes -## Unreleased - 2021-xx-xx +## Unreleased - 2022-xx-xx +- Minimum supported Rust version (MSRV) is now 1.49. ## 3.0.0 - 2021-04-16 diff --git a/bytestring/CHANGES.md b/bytestring/CHANGES.md index 707a6f4a..e5d8d41e 100644 --- a/bytestring/CHANGES.md +++ b/bytestring/CHANGES.md @@ -1,6 +1,7 @@ # Changes -## Unreleased - 2021-xx-xx +## Unreleased - 2022-xx-xx +- Minimum supported Rust version (MSRV) is now 1.49. ## 1.0.0 - 2020-12-31 diff --git a/local-channel/CHANGES.md b/local-channel/CHANGES.md index 7ee9ea23..35b26411 100644 --- a/local-channel/CHANGES.md +++ b/local-channel/CHANGES.md @@ -1,6 +1,7 @@ # Changes -## Unreleased - 2021-xx-xx +## Unreleased - 2022-xx-xx +- Minimum supported Rust version (MSRV) is now 1.49. ## 0.1.2 - 2021-04-01 diff --git a/local-waker/CHANGES.md b/local-waker/CHANGES.md index 0ca00359..0131bb87 100644 --- a/local-waker/CHANGES.md +++ b/local-waker/CHANGES.md @@ -1,6 +1,7 @@ # Changes -## Unreleased - 2021-xx-xx +## Unreleased - 2022-xx-xx +- Minimum supported Rust version (MSRV) is now 1.49. ## 0.1.2 - 2021-12-18 From bd9bda0504425955592cb7bf74aceff30616ad47 Mon Sep 17 00:00:00 2001 From: Rob Ede Date: Wed, 2 Mar 2022 16:42:53 +0000 Subject: [PATCH 007/410] fix readme msrv notes --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 639d6344..100311a2 100644 --- a/README.md +++ b/README.md @@ -13,8 +13,8 @@ See example folders for [`actix-server`](./actix-server/examples) and [`actix-tl ### MSRV -Most crates in this repo's have a Minimum Supported Rust Version (MSRV) of 1.46.0. Only `actix-tls` -and `actix-server` have MSRV of 1.52.0. +Most crates in this repo's have a Minimum Supported Rust Version (MSRV) of 1.49.0. Only `actix-tls` +and `actix-server` have MSRV of 1.54.0. ## License From ae5377fd6ee65af5af57f4f022facadad6c5e32c Mon Sep 17 00:00:00 2001 From: Rob Ede Date: Tue, 8 Mar 2022 21:12:46 +0000 Subject: [PATCH 008/410] update readme --- README.md | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 100311a2..0e122cc4 100644 --- a/README.md +++ b/README.md @@ -11,10 +11,9 @@ See example folders for [`actix-server`](./actix-server/examples) and [`actix-tls`](./actix-tls/examples). -### MSRV +## MSRV -Most crates in this repo's have a Minimum Supported Rust Version (MSRV) of 1.49.0. Only `actix-tls` -and `actix-server` have MSRV of 1.54.0. +Most crates in this repo's have a Minimum Supported Rust Version (MSRV) of 1.49.0. Only `actix-tls` and `actix-server` have MSRV of 1.54.0. As a policy, we permit MSRV increases in non-breaking releases. ## License From 77d4a69b2f2c5cd0b708054d5d646c4b22e03820 Mon Sep 17 00:00:00 2001 From: Rob Ede Date: Tue, 8 Mar 2022 21:57:02 +0000 Subject: [PATCH 009/410] update tokio-uring to 0.3 (#449) --- actix-rt/Cargo.toml | 2 +- actix-server/Cargo.toml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/actix-rt/Cargo.toml b/actix-rt/Cargo.toml index 406c1de5..3925b7b9 100644 --- a/actix-rt/Cargo.toml +++ b/actix-rt/Cargo.toml @@ -31,7 +31,7 @@ tokio = { version = "1.13.1", features = ["rt", "net", "parking_lot", "signal", # runtime for io-uring feature [target.'cfg(target_os = "linux")'.dependencies] -tokio-uring = { version = "0.2", optional = true } +tokio-uring = { version = "0.3", optional = true } [dev-dependencies] tokio = { version = "1.13.1", features = ["full"] } diff --git a/actix-server/Cargo.toml b/actix-server/Cargo.toml index 4a788a9b..a5781777 100755 --- a/actix-server/Cargo.toml +++ b/actix-server/Cargo.toml @@ -38,7 +38,7 @@ tokio = { version = "1.13.1", features = ["sync"] } # runtime for io-uring feature [target.'cfg(target_os = "linux")'.dependencies] -tokio-uring = { version = "0.2", optional = true } +tokio-uring = { version = "0.3", optional = true } [dev-dependencies] actix-codec = "0.5.0" From c5d6174cecbc3144a950e4adf0915b52630aa6b3 Mon Sep 17 00:00:00 2001 From: Rob Ede Date: Tue, 8 Mar 2022 22:13:55 +0000 Subject: [PATCH 010/410] add tracing support --- actix-server/Cargo.toml | 2 +- actix-server/examples/file-reader.rs | 6 +++--- actix-server/examples/tcp-echo.rs | 2 +- actix-server/src/accept.rs | 2 +- actix-server/src/builder.rs | 2 +- actix-server/src/server.rs | 2 +- actix-server/src/service.rs | 2 +- actix-server/src/signals.rs | 4 ++-- actix-server/src/worker.rs | 2 +- actix-server/tests/server.rs | 1 + 10 files changed, 13 insertions(+), 12 deletions(-) diff --git a/actix-server/Cargo.toml b/actix-server/Cargo.toml index a5781777..bf6a9efa 100755 --- a/actix-server/Cargo.toml +++ b/actix-server/Cargo.toml @@ -30,11 +30,11 @@ actix-utils = "3.0.0" futures-core = { version = "0.3.7", default-features = false, features = ["alloc"] } futures-util = { version = "0.3.7", default-features = false, features = ["alloc"] } -log = "0.4" mio = { version = "0.8", features = ["os-poll", "net"] } num_cpus = "1.13" socket2 = "0.4.2" tokio = { version = "1.13.1", features = ["sync"] } +tracing = { version = "0.1.30", features = ["log"] } # runtime for io-uring feature [target.'cfg(target_os = "linux")'.dependencies] diff --git a/actix-server/examples/file-reader.rs b/actix-server/examples/file-reader.rs index 3cc991d3..63f6529a 100644 --- a/actix-server/examples/file-reader.rs +++ b/actix-server/examples/file-reader.rs @@ -21,7 +21,7 @@ async fn run() -> io::Result<()> { env_logger::init_from_env(env_logger::Env::default().default_filter_or("info")); let addr = ("127.0.0.1", 8080); - log::info!("starting server on port: {}", &addr.0); + tracing::info!("starting server on port: {}", &addr.0); // Bind socket address and start worker(s). By default, the server uses the number of physical // CPU cores as the worker count. For this reason, the closure passed to bind needs to return @@ -52,7 +52,7 @@ async fn run() -> io::Result<()> { break; } Err(err) => { - log::error!("{}", err); + tracing::error!("{}", err); framed .send("File not found or not readable. Try again.") .await?; @@ -72,7 +72,7 @@ async fn run() -> io::Result<()> { // close connection after file has been copied to TCP stream Ok(()) }) - .map_err(|err| log::error!("Service Error: {:?}", err)) + .map_err(|err| tracing::error!("Service Error: {:?}", err)) })? .workers(2) .run() diff --git a/actix-server/examples/tcp-echo.rs b/actix-server/examples/tcp-echo.rs index da0b7053..0bf819c7 100644 --- a/actix-server/examples/tcp-echo.rs +++ b/actix-server/examples/tcp-echo.rs @@ -22,8 +22,8 @@ use actix_server::Server; use actix_service::{fn_service, ServiceFactoryExt as _}; use bytes::BytesMut; use futures_util::future::ok; -use log::{error, info}; use tokio::io::{AsyncReadExt as _, AsyncWriteExt as _}; +use tracing::{error, info}; async fn run() -> io::Result<()> { env_logger::init_from_env(env_logger::Env::default().default_filter_or("info")); diff --git a/actix-server/src/accept.rs b/actix-server/src/accept.rs index a1c4f732..a5c8225d 100644 --- a/actix-server/src/accept.rs +++ b/actix-server/src/accept.rs @@ -1,8 +1,8 @@ use std::{io, thread, time::Duration}; use actix_rt::time::Instant; -use log::{debug, error, info}; use mio::{Interest, Poll, Token as MioToken}; +use tracing::{debug, error, info}; use crate::{ availability::Availability, diff --git a/actix-server/src/builder.rs b/actix-server/src/builder.rs index c3bc0269..8660b4a9 100644 --- a/actix-server/src/builder.rs +++ b/actix-server/src/builder.rs @@ -1,8 +1,8 @@ use std::{io, time::Duration}; use actix_rt::net::TcpStream; -use log::{info, trace}; use tokio::sync::mpsc::{unbounded_channel, UnboundedReceiver, UnboundedSender}; +use tracing::{info, trace}; use crate::{ server::ServerCommand, diff --git a/actix-server/src/server.rs b/actix-server/src/server.rs index 8defa543..3e0d7733 100644 --- a/actix-server/src/server.rs +++ b/actix-server/src/server.rs @@ -10,8 +10,8 @@ use std::{ use actix_rt::{time::sleep, System}; use futures_core::{future::BoxFuture, Stream}; use futures_util::stream::StreamExt as _; -use log::{error, info}; use tokio::sync::{mpsc::UnboundedReceiver, oneshot}; +use tracing::{error, info}; use crate::{ accept::Accept, diff --git a/actix-server/src/service.rs b/actix-server/src/service.rs index 3a9aeee4..03ee72d5 100644 --- a/actix-server/src/service.rs +++ b/actix-server/src/service.rs @@ -7,7 +7,7 @@ use std::{ use actix_service::{Service, ServiceFactory as BaseServiceFactory}; use actix_utils::future::{ready, Ready}; use futures_core::future::LocalBoxFuture; -use log::error; +use tracing::error; use crate::{ socket::{FromStream, MioStream}, diff --git a/actix-server/src/signals.rs b/actix-server/src/signals.rs index d8cb84e3..91bd52cc 100644 --- a/actix-server/src/signals.rs +++ b/actix-server/src/signals.rs @@ -5,7 +5,7 @@ use std::{ task::{Context, Poll}, }; -use log::trace; +use tracing::trace; /// Types of process signals. // #[allow(dead_code)] @@ -69,7 +69,7 @@ impl Signals { unix::signal(*kind) .map(|tokio_sig| (*sig, tokio_sig)) .map_err(|e| { - log::error!( + tracing::error!( "Can not initialize stream handler for {:?} err: {}", sig, e diff --git a/actix-server/src/worker.rs b/actix-server/src/worker.rs index 2fef9a7b..b66ea4b9 100644 --- a/actix-server/src/worker.rs +++ b/actix-server/src/worker.rs @@ -17,11 +17,11 @@ use actix_rt::{ Arbiter, ArbiterHandle, System, }; use futures_core::{future::LocalBoxFuture, ready}; -use log::{error, info, trace}; use tokio::sync::{ mpsc::{unbounded_channel, UnboundedReceiver, UnboundedSender}, oneshot, }; +use tracing::{error, info, trace}; use crate::{ service::{BoxedServerService, InternalServiceFactory}, diff --git a/actix-server/tests/server.rs b/actix-server/tests/server.rs index 0a70402b..ec3155c9 100644 --- a/actix-server/tests/server.rs +++ b/actix-server/tests/server.rs @@ -254,6 +254,7 @@ async fn test_max_concurrent_connections() { h.join().unwrap().unwrap(); } +// TODO: race-y failures detected due to integer underflow when calling Counter::total #[actix_rt::test] async fn test_service_restart() { use std::task::{Context, Poll}; From 3e132d2bc67a9ca3a4cda02749ef606df194a70a Mon Sep 17 00:00:00 2001 From: Rob Ede Date: Tue, 8 Mar 2022 23:42:52 +0000 Subject: [PATCH 011/410] update tokio-uring to 0.3 (#448) --- actix-rt/CHANGES.md | 6 ++++++ actix-rt/Cargo.toml | 4 ++-- actix-rt/README.md | 4 ++-- actix-server/CHANGES.md | 6 ++++++ actix-server/Cargo.toml | 10 +++++----- actix-server/README.md | 4 ++-- actix-server/examples/file-reader.rs | 4 +++- actix-server/examples/tcp-echo.rs | 11 +++++------ 8 files changed, 31 insertions(+), 18 deletions(-) diff --git a/actix-rt/CHANGES.md b/actix-rt/CHANGES.md index 80733537..671b623a 100644 --- a/actix-rt/CHANGES.md +++ b/actix-rt/CHANGES.md @@ -1,8 +1,14 @@ # Changes ## Unreleased - 2022-xx-xx + + +## 2.7.0 - 2022-03-08 +- Update `tokio-uring` dependency to `0.3.0`. [#448] - Minimum supported Rust version (MSRV) is now 1.49. +[#448]: https://github.com/actix/actix-net/pull/448 + ## 2.6.0 - 2022-01-12 - Update `tokio-uring` dependency to `0.2.0`. [#436] diff --git a/actix-rt/Cargo.toml b/actix-rt/Cargo.toml index 3925b7b9..10eac079 100644 --- a/actix-rt/Cargo.toml +++ b/actix-rt/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "actix-rt" -version = "2.6.0" +version = "2.7.0" authors = [ "Nikolay Kim ", "Rob Ede ", @@ -29,7 +29,7 @@ actix-macros = { version = "0.2.3", optional = true } futures-core = { version = "0.3", default-features = false } tokio = { version = "1.13.1", features = ["rt", "net", "parking_lot", "signal", "sync", "time"] } -# runtime for io-uring feature +# runtime for `io-uring` feature [target.'cfg(target_os = "linux")'.dependencies] tokio-uring = { version = "0.3", optional = true } diff --git a/actix-rt/README.md b/actix-rt/README.md index 5e912032..e598f0b6 100644 --- a/actix-rt/README.md +++ b/actix-rt/README.md @@ -3,11 +3,11 @@ > Tokio-based single-threaded async runtime for the Actix ecosystem. [![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.6.0)](https://docs.rs/actix-rt/2.6.0) +[![Documentation](https://docs.rs/actix-rt/badge.svg?version=2.7.0)](https://docs.rs/actix-rt/2.7.0) [![Version](https://img.shields.io/badge/rustc-1.46+-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.6.0/status.svg)](https://deps.rs/crate/actix-rt/2.6.0) +[![dependency status](https://deps.rs/crate/actix-rt/2.7.0/status.svg)](https://deps.rs/crate/actix-rt/2.7.0) ![Download](https://img.shields.io/crates/d/actix-rt.svg) [![Chat on Discord](https://img.shields.io/discord/771444961383153695?label=chat&logo=discord)](https://discord.gg/WghFtEH6Hb) diff --git a/actix-server/CHANGES.md b/actix-server/CHANGES.md index 90b291c2..c0e7fa40 100644 --- a/actix-server/CHANGES.md +++ b/actix-server/CHANGES.md @@ -1,9 +1,15 @@ # Changes ## Unreleased - 2022-xx-xx + + +## 2.1.0 - 2022-03-08 +- Update `tokio-uring` dependency to `0.3.0`. [#448] +- Logs emitted now use the `tracing` crate with `log` compatibility. [#448] - Wait for accept thread to stop before sending completion signal. [#443] [#443]: https://github.com/actix/actix-net/pull/443 +[#448]: https://github.com/actix/actix-net/pull/448 ## 2.0.0 - 2022-01-19 diff --git a/actix-server/Cargo.toml b/actix-server/Cargo.toml index bf6a9efa..c165e798 100755 --- a/actix-server/Cargo.toml +++ b/actix-server/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "actix-server" -version = "2.0.0" +version = "2.1.0" authors = [ "Nikolay Kim ", "fakeshadow <24548779@qq.com>", @@ -24,9 +24,9 @@ default = [] io-uring = ["tokio-uring", "actix-rt/io-uring"] [dependencies] -actix-rt = { version = "2.6.0", default-features = false } -actix-service = "2.0.0" -actix-utils = "3.0.0" +actix-rt = { version = "2.7", default-features = false } +actix-service = "2" +actix-utils = "3" futures-core = { version = "0.3.7", default-features = false, features = ["alloc"] } futures-util = { version = "0.3.7", default-features = false, features = ["alloc"] } @@ -36,7 +36,7 @@ socket2 = "0.4.2" tokio = { version = "1.13.1", features = ["sync"] } tracing = { version = "0.1.30", features = ["log"] } -# runtime for io-uring feature +# runtime for `io-uring` feature [target.'cfg(target_os = "linux")'.dependencies] tokio-uring = { version = "0.3", optional = true } diff --git a/actix-server/README.md b/actix-server/README.md index e4ef95b1..632c194f 100644 --- a/actix-server/README.md +++ b/actix-server/README.md @@ -3,10 +3,10 @@ > General purpose TCP server built for the Actix ecosystem. [![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.0.0)](https://docs.rs/actix-server/2.0.0) +[![Documentation](https://docs.rs/actix-server/badge.svg?version=2.1.0)](https://docs.rs/actix-server/2.1.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) ![License](https://img.shields.io/crates/l/actix-server.svg) -[![Dependency Status](https://deps.rs/crate/actix-server/2.0.0/status.svg)](https://deps.rs/crate/actix-server/2.0.0) +[![Dependency Status](https://deps.rs/crate/actix-server/2.1.0/status.svg)](https://deps.rs/crate/actix-server/2.1.0) ![Download](https://img.shields.io/crates/d/actix-server.svg) [![Chat on Discord](https://img.shields.io/discord/771444961383153695?label=chat&logo=discord)](https://discord.gg/NWpN5mmg3x) diff --git a/actix-server/examples/file-reader.rs b/actix-server/examples/file-reader.rs index 63f6529a..81b7373a 100644 --- a/actix-server/examples/file-reader.rs +++ b/actix-server/examples/file-reader.rs @@ -39,8 +39,10 @@ async fn run() -> io::Result<()> { // wait for next line match framed.next().await { Some(Ok(line)) => { - match File::open(line).await { + match File::open(&line).await { Ok(mut file) => { + tracing::info!("reading file: {}", &line); + // read file into String buffer let mut buf = String::new(); file.read_to_string(&mut buf).await?; diff --git a/actix-server/examples/tcp-echo.rs b/actix-server/examples/tcp-echo.rs index 0bf819c7..0ae82cc3 100644 --- a/actix-server/examples/tcp-echo.rs +++ b/actix-server/examples/tcp-echo.rs @@ -23,7 +23,6 @@ use actix_service::{fn_service, ServiceFactoryExt as _}; use bytes::BytesMut; use futures_util::future::ok; use tokio::io::{AsyncReadExt as _, AsyncWriteExt as _}; -use tracing::{error, info}; async fn run() -> io::Result<()> { env_logger::init_from_env(env_logger::Env::default().default_filter_or("info")); @@ -31,7 +30,7 @@ async fn run() -> io::Result<()> { let count = Arc::new(AtomicUsize::new(0)); let addr = ("127.0.0.1", 8080); - info!("starting server on port: {}", &addr.0); + tracing::info!("starting server on port: {}", &addr.0); // Bind socket address and start worker(s). By default, the server uses the number of physical // CPU cores as the worker count. For this reason, the closure passed to bind needs to return @@ -58,14 +57,14 @@ async fn run() -> io::Result<()> { // more bytes to process Ok(bytes_read) => { - info!("[{}] read {} bytes", num, bytes_read); + tracing::info!("[{}] read {} bytes", num, bytes_read); stream.write_all(&buf[size..]).await.unwrap(); size += bytes_read; } // stream error; bail from loop with error Err(err) => { - error!("Stream Error: {:?}", err); + tracing::error!("Stream Error: {:?}", err); return Err(()); } } @@ -75,10 +74,10 @@ async fn run() -> io::Result<()> { Ok((buf.freeze(), size)) } }) - .map_err(|err| error!("Service Error: {:?}", err)) + .map_err(|err| tracing::error!("Service Error: {:?}", err)) .and_then(move |(_, size)| { let num = num2.load(Ordering::SeqCst); - info!("[{}] total bytes read: {}", num, size); + tracing::info!("[{}] total bytes read: {}", num, size); ok(size) }) })? From 4b6a581ef365a8b321847d0be52395b0a30842f3 Mon Sep 17 00:00:00 2001 From: Rob Ede Date: Wed, 9 Mar 2022 01:08:35 +0000 Subject: [PATCH 012/410] prepare actix-server release 2.1.1 --- actix-server/CHANGES.md | 4 ++++ actix-server/Cargo.toml | 4 ++-- actix-server/README.md | 4 ++-- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/actix-server/CHANGES.md b/actix-server/CHANGES.md index c0e7fa40..f8e29d33 100644 --- a/actix-server/CHANGES.md +++ b/actix-server/CHANGES.md @@ -3,6 +3,10 @@ ## Unreleased - 2022-xx-xx +## 2.1.1 - 2022-03-09 +- No significant changes since `2.1.0`. + + ## 2.1.0 - 2022-03-08 - Update `tokio-uring` dependency to `0.3.0`. [#448] - Logs emitted now use the `tracing` crate with `log` compatibility. [#448] diff --git a/actix-server/Cargo.toml b/actix-server/Cargo.toml index c165e798..be4a81b6 100755 --- a/actix-server/Cargo.toml +++ b/actix-server/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "actix-server" -version = "2.1.0" +version = "2.1.1" authors = [ "Nikolay Kim ", "fakeshadow <24548779@qq.com>", @@ -34,7 +34,7 @@ mio = { version = "0.8", features = ["os-poll", "net"] } num_cpus = "1.13" socket2 = "0.4.2" tokio = { version = "1.13.1", features = ["sync"] } -tracing = { version = "0.1.30", features = ["log"] } +tracing = { version = "0.1.30", default-features = false, features = ["log"] } # runtime for `io-uring` feature [target.'cfg(target_os = "linux")'.dependencies] diff --git a/actix-server/README.md b/actix-server/README.md index 632c194f..8fdef1f5 100644 --- a/actix-server/README.md +++ b/actix-server/README.md @@ -3,10 +3,10 @@ > General purpose TCP server built for the Actix ecosystem. [![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.1.0)](https://docs.rs/actix-server/2.1.0) +[![Documentation](https://docs.rs/actix-server/badge.svg?version=2.1.1)](https://docs.rs/actix-server/2.1.1) [![Version](https://img.shields.io/badge/rustc-1.52+-ab6000.svg)](https://blog.rust-lang.org/2021/05/06/Rust-1.52.0.html) ![License](https://img.shields.io/crates/l/actix-server.svg) -[![Dependency Status](https://deps.rs/crate/actix-server/2.1.0/status.svg)](https://deps.rs/crate/actix-server/2.1.0) +[![Dependency Status](https://deps.rs/crate/actix-server/2.1.1/status.svg)](https://deps.rs/crate/actix-server/2.1.1) ![Download](https://img.shields.io/crates/d/actix-server.svg) [![Chat on Discord](https://img.shields.io/discord/771444961383153695?label=chat&logo=discord)](https://discord.gg/NWpN5mmg3x) From 0cd70b053609ba5483a89d38fd45ef73e138bec2 Mon Sep 17 00:00:00 2001 From: Rob Ede Date: Tue, 15 Mar 2022 19:37:08 +0000 Subject: [PATCH 013/410] use tracing for logs (#451) --- actix-codec/CHANGES.md | 3 +++ actix-codec/Cargo.toml | 2 +- actix-codec/src/framed.rs | 10 +++++----- actix-tls/CHANGES.md | 3 +++ actix-tls/Cargo.toml | 2 +- actix-tls/examples/accept-rustls.rs | 2 +- actix-tls/src/connect/native_tls.rs | 2 +- actix-tls/src/connect/openssl.rs | 2 +- actix-tls/src/connect/resolver.rs | 2 +- actix-tls/src/connect/rustls.rs | 2 +- actix-tls/src/connect/tcp.rs | 2 +- 11 files changed, 19 insertions(+), 13 deletions(-) diff --git a/actix-codec/CHANGES.md b/actix-codec/CHANGES.md index 4f093de5..993e0dd0 100644 --- a/actix-codec/CHANGES.md +++ b/actix-codec/CHANGES.md @@ -1,8 +1,11 @@ # Changes ## Unreleased - 2022-xx-xx +- Logs emitted now use the `tracing` crate with `log` compatibility. [#451] - Minimum supported Rust version (MSRV) is now 1.49. +[#451]: https://github.com/actix/actix-net/pull/451 + ## 0.5.0 - 2022-02-15 - Updated `tokio-util` dependency to `0.7.0`. [#446] diff --git a/actix-codec/Cargo.toml b/actix-codec/Cargo.toml index abd45f34..f1f58860 100644 --- a/actix-codec/Cargo.toml +++ b/actix-codec/Cargo.toml @@ -21,11 +21,11 @@ bitflags = "1.2" bytes = "1" futures-core = { version = "0.3.7", default-features = false } futures-sink = { version = "0.3.7", default-features = false } -log = "0.4" memchr = "2.3" pin-project-lite = "0.2" tokio = "1.13.1" tokio-util = { version = "0.7", features = ["codec", "io"] } +tracing = { version = "0.1.30", default-features = false, features = ["log"] } [dev-dependencies] criterion = { version = "0.3", features = ["html_reports"] } diff --git a/actix-codec/src/framed.rs b/actix-codec/src/framed.rs index 73dca006..c03ea02d 100644 --- a/actix-codec/src/framed.rs +++ b/actix-codec/src/framed.rs @@ -197,11 +197,11 @@ impl Framed { } } - log::trace!("attempting to decode a frame"); + tracing::trace!("attempting to decode a frame"); match this.codec.decode(this.read_buf) { Ok(Some(frame)) => { - log::trace!("frame decoded from buffer"); + tracing::trace!("frame decoded from buffer"); return Poll::Ready(Some(Ok(frame))); } Err(err) => return Poll::Ready(Some(Err(err))), @@ -242,10 +242,10 @@ impl Framed { U: Encoder, { let mut this = self.as_mut().project(); - log::trace!("flushing framed transport"); + tracing::trace!("flushing framed transport"); while !this.write_buf.is_empty() { - log::trace!("writing; remaining={}", this.write_buf.len()); + tracing::trace!("writing; remaining={}", this.write_buf.len()); let n = ready!(this.io.as_mut().poll_write(cx, this.write_buf))?; @@ -264,7 +264,7 @@ impl Framed { // Try flushing the underlying IO ready!(this.io.poll_flush(cx))?; - log::trace!("framed transport flushed"); + tracing::trace!("framed transport flushed"); Poll::Ready(Ok(())) } diff --git a/actix-tls/CHANGES.md b/actix-tls/CHANGES.md index f6978fbe..3915141c 100644 --- a/actix-tls/CHANGES.md +++ b/actix-tls/CHANGES.md @@ -1,6 +1,9 @@ # Changes ## Unreleased - 2022-xx-xx +- Logs emitted now use the `tracing` crate with `log` compatibility. [#451] + +[#451]: https://github.com/actix/actix-net/pull/451 ## 3.0.3 - 2022-02-15 diff --git a/actix-tls/Cargo.toml b/actix-tls/Cargo.toml index b78c0e8b..43de2bff 100755 --- a/actix-tls/Cargo.toml +++ b/actix-tls/Cargo.toml @@ -48,9 +48,9 @@ actix-service = "2.0.0" 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 = "0.7" +tracing = { version = "0.1.30", default-features = false, features = ["log"] } # uri http = { version = "0.2.3", optional = true } diff --git a/actix-tls/examples/accept-rustls.rs b/actix-tls/examples/accept-rustls.rs index a0550495..0ea1e7e1 100644 --- a/actix-tls/examples/accept-rustls.rs +++ b/actix-tls/examples/accept-rustls.rs @@ -34,9 +34,9 @@ use actix_server::Server; use actix_service::ServiceFactoryExt as _; use actix_tls::accept::rustls::{Acceptor as RustlsAcceptor, TlsStream}; use futures_util::future::ok; -use log::info; use rustls::{server::ServerConfig, Certificate, PrivateKey}; use rustls_pemfile::{certs, rsa_private_keys}; +use tracing::info; #[actix_rt::main] async fn main() -> io::Result<()> { diff --git a/actix-tls/src/connect/native_tls.rs b/actix-tls/src/connect/native_tls.rs index 49222228..74a24c22 100644 --- a/actix-tls/src/connect/native_tls.rs +++ b/actix-tls/src/connect/native_tls.rs @@ -8,11 +8,11 @@ use actix_rt::net::ActixStream; use actix_service::{Service, ServiceFactory}; use actix_utils::future::{ok, Ready}; use futures_core::future::LocalBoxFuture; -use log::trace; use tokio_native_tls::{ native_tls::TlsConnector as NativeTlsConnector, TlsConnector as AsyncNativeTlsConnector, TlsStream as AsyncTlsStream, }; +use tracing::trace; use crate::connect::{Connection, Host}; diff --git a/actix-tls/src/connect/openssl.rs b/actix-tls/src/connect/openssl.rs index 5739f6bc..5558baed 100644 --- a/actix-tls/src/connect/openssl.rs +++ b/actix-tls/src/connect/openssl.rs @@ -13,9 +13,9 @@ use actix_rt::net::ActixStream; use actix_service::{Service, ServiceFactory}; use actix_utils::future::{ok, Ready}; use futures_core::ready; -use log::trace; use openssl::ssl::SslConnector; use tokio_openssl::SslStream as AsyncSslStream; +use tracing::trace; use crate::connect::{Connection, Host}; diff --git a/actix-tls/src/connect/resolver.rs b/actix-tls/src/connect/resolver.rs index 245f919c..5ab5f475 100644 --- a/actix-tls/src/connect/resolver.rs +++ b/actix-tls/src/connect/resolver.rs @@ -12,7 +12,7 @@ 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 log::trace; +use tracing::trace; use super::{ConnectError, ConnectInfo, Host, Resolve}; diff --git a/actix-tls/src/connect/rustls.rs b/actix-tls/src/connect/rustls.rs index 641ddd23..8d74fd8a 100644 --- a/actix-tls/src/connect/rustls.rs +++ b/actix-tls/src/connect/rustls.rs @@ -15,10 +15,10 @@ use actix_rt::net::ActixStream; use actix_service::{Service, ServiceFactory}; use actix_utils::future::{ok, Ready}; use futures_core::ready; -use log::trace; use tokio_rustls::rustls::{client::ServerName, OwnedTrustAnchor, RootCertStore}; use tokio_rustls::{client::TlsStream as AsyncTlsStream, rustls::ClientConfig}; use tokio_rustls::{Connect as RustlsConnect, TlsConnector as RustlsTlsConnector}; +use tracing::trace; use webpki_roots::TLS_SERVER_ROOTS; use crate::connect::{Connection, Host}; diff --git a/actix-tls/src/connect/tcp.rs b/actix-tls/src/connect/tcp.rs index e2bc749a..b102620c 100644 --- a/actix-tls/src/connect/tcp.rs +++ b/actix-tls/src/connect/tcp.rs @@ -15,8 +15,8 @@ use actix_rt::net::{TcpSocket, TcpStream}; use actix_service::{Service, ServiceFactory}; use actix_utils::future::{ok, Ready}; use futures_core::ready; -use log::{error, trace}; use tokio_util::sync::ReusableBoxFuture; +use tracing::{error, trace}; use super::{connect_addrs::ConnectAddrs, error::ConnectError, ConnectInfo, Connection, Host}; From 737b438f737c4cb539b654e31a8869b5085d3943 Mon Sep 17 00:00:00 2001 From: Rob Ede Date: Tue, 15 Mar 2022 19:43:06 +0000 Subject: [PATCH 014/410] prepare actix-codec release 0.5.1 --- actix-codec/CHANGES.md | 3 +++ actix-codec/Cargo.toml | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/actix-codec/CHANGES.md b/actix-codec/CHANGES.md index 993e0dd0..c721762d 100644 --- a/actix-codec/CHANGES.md +++ b/actix-codec/CHANGES.md @@ -1,6 +1,9 @@ # Changes ## Unreleased - 2022-xx-xx + + +## 0.5.1 - 2022-03-15 - Logs emitted now use the `tracing` crate with `log` compatibility. [#451] - Minimum supported Rust version (MSRV) is now 1.49. diff --git a/actix-codec/Cargo.toml b/actix-codec/Cargo.toml index f1f58860..fbefebe0 100644 --- a/actix-codec/Cargo.toml +++ b/actix-codec/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "actix-codec" -version = "0.5.0" +version = "0.5.1" authors = [ "Nikolay Kim ", "Rob Ede ", From 855e3f96fe250d1cbba6acd49bdd6a4519c810b8 Mon Sep 17 00:00:00 2001 From: Rob Ede Date: Tue, 15 Mar 2022 19:43:47 +0000 Subject: [PATCH 015/410] prepare actix-tls release 3.0.4 --- actix-tls/CHANGES.md | 3 +++ actix-tls/Cargo.toml | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/actix-tls/CHANGES.md b/actix-tls/CHANGES.md index 3915141c..cf36d96c 100644 --- a/actix-tls/CHANGES.md +++ b/actix-tls/CHANGES.md @@ -1,6 +1,9 @@ # Changes ## Unreleased - 2022-xx-xx + + +## 3.0.4 - 2022-03-15 - Logs emitted now use the `tracing` crate with `log` compatibility. [#451] [#451]: https://github.com/actix/actix-net/pull/451 diff --git a/actix-tls/Cargo.toml b/actix-tls/Cargo.toml index 43de2bff..5a8f2a6d 100755 --- a/actix-tls/Cargo.toml +++ b/actix-tls/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "actix-tls" -version = "3.0.3" +version = "3.0.4" authors = [ "Nikolay Kim ", "Rob Ede ", From dc67ba770d1600fb4492e32565c8a414fc403245 Mon Sep 17 00:00:00 2001 From: Rob Ede Date: Sun, 10 Apr 2022 02:48:53 +0100 Subject: [PATCH 016/410] fmt with import grouping --- actix-codec/src/lib.rs | 8 ++++---- actix-codec/tests/test_framed_sink.rs | 18 +++++++++++------- actix-rt/examples/hyper.rs | 10 ++++++---- actix-rt/src/lib.rs | 9 +++------ actix-rt/tests/tests.rs | 1 - actix-server/src/join_all.rs | 4 ++-- actix-server/src/lib.rs | 3 +-- actix-server/src/socket.rs | 1 - actix-service/src/fn_service.rs | 3 ++- actix-service/src/lib.rs | 3 +-- actix-tls/examples/accept-rustls.rs | 5 +++-- actix-tls/src/connect/native_tls.rs | 1 - actix-tls/src/connect/openssl.rs | 1 - actix-tls/src/connect/rustls.rs | 4 +--- actix-tls/tests/accept-openssl.rs | 4 ++-- actix-tls/tests/test_connect.rs | 3 +-- actix-tls/tests/test_resolvers.rs | 3 +-- actix-tracing/src/lib.rs | 4 ++-- bytestring/src/lib.rs | 4 ++-- rustfmt.toml | 2 +- 20 files changed, 43 insertions(+), 48 deletions(-) diff --git a/actix-codec/src/lib.rs b/actix-codec/src/lib.rs index 6914b306..db1f90de 100644 --- a/actix-codec/src/lib.rs +++ b/actix-codec/src/lib.rs @@ -16,10 +16,10 @@ mod bcodec; mod framed; mod lines; -pub use self::bcodec::BytesCodec; -pub use self::framed::{Framed, FramedParts}; -pub use self::lines::LinesCodec; - pub use tokio::io::{AsyncRead, AsyncWrite, ReadBuf}; pub use tokio_util::codec::{Decoder, Encoder}; pub use tokio_util::io::poll_read_buf; + +pub use self::bcodec::BytesCodec; +pub use self::framed::{Framed, FramedParts}; +pub use self::lines::LinesCodec; diff --git a/actix-codec/tests/test_framed_sink.rs b/actix-codec/tests/test_framed_sink.rs index 15c3c292..390aebf2 100644 --- a/actix-codec/tests/test_framed_sink.rs +++ b/actix-codec/tests/test_framed_sink.rs @@ -1,12 +1,16 @@ +use std::{ + collections::VecDeque, + io::{self, Write}, + pin::Pin, + task::{ + Context, + Poll::{self, Pending, Ready}, + }, +}; + use actix_codec::*; -use bytes::Buf; -use bytes::{BufMut, BytesMut}; +use bytes::{Buf as _, BufMut as _, BytesMut}; use futures_sink::Sink; -use std::collections::VecDeque; -use std::io::{self, Write}; -use std::pin::Pin; -use std::task::Poll::{Pending, Ready}; -use std::task::{Context, Poll}; use tokio_test::{assert_ready, task}; macro_rules! bilateral { diff --git a/actix-rt/examples/hyper.rs b/actix-rt/examples/hyper.rs index 3520acd0..45b5e551 100644 --- a/actix-rt/examples/hyper.rs +++ b/actix-rt/examples/hyper.rs @@ -1,7 +1,9 @@ -use hyper::service::{make_service_fn, service_fn}; -use hyper::{Body, Request, Response, Server}; -use std::convert::Infallible; -use std::net::SocketAddr; +use std::{convert::Infallible, net::SocketAddr}; + +use hyper::{ + service::{make_service_fn, service_fn}, + Body, Request, Response, Server, +}; async fn handle(_req: Request) -> Result, Infallible> { Ok(Response::new(Body::from("Hello World"))) diff --git a/actix-rt/src/lib.rs b/actix-rt/src/lib.rs index 7fb2b632..b2d5f893 100644 --- a/actix-rt/src/lib.rs +++ b/actix-rt/src/lib.rs @@ -51,13 +51,10 @@ compile_error!("io_uring is a linux only feature."); use std::future::Future; -use tokio::task::JoinHandle; - // Cannot define a main macro when compiled into test harness. // Workaround for https://github.com/rust-lang/rust/issues/62127. #[cfg(all(feature = "macros", not(test)))] pub use actix_macros::main; - #[cfg(feature = "macros")] pub use actix_macros::test; @@ -65,12 +62,13 @@ mod arbiter; mod runtime; mod system; +pub use tokio::pin; +use tokio::task::JoinHandle; + pub use self::arbiter::{Arbiter, ArbiterHandle}; pub use self::runtime::Runtime; pub use self::system::{System, SystemRunner}; -pub use tokio::pin; - pub mod signal { //! Asynchronous signal handling (Tokio re-exports). @@ -95,7 +93,6 @@ pub mod net { use tokio::io::{AsyncRead, AsyncWrite, Interest}; pub use tokio::net::UdpSocket; pub use tokio::net::{TcpListener, TcpSocket, TcpStream}; - #[cfg(unix)] pub use tokio::net::{UnixDatagram, UnixListener, UnixStream}; diff --git a/actix-rt/tests/tests.rs b/actix-rt/tests/tests.rs index 551a395d..be7c3248 100644 --- a/actix-rt/tests/tests.rs +++ b/actix-rt/tests/tests.rs @@ -4,7 +4,6 @@ use std::{ }; use actix_rt::{task::JoinError, Arbiter, System}; - #[cfg(not(feature = "io-uring"))] use { std::{sync::mpsc::channel, thread}, diff --git a/actix-server/src/join_all.rs b/actix-server/src/join_all.rs index bdef62ef..e9bd8949 100644 --- a/actix-server/src/join_all.rs +++ b/actix-server/src/join_all.rs @@ -63,10 +63,10 @@ impl Future for JoinAll { #[cfg(test)] mod test { - use super::*; - use actix_utils::future::ready; + use super::*; + #[actix_rt::test] async fn test_join_all() { let futs = vec![ready(Ok(1)), ready(Err(3)), ready(Ok(9))]; diff --git a/actix-server/src/lib.rs b/actix-server/src/lib.rs index 9bbb33a0..532313b6 100644 --- a/actix-server/src/lib.rs +++ b/actix-server/src/lib.rs @@ -22,10 +22,9 @@ pub use self::builder::ServerBuilder; pub use self::handle::ServerHandle; pub use self::server::Server; pub use self::service::ServerServiceFactory; -pub use self::test_server::TestServer; - #[doc(hidden)] pub use self::socket::FromStream; +pub use self::test_server::TestServer; /// Start server building process #[doc(hidden)] diff --git a/actix-server/src/socket.rs b/actix-server/src/socket.rs index 25291fd2..8d2ffe8f 100644 --- a/actix-server/src/socket.rs +++ b/actix-server/src/socket.rs @@ -6,7 +6,6 @@ use std::{fmt, io}; use actix_rt::net::TcpStream; pub(crate) use mio::net::TcpListener as MioTcpListener; use mio::{event::Source, Interest, Registry, Token}; - #[cfg(unix)] pub(crate) use { mio::net::UnixListener as MioUnixListener, diff --git a/actix-service/src/fn_service.rs b/actix-service/src/fn_service.rs index ae22e39b..a2379270 100644 --- a/actix-service/src/fn_service.rs +++ b/actix-service/src/fn_service.rs @@ -394,9 +394,10 @@ mod tests { #[actix_rt::test] async fn test_auto_impl_send() { - use crate::{map_config, ServiceExt, ServiceFactoryExt}; use alloc::rc::Rc; + use crate::{map_config, ServiceExt, ServiceFactoryExt}; + let srv_1 = fn_service(|_: Rc| ok::<_, Rc>(Rc::new(0u8))); let fac_1 = fn_factory_with_config(|_: Rc| { diff --git a/actix-service/src/lib.rs b/actix-service/src/lib.rs index 96a6b164..091a7fd7 100644 --- a/actix-service/src/lib.rs +++ b/actix-service/src/lib.rs @@ -38,10 +38,9 @@ pub use self::apply_cfg::{apply_cfg, apply_cfg_factory}; pub use self::ext::{ServiceExt, ServiceFactoryExt, TransformExt}; pub use self::fn_service::{fn_factory, fn_factory_with_config, fn_service}; pub use self::map_config::{map_config, unit_config}; -pub use self::transform::{apply, ApplyTransform, Transform}; - #[allow(unused_imports)] use self::ready::{err, ok, ready, Ready}; +pub use self::transform::{apply, ApplyTransform, Transform}; /// An asynchronous operation from `Request` to a `Response`. /// diff --git a/actix-tls/examples/accept-rustls.rs b/actix-tls/examples/accept-rustls.rs index 0ea1e7e1..6a90616d 100644 --- a/actix-tls/examples/accept-rustls.rs +++ b/actix-tls/examples/accept-rustls.rs @@ -15,8 +15,9 @@ //! http --verify=false https://127.0.0.1:8443 //! ``` -// this use only exists because of how we have organised the crate -// it is not necessary for your actual code +#[rustfmt::skip] +// this `use` is only exists because of how we have organised the crate +// it is not necessary for your actual code; you should import from `rustls` directly use tokio_rustls::rustls; use std::{ diff --git a/actix-tls/src/connect/native_tls.rs b/actix-tls/src/connect/native_tls.rs index 74a24c22..ecd9462e 100644 --- a/actix-tls/src/connect/native_tls.rs +++ b/actix-tls/src/connect/native_tls.rs @@ -20,7 +20,6 @@ pub mod reexports { //! Re-exports from `native-tls` and `tokio-native-tls` that are useful for connectors. pub use tokio_native_tls::native_tls::TlsConnector; - pub use tokio_native_tls::TlsStream as AsyncTlsStream; } diff --git a/actix-tls/src/connect/openssl.rs b/actix-tls/src/connect/openssl.rs index 5558baed..2fc534fd 100644 --- a/actix-tls/src/connect/openssl.rs +++ b/actix-tls/src/connect/openssl.rs @@ -25,7 +25,6 @@ pub mod reexports { pub use openssl::ssl::{ Error, HandshakeError, SslConnector, SslConnectorBuilder, SslMethod, }; - pub use tokio_openssl::SslStream as AsyncSslStream; } diff --git a/actix-tls/src/connect/rustls.rs b/actix-tls/src/connect/rustls.rs index 8d74fd8a..d3b27c93 100644 --- a/actix-tls/src/connect/rustls.rs +++ b/actix-tls/src/connect/rustls.rs @@ -26,10 +26,8 @@ use crate::connect::{Connection, Host}; pub mod reexports { //! Re-exports from `rustls` and `webpki_roots` that are useful for connectors. - pub use tokio_rustls::rustls::ClientConfig; - pub use tokio_rustls::client::TlsStream as AsyncTlsStream; - + pub use tokio_rustls::rustls::ClientConfig; pub use webpki_roots::TLS_SERVER_ROOTS; } diff --git a/actix-tls/tests/accept-openssl.rs b/actix-tls/tests/accept-openssl.rs index 4b6fadf0..a4180f4d 100644 --- a/actix-tls/tests/accept-openssl.rs +++ b/actix-tls/tests/accept-openssl.rs @@ -51,13 +51,13 @@ fn openssl_acceptor(cert: String, key: String) -> tls_openssl::ssl::SslAcceptor mod danger { use std::time::SystemTime; - use super::*; - use tokio_rustls::rustls::{ self, client::{ServerCertVerified, ServerCertVerifier}, }; + use super::*; + pub struct NoCertificateVerification; impl ServerCertVerifier for NoCertificateVerification { diff --git a/actix-tls/tests/test_connect.rs b/actix-tls/tests/test_connect.rs index bdd6b49c..7f8212b0 100644 --- a/actix-tls/tests/test_connect.rs +++ b/actix-tls/tests/test_connect.rs @@ -9,11 +9,10 @@ use actix_codec::{BytesCodec, Framed}; use actix_rt::net::TcpStream; use actix_server::TestServer; use actix_service::{fn_service, Service, ServiceFactory}; +use actix_tls::connect::{ConnectError, ConnectInfo, Connection, Connector, Host}; use bytes::Bytes; use futures_util::sink::SinkExt; -use actix_tls::connect::{ConnectError, ConnectInfo, Connection, Connector, Host}; - #[cfg(feature = "openssl")] #[actix_rt::test] async fn test_string() { diff --git a/actix-tls/tests/test_resolvers.rs b/actix-tls/tests/test_resolvers.rs index 81bbec54..f0674383 100644 --- a/actix-tls/tests/test_resolvers.rs +++ b/actix-tls/tests/test_resolvers.rs @@ -8,11 +8,10 @@ use std::{ use actix_rt::net::TcpStream; use actix_server::TestServer; use actix_service::{fn_service, Service, ServiceFactory}; -use futures_core::future::LocalBoxFuture; - use actix_tls::connect::{ ConnectError, ConnectInfo, Connection, Connector, Host, Resolve, Resolver, }; +use futures_core::future::LocalBoxFuture; #[actix_rt::test] async fn custom_resolver() { diff --git a/actix-tracing/src/lib.rs b/actix-tracing/src/lib.rs index a12f6d05..f5b08927 100644 --- a/actix-tracing/src/lib.rs +++ b/actix-tracing/src/lib.rs @@ -118,8 +118,6 @@ where #[cfg(test)] mod test { - use super::*; - use std::cell::RefCell; use std::collections::{BTreeMap, BTreeSet}; use std::sync::{Arc, RwLock}; @@ -128,6 +126,8 @@ mod test { use slab::Slab; use tracing::{span, Event, Level, Metadata, Subscriber}; + use super::*; + thread_local! { static SPAN: RefCell> = RefCell::new(Vec::new()); } diff --git a/bytestring/src/lib.rs b/bytestring/src/lib.rs index 7ab5a291..95a21870 100644 --- a/bytestring/src/lib.rs +++ b/bytestring/src/lib.rs @@ -219,11 +219,11 @@ mod serde { #[cfg(test)] mod serde_impl_tests { - use super::*; - use serde::de::DeserializeOwned; use static_assertions::assert_impl_all; + use super::*; + assert_impl_all!(ByteString: Serialize, DeserializeOwned); } } diff --git a/rustfmt.toml b/rustfmt.toml index 973e002c..a8758a07 100644 --- a/rustfmt.toml +++ b/rustfmt.toml @@ -1,2 +1,2 @@ max_width = 96 -reorder_imports = true +group_imports = "StdExternalCrate" From 4c1e581a542b0ca14f543932792c5866cc7a7161 Mon Sep 17 00:00:00 2001 From: Rob Ede Date: Mon, 25 Apr 2022 21:05:48 +0100 Subject: [PATCH 017/410] add track_caller atrtibute to spawn calls (#454) * add track_caller attribute to spawn calls * fix ci --- .github/workflows/ci.yml | 15 +++++++++++---- actix-rt/CHANGES.md | 3 +++ actix-rt/src/arbiter.rs | 2 ++ actix-rt/src/lib.rs | 1 + actix-rt/src/runtime.rs | 2 ++ actix-rt/src/system.rs | 1 + 6 files changed, 20 insertions(+), 4 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index fc82ab18..e87c4205 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -73,6 +73,14 @@ jobs: command: install args: cargo-hack + - name: Generate Cargo.lock + uses: actions-rs/cargo@v1 + with: { command: generate-lockfile } + + - name: Tweak lockfile + run: | + cargo update -p=native-tls --precise=0.2.8 + - name: check lib if: > matrix.target.os != 'ubuntu-latest' @@ -142,10 +150,9 @@ jobs: with: { command: generate-lockfile } - name: Tweak lockfile - uses: actions-rs/cargo@v1 - with: - command: update - args: -p=rustls --precise=0.20.2 + run: | + cargo update -p=rustls --precise=0.20.2 + cargo update -p=native-tls --precise=0.2.8 - name: tests run: | diff --git a/actix-rt/CHANGES.md b/actix-rt/CHANGES.md index 671b623a..4715a4b5 100644 --- a/actix-rt/CHANGES.md +++ b/actix-rt/CHANGES.md @@ -1,6 +1,9 @@ # Changes ## Unreleased - 2022-xx-xx +- Add `#[track_caller]` attribute to `spawn` functions and methods. [#454] + +[#454]: https://github.com/actix/actix-net/pull/454 ## 2.7.0 - 2022-03-08 diff --git a/actix-rt/src/arbiter.rs b/actix-rt/src/arbiter.rs index 95256360..4c9a588e 100644 --- a/actix-rt/src/arbiter.rs +++ b/actix-rt/src/arbiter.rs @@ -260,6 +260,7 @@ impl Arbiter { /// If you require a result, include a response channel in the future. /// /// Returns true if future was sent successfully and false if the Arbiter has died. + #[track_caller] pub fn spawn(&self, future: Fut) -> bool where Fut: Future + Send + 'static, @@ -275,6 +276,7 @@ impl Arbiter { /// channel in the function. /// /// Returns true if function was sent successfully and false if the Arbiter has died. + #[track_caller] pub fn spawn_fn(&self, f: F) -> bool where F: FnOnce() + Send + 'static, diff --git a/actix-rt/src/lib.rs b/actix-rt/src/lib.rs index b2d5f893..23dd01e8 100644 --- a/actix-rt/src/lib.rs +++ b/actix-rt/src/lib.rs @@ -195,6 +195,7 @@ pub mod task { /// assert!(handle.await.unwrap_err().is_cancelled()); /// # }); /// ``` +#[track_caller] #[inline] pub fn spawn(f: Fut) -> JoinHandle where diff --git a/actix-rt/src/runtime.rs b/actix-rt/src/runtime.rs index 25937003..557dfcfe 100644 --- a/actix-rt/src/runtime.rs +++ b/actix-rt/src/runtime.rs @@ -53,6 +53,7 @@ impl Runtime { /// # Panics /// This function panics if the spawn fails. Failure occurs if the executor is currently at /// capacity and is unable to spawn a new future. + #[track_caller] pub fn spawn(&self, future: F) -> JoinHandle where F: Future + 'static, @@ -73,6 +74,7 @@ impl Runtime { /// /// The caller is responsible for ensuring that other spawned futures complete execution by /// calling `block_on` or `run`. + #[track_caller] pub fn block_on(&self, f: F) -> F::Output where F: Future, diff --git a/actix-rt/src/system.rs b/actix-rt/src/system.rs index 0ea3547d..f3a5a4d8 100644 --- a/actix-rt/src/system.rs +++ b/actix-rt/src/system.rs @@ -204,6 +204,7 @@ impl SystemRunner { } /// Runs the provided future, blocking the current thread until the future completes. + #[track_caller] #[inline] pub fn block_on(&self, fut: F) -> F::Output { self.rt.block_on(fut) From 635aebe887901bc16277fcee92acd115687f52ff Mon Sep 17 00:00:00 2001 From: Guillaume Desmottes Date: Tue, 3 May 2022 14:37:18 +0200 Subject: [PATCH 018/410] actix-server: fix UNIX signal handling documentation (#455) --- actix-server/src/server.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/actix-server/src/server.rs b/actix-server/src/server.rs index 3e0d7733..71f63ef2 100644 --- a/actix-server/src/server.rs +++ b/actix-server/src/server.rs @@ -66,7 +66,7 @@ pub(crate) enum ServerCommand { /// server has fully shut down. /// /// # Shutdown Signals -/// On UNIX systems, `SIGQUIT` will start a graceful shutdown and `SIGTERM` or `SIGINT` will start a +/// On UNIX systems, `SIGTERM` will start a graceful shutdown and `SIGQUIT` or `SIGINT` will start a /// forced shutdown. On Windows, a Ctrl-C signal will start a forced shutdown. /// /// A graceful shutdown will wait for all workers to stop first. From 86ce140249c20747fc9ebe151214fa6985911a01 Mon Sep 17 00:00:00 2001 From: Rob Ede Date: Tue, 3 May 2022 14:55:10 +0100 Subject: [PATCH 019/410] ensure all crates include license files closes #456 --- local-channel/LICENSE-APACHE | 1 + local-channel/LICENSE-MIT | 1 + local-waker/LICENSE-APACHE | 1 + local-waker/LICENSE-MIT | 1 + 4 files changed, 4 insertions(+) create mode 120000 local-channel/LICENSE-APACHE create mode 120000 local-channel/LICENSE-MIT create mode 120000 local-waker/LICENSE-APACHE create mode 120000 local-waker/LICENSE-MIT diff --git a/local-channel/LICENSE-APACHE b/local-channel/LICENSE-APACHE new file mode 120000 index 00000000..965b606f --- /dev/null +++ b/local-channel/LICENSE-APACHE @@ -0,0 +1 @@ +../LICENSE-APACHE \ No newline at end of file diff --git a/local-channel/LICENSE-MIT b/local-channel/LICENSE-MIT new file mode 120000 index 00000000..76219eb7 --- /dev/null +++ b/local-channel/LICENSE-MIT @@ -0,0 +1 @@ +../LICENSE-MIT \ No newline at end of file diff --git a/local-waker/LICENSE-APACHE b/local-waker/LICENSE-APACHE new file mode 120000 index 00000000..965b606f --- /dev/null +++ b/local-waker/LICENSE-APACHE @@ -0,0 +1 @@ +../LICENSE-APACHE \ No newline at end of file diff --git a/local-waker/LICENSE-MIT b/local-waker/LICENSE-MIT new file mode 120000 index 00000000..76219eb7 --- /dev/null +++ b/local-waker/LICENSE-MIT @@ -0,0 +1 @@ +../LICENSE-MIT \ No newline at end of file From 3337f63b4e6b84822183b746bdccf8cdf2e7aef2 Mon Sep 17 00:00:00 2001 From: Rob Ede Date: Tue, 3 May 2022 14:56:40 +0100 Subject: [PATCH 020/410] prepare local-channel release 0.1.3 --- local-channel/CHANGES.md | 3 +++ local-channel/Cargo.toml | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/local-channel/CHANGES.md b/local-channel/CHANGES.md index 35b26411..a0ef93fc 100644 --- a/local-channel/CHANGES.md +++ b/local-channel/CHANGES.md @@ -1,6 +1,9 @@ # Changes ## Unreleased - 2022-xx-xx + + +## 0.1.3 - 2022-05-03 - Minimum supported Rust version (MSRV) is now 1.49. diff --git a/local-channel/Cargo.toml b/local-channel/Cargo.toml index aba58f65..52d88c3a 100644 --- a/local-channel/Cargo.toml +++ b/local-channel/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "local-channel" -version = "0.1.2" +version = "0.1.3" description = "A non-threadsafe multi-producer, single-consumer, futures-aware, FIFO queue" authors = [ "Nikolay Kim ", From 49a034259f6d157bc9e258763cc7c88434d3fb3a Mon Sep 17 00:00:00 2001 From: Rob Ede Date: Tue, 3 May 2022 14:58:09 +0100 Subject: [PATCH 021/410] prepare local-waker release 0.1.3 --- local-waker/CHANGES.md | 3 +++ local-waker/Cargo.toml | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/local-waker/CHANGES.md b/local-waker/CHANGES.md index 0131bb87..f178a40b 100644 --- a/local-waker/CHANGES.md +++ b/local-waker/CHANGES.md @@ -1,6 +1,9 @@ # Changes ## Unreleased - 2022-xx-xx + + +## 0.1.3 - 2022-05-03 - Minimum supported Rust version (MSRV) is now 1.49. diff --git a/local-waker/Cargo.toml b/local-waker/Cargo.toml index 2d83bcea..20ff299b 100644 --- a/local-waker/Cargo.toml +++ b/local-waker/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "local-waker" -version = "0.1.2" +version = "0.1.3" description = "A synchronization primitive for thread-local task wakeup" authors = [ "Nikolay Kim ", From eb5fa30ada30d68ab3320a7e745a33364e9777ba Mon Sep 17 00:00:00 2001 From: Marcus Griep Date: Fri, 10 Jun 2022 23:22:34 -0400 Subject: [PATCH 022/410] feat: impls for Box and String conversions (#458) Co-authored-by: Rob Ede --- bytestring/CHANGES.md | 3 +++ bytestring/src/lib.rs | 20 +++++++++++++++++++- 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/bytestring/CHANGES.md b/bytestring/CHANGES.md index e5d8d41e..14f2cde2 100644 --- a/bytestring/CHANGES.md +++ b/bytestring/CHANGES.md @@ -2,6 +2,9 @@ ## Unreleased - 2022-xx-xx - Minimum supported Rust version (MSRV) is now 1.49. +- Implement `From>` and `Into`. [#458] + +[#458]: https://github.com/actix/actix-net/pull/458 ## 1.0.0 - 2020-12-31 diff --git a/bytestring/src/lib.rs b/bytestring/src/lib.rs index 95a21870..39a153d2 100644 --- a/bytestring/src/lib.rs +++ b/bytestring/src/lib.rs @@ -6,7 +6,11 @@ extern crate alloc; -use alloc::{string::String, vec::Vec}; +use alloc::{ + boxed::Box, + string::{String, ToString}, + vec::Vec, +}; use core::{borrow, convert::TryFrom, fmt, hash, ops, str}; use bytes::Bytes; @@ -110,6 +114,20 @@ impl From<&str> for ByteString { } } +impl From> for ByteString { + #[inline] + fn from(value: Box) -> Self { + Self(Bytes::from(value.into_boxed_bytes())) + } +} + +impl From for String { + #[inline] + fn from(value: ByteString) -> Self { + value.to_string() + } +} + impl TryFrom<&[u8]> for ByteString { type Error = str::Utf8Error; From 71b4e55c92fba387d8ced4a694475db4c6b2334e Mon Sep 17 00:00:00 2001 From: Rob Ede Date: Sat, 11 Jun 2022 13:41:11 +0100 Subject: [PATCH 023/410] prepare bytestring release 1.1.0 (#461) --- bytestring/CHANGES.md | 6 +++++- bytestring/Cargo.toml | 2 +- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/bytestring/CHANGES.md b/bytestring/CHANGES.md index 14f2cde2..aaf6996c 100644 --- a/bytestring/CHANGES.md +++ b/bytestring/CHANGES.md @@ -1,8 +1,12 @@ # Changes ## Unreleased - 2022-xx-xx + + +## 1.1.0 - 2022-06-11 +- Implement `From>` for `ByteString`. [#458] +- Implement `Into` for `ByteString`. [#458] - Minimum supported Rust version (MSRV) is now 1.49. -- Implement `From>` and `Into`. [#458] [#458]: https://github.com/actix/actix-net/pull/458 diff --git a/bytestring/Cargo.toml b/bytestring/Cargo.toml index 6be9eed2..dc9fd6af 100644 --- a/bytestring/Cargo.toml +++ b/bytestring/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "bytestring" -version = "1.0.0" +version = "1.1.0" authors = [ "Nikolay Kim ", "Rob Ede ", From bf2aa3902c4c45ad8b3453faf6e1f2db2e5f5198 Mon Sep 17 00:00:00 2001 From: Yuki Okushi Date: Sun, 12 Jun 2022 10:17:38 +0900 Subject: [PATCH 024/410] Set depth of `--feature-powerset` on Windows CI (#460) --- .cargo/config.toml | 5 +++++ .github/workflows/ci.yml | 12 +++++++++--- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/.cargo/config.toml b/.cargo/config.toml index a1bc5198..2ac21485 100644 --- a/.cargo/config.toml +++ b/.cargo/config.toml @@ -18,6 +18,11 @@ ci-test = " hack --feature-powerset --exclude=actix-rt --exclude=actix-ser ci-test-rt = " hack --feature-powerset --exclude-features=io-uring test --package=actix-rt --lib --tests --no-fail-fast -- --nocapture" ci-test-server = "hack --feature-powerset --exclude-features=io-uring test --package=actix-server --lib --tests --no-fail-fast -- --nocapture" +# tests avoiding io-uring feature on Windows +ci-test-win = " hack --feature-powerset --depth 2 --exclude=actix-rt --exclude=actix-server --exclude-features=io-uring test --workspace --lib --tests --no-fail-fast -- --nocapture" +ci-test-rt-win = " hack --feature-powerset --depth 2 --exclude-features=io-uring test --package=actix-rt --lib --tests --no-fail-fast -- --nocapture" +ci-test-server-win = "hack --feature-powerset --depth 2 --exclude-features=io-uring test --package=actix-server --lib --tests --no-fail-fast -- --nocapture" + # test with io-uring feature ci-test-rt-linux = " hack --feature-powerset test --package=actix-rt --lib --tests --no-fail-fast -- --nocapture" ci-test-server-linux = "hack --feature-powerset test --package=actix-server --lib --tests --no-fail-fast -- --nocapture" diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index e87c4205..7b2343f6 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -109,13 +109,19 @@ jobs: with: { command: ci-check-linux } - name: tests - if: > - matrix.target.os != 'ubuntu-latest' - && matrix.target.triple != 'x86_64-pc-windows-gnu' + if: matrix.target.os == 'macos-latest' run: | cargo ci-test cargo ci-test-rt cargo ci-test-server + - name: tests + if: > + matrix.target.os == 'windows-latest' + && matrix.target.triple != 'x86_64-pc-windows-gnu' + run: | + cargo ci-test-win + cargo ci-test-rt-win + cargo ci-test-server-win - name: tests if: matrix.target.os == 'ubuntu-latest' run: | From 283974f3e6d487ae257c93542126dcca73ee547e Mon Sep 17 00:00:00 2001 From: Yuki Okushi Date: Fri, 24 Jun 2022 01:27:36 +0900 Subject: [PATCH 025/410] Make actix-codec an optional dependency (#459) --- actix-tls/Cargo.toml | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/actix-tls/Cargo.toml b/actix-tls/Cargo.toml index 5a8f2a6d..bbe1156c 100755 --- a/actix-tls/Cargo.toml +++ b/actix-tls/Cargo.toml @@ -30,19 +30,19 @@ accept = [] connect = [] # use openssl impls -openssl = ["tls-openssl", "tokio-openssl"] +openssl = ["tls-openssl", "tokio-openssl", "actix-codec"] # use rustls impls -rustls = ["tokio-rustls", "webpki-roots"] +rustls = ["tokio-rustls", "webpki-roots", "actix-codec"] # use native-tls impls -native-tls = ["tokio-native-tls"] +native-tls = ["tokio-native-tls", "actix-codec"] # support http::Uri as connect address uri = ["http"] [dependencies] -actix-codec = "0.5.0" +actix-codec = { version = "0.5.0", optional = true } actix-rt = { version = "2.2.0", default-features = false } actix-service = "2.0.0" actix-utils = "3.0.0" @@ -67,6 +67,7 @@ webpki-roots = { version = "0.22", optional = true } tokio-native-tls = { version = "0.3", optional = true } [dev-dependencies] +actix-codec = "0.5.0" actix-rt = "2.2.0" actix-server = "2.0.0" bytes = "1" From 126ed4c2e346734473119ee4b0006a6fe369e743 Mon Sep 17 00:00:00 2001 From: Iskandarov Lev Date: Fri, 22 Jul 2022 22:53:06 +0300 Subject: [PATCH 026/410] normalize logs capital letter (#463) Co-authored-by: Rob Ede --- actix-server/examples/file-reader.rs | 2 +- actix-server/examples/tcp-echo.rs | 4 ++-- actix-server/src/accept.rs | 14 +++++++------- actix-server/src/builder.rs | 2 +- actix-server/src/server.rs | 4 ++-- actix-server/src/service.rs | 2 +- actix-server/src/signals.rs | 2 +- actix-server/src/worker.rs | 22 +++++++++++----------- actix-server/tests/server.rs | 4 ++-- actix-tls/src/connect/native_tls.rs | 6 +++--- actix-tls/src/connect/openssl.rs | 7 ++++--- actix-tls/src/connect/rustls.rs | 4 ++-- actix-tls/src/connect/tcp.rs | 4 ++-- 13 files changed, 39 insertions(+), 38 deletions(-) diff --git a/actix-server/examples/file-reader.rs b/actix-server/examples/file-reader.rs index 81b7373a..f84cb510 100644 --- a/actix-server/examples/file-reader.rs +++ b/actix-server/examples/file-reader.rs @@ -74,7 +74,7 @@ async fn run() -> io::Result<()> { // close connection after file has been copied to TCP stream Ok(()) }) - .map_err(|err| tracing::error!("Service Error: {:?}", err)) + .map_err(|err| tracing::error!("service error: {:?}", err)) })? .workers(2) .run() diff --git a/actix-server/examples/tcp-echo.rs b/actix-server/examples/tcp-echo.rs index 0ae82cc3..eda24f83 100644 --- a/actix-server/examples/tcp-echo.rs +++ b/actix-server/examples/tcp-echo.rs @@ -64,7 +64,7 @@ async fn run() -> io::Result<()> { // stream error; bail from loop with error Err(err) => { - tracing::error!("Stream Error: {:?}", err); + tracing::error!("stream error: {:?}", err); return Err(()); } } @@ -74,7 +74,7 @@ async fn run() -> io::Result<()> { Ok((buf.freeze(), size)) } }) - .map_err(|err| tracing::error!("Service Error: {:?}", err)) + .map_err(|err| tracing::error!("service error: {:?}", err)) .and_then(move |(_, size)| { let num = num2.load(Ordering::SeqCst); tracing::info!("[{}] total bytes read: {}", num, size); diff --git a/actix-server/src/accept.rs b/actix-server/src/accept.rs index a5c8225d..a6ae78c1 100644 --- a/actix-server/src/accept.rs +++ b/actix-server/src/accept.rs @@ -140,7 +140,7 @@ impl Accept { WAKER_TOKEN => { let exit = self.handle_waker(sockets); if exit { - info!("Accept thread stopped"); + info!("accept thread stopped"); return; } } @@ -297,16 +297,16 @@ impl Accept { fn register_logged(&self, info: &mut ServerSocketInfo) { match self.register(info) { - Ok(_) => debug!("Resume accepting connections on {}", info.lst.local_addr()), - Err(err) => error!("Can not register server socket {}", err), + Ok(_) => debug!("resume accepting connections on {}", info.lst.local_addr()), + Err(err) => error!("can not register server socket {}", err), } } fn deregister_logged(&self, info: &mut ServerSocketInfo) { match self.poll.registry().deregister(&mut info.lst) { - Ok(_) => debug!("Paused accepting connections on {}", info.lst.local_addr()), + Ok(_) => debug!("paused accepting connections on {}", info.lst.local_addr()), Err(err) => { - error!("Can not deregister server socket {}", err) + error!("can not deregister server socket {}", err) } } } @@ -350,7 +350,7 @@ impl Accept { self.remove_next(); if self.handles.is_empty() { - error!("No workers"); + error!("no workers"); // All workers are gone and Conn is nowhere to be sent. // Treat this situation as Ok and drop Conn. return Ok(()); @@ -399,7 +399,7 @@ impl Accept { Err(ref err) if err.kind() == io::ErrorKind::WouldBlock => return, Err(ref err) if connection_error(err) => continue, Err(err) => { - error!("Error accepting connection: {}", err); + error!("error accepting connection: {}", err); // deregister listener temporary self.deregister_logged(info); diff --git a/actix-server/src/builder.rs b/actix-server/src/builder.rs index 8660b4a9..b6646081 100644 --- a/actix-server/src/builder.rs +++ b/actix-server/src/builder.rs @@ -197,7 +197,7 @@ impl ServerBuilder { if self.sockets.is_empty() { panic!("Server should have at least one bound socket"); } else { - info!("Starting {} workers", self.threads); + info!("starting {} workers", self.threads); Server::new(self) } } diff --git a/actix-server/src/server.rs b/actix-server/src/server.rs index 71f63ef2..a7bd5b53 100644 --- a/actix-server/src/server.rs +++ b/actix-server/src/server.rs @@ -200,7 +200,7 @@ impl ServerInner { for (_, name, lst) in &builder.sockets { info!( - r#"Starting service: "{}", workers: {}, listening on: {}"#, + r#"starting service: "{}", workers: {}, listening on: {}"#, name, builder.threads, lst.local_addr() @@ -283,7 +283,7 @@ impl ServerInner { // TODO: maybe just return with warning log if not found ? assert!(self.worker_handles.iter().any(|wrk| wrk.idx == idx)); - error!("Worker {} has died; restarting", idx); + error!("worker {} has died; restarting", idx); let factories = self .services diff --git a/actix-server/src/service.rs b/actix-server/src/service.rs index 03ee72d5..f07ec3e5 100644 --- a/actix-server/src/service.rs +++ b/actix-server/src/service.rs @@ -78,7 +78,7 @@ where Ok(()) } Err(err) => { - error!("Can not convert to an async tcp stream: {}", err); + error!("can not convert to an async TCP stream: {}", err); Err(()) } }) diff --git a/actix-server/src/signals.rs b/actix-server/src/signals.rs index 91bd52cc..6a212d83 100644 --- a/actix-server/src/signals.rs +++ b/actix-server/src/signals.rs @@ -70,7 +70,7 @@ impl Signals { .map(|tokio_sig| (*sig, tokio_sig)) .map_err(|e| { tracing::error!( - "Can not initialize stream handler for {:?} err: {}", + "can not initialize stream handler for {:?} err: {}", sig, e ) diff --git a/actix-server/src/worker.rs b/actix-server/src/worker.rs index b66ea4b9..35ba1366 100644 --- a/actix-server/src/worker.rs +++ b/actix-server/src/worker.rs @@ -337,7 +337,7 @@ impl ServerWorker { Ok((token, svc)) => services.push((idx, token, svc)), Err(err) => { - error!("Can not start worker: {:?}", err); + error!("can not start worker: {:?}", err); return Err(io::Error::new( io::ErrorKind::Other, format!("can not start server service {}", idx), @@ -436,7 +436,7 @@ impl ServerWorker { Ok((token, svc)) => services.push((idx, token, svc)), Err(err) => { - error!("Can not start worker: {:?}", err); + error!("can not start worker: {:?}", err); Arbiter::current().stop(); factory_tx .send(Err(io::Error::new( @@ -476,7 +476,7 @@ impl ServerWorker { fn restart_service(&mut self, idx: usize, factory_id: usize) { let factory = &self.factories[factory_id]; - trace!("Service {:?} failed, restarting", factory.name(idx)); + trace!("service {:?} failed, restarting", factory.name(idx)); self.services[idx].status = WorkerServiceStatus::Restarting; self.state = WorkerState::Restarting(Restart { factory_id, @@ -508,7 +508,7 @@ impl ServerWorker { Poll::Ready(Ok(_)) => { if srv.status == WorkerServiceStatus::Unavailable { trace!( - "Service {:?} is available", + "service {:?} is available", self.factories[srv.factory_idx].name(idx) ); srv.status = WorkerServiceStatus::Available; @@ -519,7 +519,7 @@ impl ServerWorker { if srv.status == WorkerServiceStatus::Available { trace!( - "Service {:?} is unavailable", + "service {:?} is unavailable", self.factories[srv.factory_idx].name(idx) ); srv.status = WorkerServiceStatus::Unavailable; @@ -527,7 +527,7 @@ impl ServerWorker { } Poll::Ready(Err(_)) => { error!( - "Service {:?} readiness check returned error, restarting", + "service {:?} readiness check returned error, restarting", self.factories[srv.factory_idx].name(idx) ); srv.status = WorkerServiceStatus::Failed; @@ -590,11 +590,11 @@ impl Future for ServerWorker { { let num = this.counter.total(); if num == 0 { - info!("Shutting down idle worker"); + info!("shutting down idle worker"); let _ = tx.send(true); return Poll::Ready(()); } else if graceful { - info!("Graceful worker shutdown; finishing {} connections", num); + info!("graceful worker shutdown; finishing {} connections", num); this.shutdown(false); this.state = WorkerState::Shutdown(Shutdown { @@ -603,7 +603,7 @@ impl Future for ServerWorker { tx, }); } else { - info!("Force shutdown worker, closing {} connections", num); + info!("force shutdown worker, closing {} connections", num); this.shutdown(true); let _ = tx.send(false); @@ -638,7 +638,7 @@ impl Future for ServerWorker { assert_eq!(token, token_new); trace!( - "Service {:?} has been restarted", + "service {:?} has been restarted", this.factories[factory_id].name(token) ); @@ -685,7 +685,7 @@ impl Future for ServerWorker { match this.check_readiness(cx) { Ok(true) => {} Ok(false) => { - trace!("Worker is unavailable"); + trace!("worker is unavailable"); this.state = WorkerState::Unavailable; return self.poll(cx); } diff --git a/actix-server/tests/server.rs b/actix-server/tests/server.rs index ec3155c9..dc0c57ca 100644 --- a/actix-server/tests/server.rs +++ b/actix-server/tests/server.rs @@ -186,9 +186,9 @@ fn test_start() { #[actix_rt::test] async fn test_max_concurrent_connections() { // Note: - // A tcp listener would accept connects based on it's backlog setting. + // A TCP listener would accept connects based on it's backlog setting. // - // The limit test on the other hand is only for concurrent tcp stream limiting a work + // The limit test on the other hand is only for concurrent TCP stream limiting a work // thread accept. use tokio::io::AsyncWriteExt; diff --git a/actix-tls/src/connect/native_tls.rs b/actix-tls/src/connect/native_tls.rs index ecd9462e..37b9ffa4 100644 --- a/actix-tls/src/connect/native_tls.rs +++ b/actix-tls/src/connect/native_tls.rs @@ -74,16 +74,16 @@ where let connector = self.connector.clone(); Box::pin(async move { - trace!("SSL Handshake start for: {:?}", stream.hostname()); + trace!("TLS handshake start for: {:?}", stream.hostname()); connector .connect(stream.hostname(), io) .await .map(|res| { - trace!("SSL Handshake success: {:?}", stream.hostname()); + trace!("TLS handshake success: {:?}", stream.hostname()); stream.replace_io(res).1 }) .map_err(|e| { - trace!("SSL Handshake error: {:?}", e); + trace!("TLS handshake error: {:?}", e); io::Error::new(io::ErrorKind::Other, format!("{}", e)) }) }) diff --git a/actix-tls/src/connect/openssl.rs b/actix-tls/src/connect/openssl.rs index 2fc534fd..caff4f0f 100644 --- a/actix-tls/src/connect/openssl.rs +++ b/actix-tls/src/connect/openssl.rs @@ -97,7 +97,8 @@ where actix_service::always_ready!(); fn call(&self, stream: Connection) -> Self::Future { - trace!("SSL Handshake start for: {:?}", stream.hostname()); + trace!("TLS handshake start for: {:?}", stream.hostname()); + let (io, stream) = stream.replace_io(()); let host = stream.hostname(); @@ -137,11 +138,11 @@ where match ready!(Pin::new(this.io.as_mut().unwrap()).poll_connect(cx)) { Ok(_) => { let stream = this.stream.take().unwrap(); - trace!("SSL Handshake success: {:?}", stream.hostname()); + trace!("TLS handshake success: {:?}", stream.hostname()); Poll::Ready(Ok(stream.replace_io(this.io.take().unwrap()).1)) } Err(err) => { - trace!("SSL Handshake error: {:?}", err); + trace!("TLS handshake error: {:?}", err); Poll::Ready(Err(io::Error::new( io::ErrorKind::Other, format!("{}", err), diff --git a/actix-tls/src/connect/rustls.rs b/actix-tls/src/connect/rustls.rs index d3b27c93..0a44479a 100644 --- a/actix-tls/src/connect/rustls.rs +++ b/actix-tls/src/connect/rustls.rs @@ -101,7 +101,7 @@ where actix_service::always_ready!(); fn call(&self, connection: Connection) -> Self::Future { - trace!("SSL Handshake start for: {:?}", connection.hostname()); + trace!("TLS handshake start for: {:?}", connection.hostname()); let (stream, connection) = connection.replace_io(()); match ServerName::try_from(connection.hostname()) { @@ -140,7 +140,7 @@ where Self::Future { connect, connection } => { let stream = ready!(Pin::new(connect).poll(cx))?; let connection = connection.take().unwrap(); - trace!("SSL Handshake success: {:?}", connection.hostname()); + trace!("TLS handshake success: {:?}", connection.hostname()); Poll::Ready(Ok(connection.replace_io(stream).1)) } } diff --git a/actix-tls/src/connect/tcp.rs b/actix-tls/src/connect/tcp.rs index b102620c..b247e7f1 100644 --- a/actix-tls/src/connect/tcp.rs +++ b/actix-tls/src/connect/tcp.rs @@ -114,8 +114,8 @@ impl TcpConnectorFut { stream: ReusableBoxFuture::new(connect(addr, local_addr)), }, - // when resolver returns multiple socket addr for request they would be popped from - // front end of queue and returns with the first successful tcp connection. + // When resolver returns multiple socket addr for request they would be popped from + // front end of queue and returns with the first successful TCP connection. ConnectAddrs::Multi(mut addrs) => { let addr = addrs.pop_front().unwrap(); From 66756bc4484a05a4907127133591a24dabf0a479 Mon Sep 17 00:00:00 2001 From: Rob Ede Date: Sat, 23 Jul 2022 01:51:12 +0200 Subject: [PATCH 027/410] update all crates msrv to 1.57 (#464) --- .cargo/config.toml | 14 ++------- .github/workflows/ci-master.yml | 7 ++--- .github/workflows/ci.yml | 55 +++------------------------------ actix-codec/CHANGES.md | 1 + actix-macros/CHANGES.md | 2 +- actix-rt/CHANGES.md | 1 + actix-server/CHANGES.md | 1 + actix-server/src/accept.rs | 12 ++++--- actix-service/CHANGES.md | 2 +- actix-tls/CHANGES.md | 1 + actix-tls/src/connect/host.rs | 16 +++------- actix-tracing/CHANGES.md | 2 +- actix-utils/CHANGES.md | 2 +- bytestring/CHANGES.md | 1 + bytestring/src/lib.rs | 4 +-- clippy.toml | 2 +- local-channel/CHANGES.md | 1 + local-waker/CHANGES.md | 1 + 18 files changed, 34 insertions(+), 91 deletions(-) diff --git a/.cargo/config.toml b/.cargo/config.toml index 2ac21485..4024bc0e 100644 --- a/.cargo/config.toml +++ b/.cargo/config.toml @@ -14,18 +14,10 @@ ci-check = "hack --workspace --feature-powerset --exclude-features=io-uring chec ci-check-linux = "hack --workspace --feature-powerset check --tests --examples" # tests avoiding io-uring feature -ci-test = " hack --feature-powerset --exclude=actix-rt --exclude=actix-server --exclude-features=io-uring test --workspace --lib --tests --no-fail-fast -- --nocapture" -ci-test-rt = " hack --feature-powerset --exclude-features=io-uring test --package=actix-rt --lib --tests --no-fail-fast -- --nocapture" -ci-test-server = "hack --feature-powerset --exclude-features=io-uring test --package=actix-server --lib --tests --no-fail-fast -- --nocapture" +ci-test = "hack --feature-powerset --exclude-features=io-uring test --lib --tests --no-fail-fast -- --nocapture" # tests avoiding io-uring feature on Windows -ci-test-win = " hack --feature-powerset --depth 2 --exclude=actix-rt --exclude=actix-server --exclude-features=io-uring test --workspace --lib --tests --no-fail-fast -- --nocapture" -ci-test-rt-win = " hack --feature-powerset --depth 2 --exclude-features=io-uring test --package=actix-rt --lib --tests --no-fail-fast -- --nocapture" -ci-test-server-win = "hack --feature-powerset --depth 2 --exclude-features=io-uring test --package=actix-server --lib --tests --no-fail-fast -- --nocapture" +ci-test-win = "hack --feature-powerset --depth 2 --exclude-features=io-uring test --lib --tests --no-fail-fast -- --nocapture" # test with io-uring feature -ci-test-rt-linux = " hack --feature-powerset test --package=actix-rt --lib --tests --no-fail-fast -- --nocapture" -ci-test-server-linux = "hack --feature-powerset test --package=actix-server --lib --tests --no-fail-fast -- --nocapture" - -# test lower msrv -ci-test-lower-msrv = "hack --workspace --exclude=actix-server --exclude=actix-tls --feature-powerset test --lib --tests --no-fail-fast -- --nocapture" +ci-test-linux = " hack --feature-powerset test --lib --tests --no-fail-fast -- --nocapture" diff --git a/.github/workflows/ci-master.yml b/.github/workflows/ci-master.yml index 45e5683a..29c5d8c7 100644 --- a/.github/workflows/ci-master.yml +++ b/.github/workflows/ci-master.yml @@ -101,14 +101,11 @@ jobs: if: > matrix.target.os != 'ubuntu-latest' && matrix.target.triple != 'x86_64-pc-windows-gnu' - run: | - cargo ci-test - cargo ci-test-rt - cargo ci-test-server + run: cargo ci-test - name: tests if: matrix.target.os == 'ubuntu-latest' run: | - sudo bash -c "ulimit -Sl 512 && ulimit -Hl 512 && PATH=$PATH:/usr/share/rust/.cargo/bin && RUSTUP_TOOLCHAIN=${{ matrix.version }} cargo ci-test && RUSTUP_TOOLCHAIN=${{ matrix.version }} cargo ci-test-rt-linux && RUSTUP_TOOLCHAIN=${{ matrix.version }} cargo ci-test-server-linux" + sudo bash -c "ulimit -Sl 512 && ulimit -Hl 512 && PATH=$PATH:/usr/share/rust/.cargo/bin && RUSTUP_TOOLCHAIN=${{ matrix.version }} cargo ci-test && RUSTUP_TOOLCHAIN=${{ matrix.version }} cargo ci-test-linux" - name: Clear the cargo caches run: | diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 7b2343f6..fd839fb4 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -18,7 +18,7 @@ jobs: - { name: Windows (MinGW), os: windows-latest, triple: x86_64-pc-windows-gnu } - { name: Windows (32-bit), os: windows-latest, triple: i686-pc-windows-msvc } version: - - 1.52.0 # MSRV for -server and -tls + - 1.57.0 - stable name: ${{ matrix.target.name }} / ${{ matrix.version }} @@ -77,10 +77,6 @@ jobs: uses: actions-rs/cargo@v1 with: { command: generate-lockfile } - - name: Tweak lockfile - run: | - cargo update -p=native-tls --precise=0.2.8 - - name: check lib if: > matrix.target.os != 'ubuntu-latest' @@ -110,59 +106,16 @@ jobs: - name: tests if: matrix.target.os == 'macos-latest' - run: | - cargo ci-test - cargo ci-test-rt - cargo ci-test-server + run: cargo ci-test - name: tests if: > matrix.target.os == 'windows-latest' && matrix.target.triple != 'x86_64-pc-windows-gnu' - run: | - cargo ci-test-win - cargo ci-test-rt-win - cargo ci-test-server-win + run: cargo ci-test-win - name: tests if: matrix.target.os == 'ubuntu-latest' run: | - sudo bash -c "ulimit -Sl 512 && ulimit -Hl 512 && PATH=$PATH:/usr/share/rust/.cargo/bin && RUSTUP_TOOLCHAIN=${{ matrix.version }} cargo ci-test && RUSTUP_TOOLCHAIN=${{ matrix.version }} cargo ci-test-rt-linux && RUSTUP_TOOLCHAIN=${{ matrix.version }} cargo ci-test-server-linux" - - - name: Clear the cargo caches - run: | - cargo install cargo-cache --version 0.6.2 --no-default-features --features ci-autoclean - cargo-cache - - build_and_test_lower_msrv: - name: Linux / 1.49 (lower MSRV) - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - - name: Install 1.49.0 # MSRV for all but -server and -tls - uses: actions-rs/toolchain@v1 - with: - toolchain: 1.49.0-x86_64-unknown-linux-gnu - profile: minimal - override: true - - - name: Install cargo-hack - uses: actions-rs/cargo@v1 - with: - command: install - args: cargo-hack - - - name: Generate Cargo.lock - uses: actions-rs/cargo@v1 - with: { command: generate-lockfile } - - - name: Tweak lockfile - run: | - cargo update -p=rustls --precise=0.20.2 - cargo update -p=native-tls --precise=0.2.8 - - - name: tests - run: | - sudo bash -c "ulimit -Sl 512 && ulimit -Hl 512 && PATH=$PATH:/usr/share/rust/.cargo/bin && RUSTUP_TOOLCHAIN=1.49 cargo ci-test-lower-msrv" + sudo bash -c "ulimit -Sl 512 && ulimit -Hl 512 && PATH=$PATH:/usr/share/rust/.cargo/bin && RUSTUP_TOOLCHAIN=${{ matrix.version }} cargo ci-test && RUSTUP_TOOLCHAIN=${{ matrix.version }} cargo ci-test-linux" - name: Clear the cargo caches run: | diff --git a/actix-codec/CHANGES.md b/actix-codec/CHANGES.md index c721762d..2de0bcf6 100644 --- a/actix-codec/CHANGES.md +++ b/actix-codec/CHANGES.md @@ -1,6 +1,7 @@ # Changes ## Unreleased - 2022-xx-xx +- Minimum supported Rust version (MSRV) is now 1.57. ## 0.5.1 - 2022-03-15 diff --git a/actix-macros/CHANGES.md b/actix-macros/CHANGES.md index accc52ce..9a25f7ed 100644 --- a/actix-macros/CHANGES.md +++ b/actix-macros/CHANGES.md @@ -1,7 +1,7 @@ # Changes ## Unreleased - 2022-xx-xx -- Minimum supported Rust version (MSRV) is now 1.49. +- Minimum supported Rust version (MSRV) is now 1.57. ## 0.2.3 - 2021-10-19 diff --git a/actix-rt/CHANGES.md b/actix-rt/CHANGES.md index 4715a4b5..b19b2b7d 100644 --- a/actix-rt/CHANGES.md +++ b/actix-rt/CHANGES.md @@ -2,6 +2,7 @@ ## Unreleased - 2022-xx-xx - Add `#[track_caller]` attribute to `spawn` functions and methods. [#454] +- Minimum supported Rust version (MSRV) is now 1.57. [#454]: https://github.com/actix/actix-net/pull/454 diff --git a/actix-server/CHANGES.md b/actix-server/CHANGES.md index f8e29d33..1fdb63fd 100644 --- a/actix-server/CHANGES.md +++ b/actix-server/CHANGES.md @@ -1,6 +1,7 @@ # Changes ## Unreleased - 2022-xx-xx +- Minimum supported Rust version (MSRV) is now 1.57. ## 2.1.1 - 2022-03-09 diff --git a/actix-server/src/accept.rs b/actix-server/src/accept.rs index a6ae78c1..c250f909 100644 --- a/actix-server/src/accept.rs +++ b/actix-server/src/accept.rs @@ -24,7 +24,7 @@ struct ServerSocketInfo { timeout: Option, } -/// poll instance of the server. +/// Poll instance of the server. pub(crate) struct Accept { poll: Poll, waker_queue: WakerQueue, @@ -161,11 +161,13 @@ impl Accept { // a loop that would try to drain the command channel. It's yet unknown // if it's necessary/good practice to actively drain the waker queue. loop { - // take guard with every iteration so no new interest can be added - // until the current task is done. + // Take guard with every iteration so no new interests can be added until the current + // task is done. Take care not to take the guard again inside this loop. let mut guard = self.waker_queue.guard(); + + #[allow(clippy::significant_drop_in_scrutinee)] match guard.pop_front() { - // worker notify it becomes available. + // Worker notified it became available. Some(WakerInterest::WorkerAvailable(idx)) => { drop(guard); @@ -176,7 +178,7 @@ impl Accept { } } - // a new worker thread is made and it's handle would be added to Accept + // A new worker thread has been created so store its handle. Some(WakerInterest::Worker(handle)) => { drop(guard); diff --git a/actix-service/CHANGES.md b/actix-service/CHANGES.md index 36c6fba5..5f4d5086 100644 --- a/actix-service/CHANGES.md +++ b/actix-service/CHANGES.md @@ -1,7 +1,7 @@ # Changes ## Unreleased - 2022-xx-xx -- Minimum supported Rust version (MSRV) is now 1.49. +- Minimum supported Rust version (MSRV) is now 1.57. ## 2.0.2 - 2021-12-18 diff --git a/actix-tls/CHANGES.md b/actix-tls/CHANGES.md index cf36d96c..a4b7c75a 100644 --- a/actix-tls/CHANGES.md +++ b/actix-tls/CHANGES.md @@ -1,6 +1,7 @@ # Changes ## Unreleased - 2022-xx-xx +- Minimum supported Rust version (MSRV) is now 1.57. ## 3.0.4 - 2022-03-15 diff --git a/actix-tls/src/connect/host.rs b/actix-tls/src/connect/host.rs index 13780751..c4ff9a01 100644 --- a/actix-tls/src/connect/host.rs +++ b/actix-tls/src/connect/host.rs @@ -27,25 +27,25 @@ pub trait Host: Unpin + 'static { impl Host for String { fn hostname(&self) -> &str { - str_split_once(self, ':') + self.split_once(':') .map(|(hostname, _)| hostname) .unwrap_or(self) } fn port(&self) -> Option { - str_split_once(self, ':').and_then(|(_, port)| port.parse().ok()) + self.split_once(':').and_then(|(_, port)| port.parse().ok()) } } impl Host for &'static str { fn hostname(&self) -> &str { - str_split_once(self, ':') + self.split_once(':') .map(|(hostname, _)| hostname) .unwrap_or(self) } fn port(&self) -> Option { - str_split_once(self, ':').and_then(|(_, port)| port.parse().ok()) + self.split_once(':').and_then(|(_, port)| port.parse().ok()) } } @@ -69,11 +69,3 @@ mod tests { assert_connection_info_eq!("example.com:false:false", "example.com", None); } } - -// `str::split_once` is stabilized in 1.52.0 -fn str_split_once(str: &str, delimiter: char) -> Option<(&str, &str)> { - let mut splitn = str.splitn(2, delimiter); - let prefix = splitn.next()?; - let suffix = splitn.next()?; - Some((prefix, suffix)) -} diff --git a/actix-tracing/CHANGES.md b/actix-tracing/CHANGES.md index aecc837c..e4396377 100644 --- a/actix-tracing/CHANGES.md +++ b/actix-tracing/CHANGES.md @@ -1,7 +1,7 @@ # Changes ## Unreleased - 2022-xx-xx -- Minimum supported Rust version (MSRV) is now 1.49. +- Minimum supported Rust version (MSRV) is now 1.57. ## 0.1.0 - 2020-01-15 diff --git a/actix-utils/CHANGES.md b/actix-utils/CHANGES.md index 6657000b..0602b27d 100644 --- a/actix-utils/CHANGES.md +++ b/actix-utils/CHANGES.md @@ -1,7 +1,7 @@ # Changes ## Unreleased - 2022-xx-xx -- Minimum supported Rust version (MSRV) is now 1.49. +- Minimum supported Rust version (MSRV) is now 1.57. ## 3.0.0 - 2021-04-16 diff --git a/bytestring/CHANGES.md b/bytestring/CHANGES.md index aaf6996c..2cdf6d91 100644 --- a/bytestring/CHANGES.md +++ b/bytestring/CHANGES.md @@ -1,6 +1,7 @@ # Changes ## Unreleased - 2022-xx-xx +- Minimum supported Rust version (MSRV) is now 1.57. ## 1.1.0 - 2022-06-11 diff --git a/bytestring/src/lib.rs b/bytestring/src/lib.rs index 39a153d2..27357602 100644 --- a/bytestring/src/lib.rs +++ b/bytestring/src/lib.rs @@ -72,7 +72,7 @@ impl AsRef<[u8]> for ByteString { impl AsRef for ByteString { fn as_ref(&self) -> &str { - &*self + self } } @@ -96,7 +96,7 @@ impl ops::Deref for ByteString { impl borrow::Borrow for ByteString { fn borrow(&self) -> &str { - &*self + self } } diff --git a/clippy.toml b/clippy.toml index f691ea3d..5cccb362 100644 --- a/clippy.toml +++ b/clippy.toml @@ -1 +1 @@ -msrv = "1.48" +msrv = "1.57" diff --git a/local-channel/CHANGES.md b/local-channel/CHANGES.md index a0ef93fc..1b273273 100644 --- a/local-channel/CHANGES.md +++ b/local-channel/CHANGES.md @@ -1,6 +1,7 @@ # Changes ## Unreleased - 2022-xx-xx +- Minimum supported Rust version (MSRV) is now 1.57. ## 0.1.3 - 2022-05-03 diff --git a/local-waker/CHANGES.md b/local-waker/CHANGES.md index f178a40b..bedfbea6 100644 --- a/local-waker/CHANGES.md +++ b/local-waker/CHANGES.md @@ -1,6 +1,7 @@ # Changes ## Unreleased - 2022-xx-xx +- Minimum supported Rust version (MSRV) is now 1.57. ## 0.1.3 - 2022-05-03 From 0e649329b9ff836a66e1a0edfc0d41e7d3623d34 Mon Sep 17 00:00:00 2001 From: Rob Ede Date: Sat, 23 Jul 2022 01:47:59 +0100 Subject: [PATCH 028/410] fix minimal versions --- actix-tracing/Cargo.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/actix-tracing/Cargo.toml b/actix-tracing/Cargo.toml index 2ed2c434..50e15b76 100644 --- a/actix-tracing/Cargo.toml +++ b/actix-tracing/Cargo.toml @@ -19,7 +19,7 @@ path = "src/lib.rs" actix-service = "2.0.0" actix-utils = "3.0.0" -tracing = "0.1" +tracing = "0.1.35" tracing-futures = "0.2" [dev_dependencies] From c4a0f37d0cf8d547b4e46f5ffaf7043f822adcf9 Mon Sep 17 00:00:00 2001 From: Rob Ede Date: Sat, 23 Jul 2022 03:06:44 +0100 Subject: [PATCH 029/410] fix minimal versions for bytestring --- bytestring/Cargo.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bytestring/Cargo.toml b/bytestring/Cargo.toml index dc9fd6af..4d85e001 100644 --- a/bytestring/Cargo.toml +++ b/bytestring/Cargo.toml @@ -18,7 +18,7 @@ name = "bytestring" path = "src/lib.rs" [dependencies] -bytes = "1" +bytes = "1.2" serde = { version = "1.0", optional = true } [dev-dependencies] From 25209f5bd85ff47022f82db7c0e3395558365ad7 Mon Sep 17 00:00:00 2001 From: Rob Ede Date: Mon, 17 Oct 2022 04:14:09 +0100 Subject: [PATCH 030/410] use impl-more in -tls --- actix-service/src/macros.rs | 2 ++ actix-tls/Cargo.toml | 1 + actix-tls/src/accept/native_tls.rs | 6 ++--- actix-tls/src/accept/openssl.rs | 6 ++--- actix-tls/src/accept/rustls.rs | 6 ++--- actix-tls/src/connect/connection.rs | 4 +-- actix-tls/src/impl_more.rs | 40 ----------------------------- actix-tls/src/lib.rs | 2 -- 8 files changed, 10 insertions(+), 57 deletions(-) delete mode 100644 actix-tls/src/impl_more.rs diff --git a/actix-service/src/macros.rs b/actix-service/src/macros.rs index 503cf116..fc46bb9d 100644 --- a/actix-service/src/macros.rs +++ b/actix-service/src/macros.rs @@ -25,6 +25,8 @@ /// } /// } /// ``` +/// +/// [`forward_ready!`]: crate::forward_ready #[macro_export] macro_rules! always_ready { () => { diff --git a/actix-tls/Cargo.toml b/actix-tls/Cargo.toml index bbe1156c..d6b2efe2 100755 --- a/actix-tls/Cargo.toml +++ b/actix-tls/Cargo.toml @@ -48,6 +48,7 @@ actix-service = "2.0.0" actix-utils = "3.0.0" futures-core = { version = "0.3.7", default-features = false, features = ["alloc"] } +impl-more = "0.1.0" pin-project-lite = "0.2.7" tokio-util = "0.7" tracing = { version = "0.1.30", default-features = false, features = ["log"] } diff --git a/actix-tls/src/accept/native_tls.rs b/actix-tls/src/accept/native_tls.rs index b22c1ef2..f9dda144 100644 --- a/actix-tls/src/accept/native_tls.rs +++ b/actix-tls/src/accept/native_tls.rs @@ -24,7 +24,6 @@ use futures_core::future::LocalBoxFuture; use tokio_native_tls::{native_tls::Error, TlsAcceptor}; use super::{TlsError, DEFAULT_TLS_HANDSHAKE_TIMEOUT, MAX_CONN_COUNTER}; -use crate::impl_more; pub mod reexports { //! Re-exports from `native-tls` that are useful for acceptors. @@ -35,9 +34,8 @@ pub mod reexports { /// Wraps a `native-tls` based async TLS stream in order to implement [`ActixStream`]. pub struct TlsStream(tokio_native_tls::TlsStream); -impl_more::from! { tokio_native_tls::TlsStream => TlsStream } -impl_more::deref! { TlsStream => 0: tokio_native_tls::TlsStream } -impl_more::deref_mut! { TlsStream => 0 } +impl_more::impl_from!( in tokio_native_tls::TlsStream => TlsStream); +impl_more::impl_deref_and_mut!( in TlsStream => tokio_native_tls::TlsStream); impl AsyncRead for TlsStream { fn poll_read( diff --git a/actix-tls/src/accept/openssl.rs b/actix-tls/src/accept/openssl.rs index 6e65e5fc..1f068274 100644 --- a/actix-tls/src/accept/openssl.rs +++ b/actix-tls/src/accept/openssl.rs @@ -25,7 +25,6 @@ use openssl::ssl::{Error, Ssl, SslAcceptor}; use pin_project_lite::pin_project; use super::{TlsError, DEFAULT_TLS_HANDSHAKE_TIMEOUT, MAX_CONN_COUNTER}; -use crate::impl_more; pub mod reexports { //! Re-exports from `openssl` that are useful for acceptors. @@ -38,9 +37,8 @@ pub mod reexports { /// Wraps an `openssl` based async TLS stream in order to implement [`ActixStream`]. pub struct TlsStream(tokio_openssl::SslStream); -impl_more::from! { tokio_openssl::SslStream => TlsStream } -impl_more::deref! { TlsStream => 0: tokio_openssl::SslStream } -impl_more::deref_mut! { TlsStream => 0 } +impl_more::impl_from!( in tokio_openssl::SslStream => TlsStream); +impl_more::impl_deref_and_mut!( in TlsStream => tokio_openssl::SslStream); impl AsyncRead for TlsStream { fn poll_read( diff --git a/actix-tls/src/accept/rustls.rs b/actix-tls/src/accept/rustls.rs index 35fbd34a..73e77bd5 100644 --- a/actix-tls/src/accept/rustls.rs +++ b/actix-tls/src/accept/rustls.rs @@ -27,7 +27,6 @@ use tokio_rustls::rustls::ServerConfig; use tokio_rustls::{Accept, TlsAcceptor}; use super::{TlsError, DEFAULT_TLS_HANDSHAKE_TIMEOUT, MAX_CONN_COUNTER}; -use crate::impl_more; pub mod reexports { //! Re-exports from `rustls` that are useful for acceptors. @@ -38,9 +37,8 @@ pub mod reexports { /// Wraps a `rustls` based async TLS stream in order to implement [`ActixStream`]. pub struct TlsStream(tokio_rustls::server::TlsStream); -impl_more::from! { tokio_rustls::server::TlsStream => TlsStream } -impl_more::deref! { TlsStream => 0: tokio_rustls::server::TlsStream } -impl_more::deref_mut! { TlsStream => 0 } +impl_more::impl_from!( in tokio_rustls::server::TlsStream => TlsStream); +impl_more::impl_deref_and_mut!( in TlsStream => tokio_rustls::server::TlsStream); impl AsyncRead for TlsStream { fn poll_read( diff --git a/actix-tls/src/connect/connection.rs b/actix-tls/src/connect/connection.rs index 1abd4eff..3433ac1a 100644 --- a/actix-tls/src/connect/connection.rs +++ b/actix-tls/src/connect/connection.rs @@ -1,5 +1,4 @@ use super::Host; -use crate::impl_more; /// Wraps underlying I/O and the connection request that initiated it. #[derive(Debug)] @@ -8,8 +7,7 @@ pub struct Connection { pub(crate) io: IO, } -impl_more::deref! { Connection => io: IO } -impl_more::deref_mut! { Connection => io } +impl_more::impl_deref_and_mut!( in Connection => io: IO); impl Connection { /// Construct new `Connection` from request and IO parts. diff --git a/actix-tls/src/impl_more.rs b/actix-tls/src/impl_more.rs deleted file mode 100644 index c380228b..00000000 --- a/actix-tls/src/impl_more.rs +++ /dev/null @@ -1,40 +0,0 @@ -/// A helper to implement `Deref` for a type. -#[macro_export] -macro_rules! deref { - ($ty:ident $(<$($generic:ident),*>)? => $field:tt: $target:ty) => { - impl $(<$($generic),*>)? ::core::ops::Deref for $ty $(<$($generic),*>)? { - type Target = $target; - - fn deref(&self) -> &Self::Target { - &self.$field - } - } - }; -} - -/// A helper to implement `DerefMut` for a type. -#[macro_export] -macro_rules! deref_mut { - ($ty:ident $(<$($generic:ident),*>)? => $field:tt) => { - impl $(<$($generic),*>)? ::core::ops::DerefMut for $ty $(<$($generic),*>)? { - fn deref_mut(&mut self) -> &mut Self::Target { - &mut self.$field - } - } - }; -} - -/// A helper to implement `From` for a unit struct. -#[macro_export] -macro_rules! from { - ($from:ty => $ty:ident $(<$($generic:ident),*>)?) => { - impl $(<$($generic),*>)? ::core::convert::From<$from> for $ty $(<$($generic),*>)? { - fn from(from: $from) -> Self { - Self(from) - } - } - }; -} - -#[allow(unused_imports)] -pub(crate) use crate::{deref, deref_mut, from}; diff --git a/actix-tls/src/lib.rs b/actix-tls/src/lib.rs index dfca00cd..39714dca 100644 --- a/actix-tls/src/lib.rs +++ b/actix-tls/src/lib.rs @@ -18,5 +18,3 @@ pub mod accept; #[cfg(feature = "connect")] #[cfg_attr(docsrs, doc(cfg(feature = "connect")))] pub mod connect; - -mod impl_more; From cb83922b292586c0e7b3fc1c35e33e0fb5f1bbe5 Mon Sep 17 00:00:00 2001 From: Rob Ede Date: Mon, 17 Oct 2022 04:27:34 +0100 Subject: [PATCH 031/410] add macos test note --- actix-tls/tests/test_connect.rs | 3 +++ 1 file changed, 3 insertions(+) diff --git a/actix-tls/tests/test_connect.rs b/actix-tls/tests/test_connect.rs index 7f8212b0..5e73fd2d 100644 --- a/actix-tls/tests/test_connect.rs +++ b/actix-tls/tests/test_connect.rs @@ -143,6 +143,9 @@ async fn test_local_addr() { }) }); + // if you've arrived here because of a failing test on macOS run this in your terminal: + // sudo ifconfig lo0 alias 127.0.0.3 + let conn = Connector::default().service(); let local = IpAddr::V4(Ipv4Addr::new(127, 0, 0, 3)); From ade71b7bd3403ddec17d54a3beb2acd049db726f Mon Sep 17 00:00:00 2001 From: Rob Ede Date: Fri, 21 Oct 2022 03:14:38 +0100 Subject: [PATCH 032/410] address soundness footgun in poll_fn --- actix-utils/src/future/mod.rs | 2 +- actix-utils/src/future/poll_fn.rs | 65 ++++++++++++++++++++++++++++--- actix-utils/src/future/ready.rs | 4 +- 3 files changed, 63 insertions(+), 8 deletions(-) diff --git a/actix-utils/src/future/mod.rs b/actix-utils/src/future/mod.rs index be3807bf..399b54d2 100644 --- a/actix-utils/src/future/mod.rs +++ b/actix-utils/src/future/mod.rs @@ -1,4 +1,4 @@ -//! Asynchronous values. +//! Helpers for constructing futures. mod either; mod poll_fn; diff --git a/actix-utils/src/future/poll_fn.rs b/actix-utils/src/future/poll_fn.rs index 31421b45..15d93dbd 100644 --- a/actix-utils/src/future/poll_fn.rs +++ b/actix-utils/src/future/poll_fn.rs @@ -8,6 +8,31 @@ use core::{ }; /// Creates a future driven by the provided function that receives a task context. +/// +/// # Examples +/// ``` +/// # use std::task::Poll; +/// # use actix_utils::future::poll_fn; +/// # async fn test_poll_fn() { +/// let res = poll_fn(|_| Poll::Ready(42)).await; +/// assert_eq!(res, 42); +/// +/// let mut i = 5; +/// let res = poll_fn(|cx| { +/// i -= 1; +/// +/// if i > 0 { +/// cx.waker().wake_by_ref(); +/// Poll::Pending +/// } else { +/// Poll::Ready(42) +/// } +/// }) +/// .await; +/// assert_eq!(res, 42); +/// # } +/// # actix_rt::Runtime::new().unwrap().block_on(test_poll_fn()); +/// ``` #[inline] pub fn poll_fn(f: F) -> PollFn where @@ -16,13 +41,11 @@ where PollFn { f } } -/// A Future driven by the inner function. +/// Future for the [`poll_fn`] function. pub struct PollFn { f: F, } -impl Unpin for PollFn {} - impl fmt::Debug for PollFn { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { f.debug_struct("PollFn").finish() @@ -36,15 +59,22 @@ where type Output = T; #[inline] - fn poll(mut self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll { - (self.f)(cx) + fn poll(self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll { + // SAFETY: we are not moving out of the pinned field + // see https://github.com/rust-lang/rust/pull/102737 + (unsafe { &mut self.get_unchecked_mut().f })(cx) } } #[cfg(test)] mod tests { + use std::marker::PhantomPinned; + use super::*; + static_assertions::assert_impl_all!(PollFn<()>: Unpin); + static_assertions::assert_not_impl_all!(PollFn: Unpin); + #[actix_rt::test] async fn test_poll_fn() { let res = poll_fn(|_| Poll::Ready(42)).await; @@ -64,4 +94,29 @@ mod tests { .await; assert_eq!(res, 42); } + + // following soundness tests taken from https://github.com/tokio-rs/tokio/pull/5087 + + #[allow(dead_code)] + fn require_send(_t: &T) {} + #[allow(dead_code)] + fn require_sync(_t: &T) {} + + trait AmbiguousIfUnpin { + fn some_item(&self) {} + } + impl AmbiguousIfUnpin<()> for T {} + impl AmbiguousIfUnpin<[u8; 0]> for T {} + + const _: fn() = || { + let pinned = std::marker::PhantomPinned; + let f = poll_fn(move |_| { + // Use `pinned` to take ownership of it. + let _ = &pinned; + std::task::Poll::Pending::<()> + }); + require_send(&f); + require_sync(&f); + AmbiguousIfUnpin::some_item(&f); + }; } diff --git a/actix-utils/src/future/ready.rs b/actix-utils/src/future/ready.rs index cd375c1f..31eb6551 100644 --- a/actix-utils/src/future/ready.rs +++ b/actix-utils/src/future/ready.rs @@ -1,4 +1,4 @@ -//! When MSRV is 1.48, replace with `core::future::Ready` and `core::future::ready()`. +//! When `core::future::Ready` has a `into_inner()` method, this can be deprecated. use core::{ future::Future, @@ -6,7 +6,7 @@ use core::{ task::{Context, Poll}, }; -/// Future for the [`ready`](ready()) function. +/// Future for the [`ready`] function. /// /// Panic will occur if polled more than once. /// From d5a9a6a1c51c37cf4b1a6799d22cfa7531a9ea17 Mon Sep 17 00:00:00 2001 From: Rob Ede Date: Fri, 21 Oct 2022 03:15:48 +0100 Subject: [PATCH 033/410] prepare actix-utils release 3.0.1 --- actix-service/Cargo.toml | 4 ++-- actix-tls/Cargo.toml | 10 +++++----- actix-tracing/Cargo.toml | 6 +++--- actix-utils/CHANGES.md | 3 +++ actix-utils/Cargo.toml | 2 +- 5 files changed, 14 insertions(+), 11 deletions(-) diff --git a/actix-service/Cargo.toml b/actix-service/Cargo.toml index d4b602fd..b9f14675 100644 --- a/actix-service/Cargo.toml +++ b/actix-service/Cargo.toml @@ -23,6 +23,6 @@ paste = "1" pin-project-lite = "0.2" [dev-dependencies] -actix-rt = "2.0.0" -actix-utils = "3.0.0" +actix-rt = "2" +actix-utils = "3" futures-util = { version = "0.3.7", default-features = false } diff --git a/actix-tls/Cargo.toml b/actix-tls/Cargo.toml index d6b2efe2..00dc5dac 100755 --- a/actix-tls/Cargo.toml +++ b/actix-tls/Cargo.toml @@ -44,11 +44,11 @@ uri = ["http"] [dependencies] actix-codec = { version = "0.5.0", optional = true } actix-rt = { version = "2.2.0", default-features = false } -actix-service = "2.0.0" -actix-utils = "3.0.0" +actix-service = "2" +actix-utils = "3" futures-core = { version = "0.3.7", default-features = false, features = ["alloc"] } -impl-more = "0.1.0" +impl-more = "0.1" pin-project-lite = "0.2.7" tokio-util = "0.7" tracing = { version = "0.1.30", default-features = false, features = ["log"] } @@ -70,7 +70,7 @@ tokio-native-tls = { version = "0.3", optional = true } [dev-dependencies] actix-codec = "0.5.0" actix-rt = "2.2.0" -actix-server = "2.0.0" +actix-server = "2" bytes = "1" env_logger = "0.9" futures-util = { version = "0.3.7", default-features = false, features = ["sink"] } @@ -78,7 +78,7 @@ log = "0.4" rcgen = "0.8" rustls-pemfile = "0.2.1" tokio-rustls = { version = "0.23", features = ["dangerous_configuration"] } -trust-dns-resolver = "0.20.0" +trust-dns-resolver = "0.20" [[example]] name = "accept-rustls" diff --git a/actix-tracing/Cargo.toml b/actix-tracing/Cargo.toml index 50e15b76..279ffc28 100644 --- a/actix-tracing/Cargo.toml +++ b/actix-tracing/Cargo.toml @@ -16,12 +16,12 @@ name = "actix_tracing" path = "src/lib.rs" [dependencies] -actix-service = "2.0.0" -actix-utils = "3.0.0" +actix-service = "2" +actix-utils = "3" tracing = "0.1.35" tracing-futures = "0.2" [dev_dependencies] -actix-rt = "2.0.0" +actix-rt = "2" slab = "0.4" diff --git a/actix-utils/CHANGES.md b/actix-utils/CHANGES.md index 0602b27d..76dace73 100644 --- a/actix-utils/CHANGES.md +++ b/actix-utils/CHANGES.md @@ -1,6 +1,9 @@ # Changes ## Unreleased - 2022-xx-xx + + +## 3.0.1 - 2022-10-21 - Minimum supported Rust version (MSRV) is now 1.57. diff --git a/actix-utils/Cargo.toml b/actix-utils/Cargo.toml index ed858378..bd3eb480 100644 --- a/actix-utils/Cargo.toml +++ b/actix-utils/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "actix-utils" -version = "3.0.0" +version = "3.0.1" authors = [ "Nikolay Kim ", "Rob Ede ", From 68228a6cf29eee97c440606c6ebbe0b755956c59 Mon Sep 17 00:00:00 2001 From: Rob Ede Date: Fri, 21 Oct 2022 03:23:40 +0100 Subject: [PATCH 034/410] update dev deps --- actix-codec/Cargo.toml | 2 +- actix-tls/Cargo.toml | 6 +++--- bytestring/Cargo.toml | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/actix-codec/Cargo.toml b/actix-codec/Cargo.toml index fbefebe0..0b63d214 100644 --- a/actix-codec/Cargo.toml +++ b/actix-codec/Cargo.toml @@ -28,7 +28,7 @@ tokio-util = { version = "0.7", features = ["codec", "io"] } tracing = { version = "0.1.30", default-features = false, features = ["log"] } [dev-dependencies] -criterion = { version = "0.3", features = ["html_reports"] } +criterion = { version = "0.4", features = ["html_reports"] } tokio-test = "0.4.2" [[bench]] diff --git a/actix-tls/Cargo.toml b/actix-tls/Cargo.toml index 00dc5dac..a2313688 100755 --- a/actix-tls/Cargo.toml +++ b/actix-tls/Cargo.toml @@ -75,10 +75,10 @@ bytes = "1" env_logger = "0.9" futures-util = { version = "0.3.7", default-features = false, features = ["sink"] } log = "0.4" -rcgen = "0.8" -rustls-pemfile = "0.2.1" +rcgen = "0.10" +rustls-pemfile = "1" tokio-rustls = { version = "0.23", features = ["dangerous_configuration"] } -trust-dns-resolver = "0.20" +trust-dns-resolver = "0.22" [[example]] name = "accept-rustls" diff --git a/bytestring/Cargo.toml b/bytestring/Cargo.toml index 4d85e001..374918e6 100644 --- a/bytestring/Cargo.toml +++ b/bytestring/Cargo.toml @@ -22,7 +22,7 @@ bytes = "1.2" serde = { version = "1.0", optional = true } [dev-dependencies] -ahash = { version = "0.7.6", default-features = false } +ahash = { version = "0.8", default-features = false } serde_json = "1.0" static_assertions = "1.1" rustversion = "1" From 056d2cd57308ef922202bee982f2ae66b26faca0 Mon Sep 17 00:00:00 2001 From: Rob Ede Date: Mon, 24 Oct 2022 23:44:29 +0100 Subject: [PATCH 035/410] workaround ci msrv issue --- .github/workflows/ci.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index fd839fb4..31ac582f 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -77,6 +77,11 @@ jobs: uses: actions-rs/cargo@v1 with: { command: generate-lockfile } + - name: workaround MSRV issues + if: matrix.version != 'stable' + run: | + cargo update -p=time --precise=0.3.13 + - name: check lib if: > matrix.target.os != 'ubuntu-latest' From df9a9d1a1e42e6328190eaedc3117ba10742da5b Mon Sep 17 00:00:00 2001 From: Rob Ede Date: Tue, 25 Oct 2022 00:10:39 +0100 Subject: [PATCH 036/410] don't install cargo-cache on 1.57 CI --- .github/workflows/ci.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 31ac582f..5013ba1f 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -80,7 +80,7 @@ jobs: - name: workaround MSRV issues if: matrix.version != 'stable' run: | - cargo update -p=time --precise=0.3.13 + cargo update -p=time --precise=0.3.13 # time is only a dev dep so shouldn't affect msrv - name: check lib if: > @@ -123,6 +123,7 @@ jobs: sudo bash -c "ulimit -Sl 512 && ulimit -Hl 512 && PATH=$PATH:/usr/share/rust/.cargo/bin && RUSTUP_TOOLCHAIN=${{ matrix.version }} cargo ci-test && RUSTUP_TOOLCHAIN=${{ matrix.version }} cargo ci-test-linux" - name: Clear the cargo caches + if: matrix.version == 'stable' # MSRV(1.58) cargo-cache now fails to install on 1.57 run: | cargo install cargo-cache --version 0.6.2 --no-default-features --features ci-autoclean cargo-cache From 428914e65e176c39f6252188d81cc60ca59b99aa Mon Sep 17 00:00:00 2001 From: fakeshadow <24548779@qq.com> Date: Tue, 25 Oct 2022 23:34:36 +0800 Subject: [PATCH 037/410] remove fakeshadow from author lists (#468) --- actix-rt/Cargo.toml | 1 - actix-server/Cargo.toml | 1 - actix-service/Cargo.toml | 1 - 3 files changed, 3 deletions(-) diff --git a/actix-rt/Cargo.toml b/actix-rt/Cargo.toml index 10eac079..dd5d423a 100644 --- a/actix-rt/Cargo.toml +++ b/actix-rt/Cargo.toml @@ -4,7 +4,6 @@ version = "2.7.0" authors = [ "Nikolay Kim ", "Rob Ede ", - "fakeshadow <24548779@qq.com>", ] description = "Tokio-based single-threaded async runtime for the Actix ecosystem" keywords = ["async", "futures", "io", "runtime"] diff --git a/actix-server/Cargo.toml b/actix-server/Cargo.toml index be4a81b6..3f2dcad0 100755 --- a/actix-server/Cargo.toml +++ b/actix-server/Cargo.toml @@ -3,7 +3,6 @@ name = "actix-server" version = "2.1.1" authors = [ "Nikolay Kim ", - "fakeshadow <24548779@qq.com>", "Rob Ede ", "Ali MJ Al-Nasrawy ", ] diff --git a/actix-service/Cargo.toml b/actix-service/Cargo.toml index b9f14675..ccd2005e 100644 --- a/actix-service/Cargo.toml +++ b/actix-service/Cargo.toml @@ -4,7 +4,6 @@ version = "2.0.2" authors = [ "Nikolay Kim ", "Rob Ede ", - "fakeshadow <24548779@qq.com>", ] description = "Service trait and combinators for representing asynchronous request/response operations." keywords = ["network", "framework", "async", "futures", "service"] From 00654aadc55a5000acea84a0d15c752ec2f77bde Mon Sep 17 00:00:00 2001 From: Rob Ede Date: Sun, 30 Oct 2022 20:25:10 +0000 Subject: [PATCH 038/410] use direct tokio exports where possible --- .cargo/config.toml | 2 +- actix-codec/src/lib.rs | 5 ++--- actix-server/Cargo.toml | 4 ++-- actix-tls/Cargo.toml | 12 ++++++------ actix-tls/src/accept/native_tls.rs | 2 +- actix-tls/src/accept/openssl.rs | 2 +- actix-tls/src/accept/rustls.rs | 2 +- 7 files changed, 14 insertions(+), 15 deletions(-) diff --git a/.cargo/config.toml b/.cargo/config.toml index 4024bc0e..c4f6e3f6 100644 --- a/.cargo/config.toml +++ b/.cargo/config.toml @@ -20,4 +20,4 @@ ci-test = "hack --feature-powerset --exclude-features=io-uring test --lib --test ci-test-win = "hack --feature-powerset --depth 2 --exclude-features=io-uring test --lib --tests --no-fail-fast -- --nocapture" # test with io-uring feature -ci-test-linux = " hack --feature-powerset test --lib --tests --no-fail-fast -- --nocapture" +ci-test-linux = "hack --feature-powerset test --lib --tests --no-fail-fast -- --nocapture" diff --git a/actix-codec/src/lib.rs b/actix-codec/src/lib.rs index db1f90de..020e40e2 100644 --- a/actix-codec/src/lib.rs +++ b/actix-codec/src/lib.rs @@ -1,8 +1,7 @@ //! Codec utilities for working with framed protocols. //! -//! Contains adapters to go from streams of bytes, [`AsyncRead`] and -//! [`AsyncWrite`], to framed streams implementing [`Sink`] and [`Stream`]. -//! Framed streams are also known as `transports`. +//! Contains adapters to go from streams of bytes, [`AsyncRead`] and [`AsyncWrite`], to framed +//! streams implementing [`Sink`] and [`Stream`]. Framed streams are also known as `transports`. //! //! [`Sink`]: futures_sink::Sink //! [`Stream`]: futures_core::Stream diff --git a/actix-server/Cargo.toml b/actix-server/Cargo.toml index 3f2dcad0..eb2152a3 100755 --- a/actix-server/Cargo.toml +++ b/actix-server/Cargo.toml @@ -40,8 +40,8 @@ tracing = { version = "0.1.30", default-features = false, features = ["log"] } tokio-uring = { version = "0.3", optional = true } [dev-dependencies] -actix-codec = "0.5.0" -actix-rt = "2.6.0" +actix-codec = "0.5" +actix-rt = "2.6" bytes = "1" env_logger = "0.9" diff --git a/actix-tls/Cargo.toml b/actix-tls/Cargo.toml index a2313688..56591f35 100755 --- a/actix-tls/Cargo.toml +++ b/actix-tls/Cargo.toml @@ -30,19 +30,18 @@ accept = [] connect = [] # use openssl impls -openssl = ["tls-openssl", "tokio-openssl", "actix-codec"] +openssl = ["tls-openssl", "tokio-openssl"] # use rustls impls -rustls = ["tokio-rustls", "webpki-roots", "actix-codec"] +rustls = ["tokio-rustls", "webpki-roots"] # use native-tls impls -native-tls = ["tokio-native-tls", "actix-codec"] +native-tls = ["tokio-native-tls"] # support http::Uri as connect address uri = ["http"] [dependencies] -actix-codec = { version = "0.5.0", optional = true } actix-rt = { version = "2.2.0", default-features = false } actix-service = "2" actix-utils = "3" @@ -50,6 +49,7 @@ actix-utils = "3" futures-core = { version = "0.3.7", default-features = false, features = ["alloc"] } impl-more = "0.1" pin-project-lite = "0.2.7" +tokio = "1.13.1" tokio-util = "0.7" tracing = { version = "0.1.30", default-features = false, features = ["log"] } @@ -68,8 +68,8 @@ webpki-roots = { version = "0.22", optional = true } tokio-native-tls = { version = "0.3", optional = true } [dev-dependencies] -actix-codec = "0.5.0" -actix-rt = "2.2.0" +actix-codec = "0.5" +actix-rt = "2.2" actix-server = "2" bytes = "1" env_logger = "0.9" diff --git a/actix-tls/src/accept/native_tls.rs b/actix-tls/src/accept/native_tls.rs index f9dda144..ce98e687 100644 --- a/actix-tls/src/accept/native_tls.rs +++ b/actix-tls/src/accept/native_tls.rs @@ -10,7 +10,6 @@ use std::{ time::Duration, }; -use actix_codec::{AsyncRead, AsyncWrite, ReadBuf}; use actix_rt::{ net::{ActixStream, Ready}, time::timeout, @@ -21,6 +20,7 @@ use actix_utils::{ future::{ready, Ready as FutReady}, }; use futures_core::future::LocalBoxFuture; +use tokio::io::{AsyncRead, AsyncWrite, ReadBuf}; use tokio_native_tls::{native_tls::Error, TlsAcceptor}; use super::{TlsError, DEFAULT_TLS_HANDSHAKE_TIMEOUT, MAX_CONN_COUNTER}; diff --git a/actix-tls/src/accept/openssl.rs b/actix-tls/src/accept/openssl.rs index 1f068274..32973b66 100644 --- a/actix-tls/src/accept/openssl.rs +++ b/actix-tls/src/accept/openssl.rs @@ -11,7 +11,6 @@ use std::{ time::Duration, }; -use actix_codec::{AsyncRead, AsyncWrite, ReadBuf}; use actix_rt::{ net::{ActixStream, Ready}, time::{sleep, Sleep}, @@ -23,6 +22,7 @@ use actix_utils::{ }; use openssl::ssl::{Error, Ssl, SslAcceptor}; use pin_project_lite::pin_project; +use tokio::io::{AsyncRead, AsyncWrite, ReadBuf}; use super::{TlsError, DEFAULT_TLS_HANDSHAKE_TIMEOUT, MAX_CONN_COUNTER}; diff --git a/actix-tls/src/accept/rustls.rs b/actix-tls/src/accept/rustls.rs index 73e77bd5..fd0ebfb0 100644 --- a/actix-tls/src/accept/rustls.rs +++ b/actix-tls/src/accept/rustls.rs @@ -12,7 +12,6 @@ use std::{ time::Duration, }; -use actix_codec::{AsyncRead, AsyncWrite, ReadBuf}; use actix_rt::{ net::{ActixStream, Ready}, time::{sleep, Sleep}, @@ -23,6 +22,7 @@ use actix_utils::{ future::{ready, Ready as FutReady}, }; use pin_project_lite::pin_project; +use tokio::io::{AsyncRead, AsyncWrite, ReadBuf}; use tokio_rustls::rustls::ServerConfig; use tokio_rustls::{Accept, TlsAcceptor}; From 363984ad75d47fc305830813fb405a26f7f2eaf1 Mon Sep 17 00:00:00 2001 From: "Wang, Chi" Date: Tue, 8 Nov 2022 04:16:46 +0800 Subject: [PATCH 039/410] Add ByteString::slice_ref (#470) --- bytestring/CHANGES.md | 2 ++ bytestring/src/lib.rs | 34 ++++++++++++++++++++++++++++++++++ 2 files changed, 36 insertions(+) diff --git a/bytestring/CHANGES.md b/bytestring/CHANGES.md index 2cdf6d91..d7c4c2be 100644 --- a/bytestring/CHANGES.md +++ b/bytestring/CHANGES.md @@ -2,7 +2,9 @@ ## Unreleased - 2022-xx-xx - Minimum supported Rust version (MSRV) is now 1.57. +- Add `ByteString::slice_ref` which can safely slice a `ByteString` into a new one with zero copy. [#470] +[#470]: https://github.com/actix/actix-net/pull/470 ## 1.1.0 - 2022-06-11 - Implement `From>` for `ByteString`. [#458] diff --git a/bytestring/src/lib.rs b/bytestring/src/lib.rs index 27357602..06117d7c 100644 --- a/bytestring/src/lib.rs +++ b/bytestring/src/lib.rs @@ -50,6 +50,34 @@ impl ByteString { pub const unsafe fn from_bytes_unchecked(src: Bytes) -> ByteString { Self(src) } + + /// Returns a slice of self that is equivalent to the given `subset`. Corresponds to [`Bytes::slice_ref`]. + /// + /// When processing a `ByteString` buffer with other tools, one often gets a + /// `&str` which is in fact a slice of the `ByteString`, i.e. a subset of it. + /// This function turns that `&str` into another `ByteString`, as if one had + /// sliced the `ByteString` with the offsets that correspond to `subset`. + /// + /// This operation is `O(1)`. + /// + /// # Examples + /// + /// ``` + /// use bytestring::ByteString; + /// + /// let string = ByteString::from_static(" foo "); + /// let subset = string.trim(); + /// let substring = string.slice_ref(subset); + /// assert_eq!(substring, "foo"); + /// ``` + /// + /// # Panics + /// + /// Requires that the given `subset` str is in fact contained within the + /// `ByteString` buffer; otherwise this function will panic. + pub fn slice_ref(&self, subset: &str) -> Self { + Self(self.0.slice_ref(subset.as_bytes())) + } } impl PartialEq for ByteString { @@ -349,4 +377,10 @@ mod test { let s = serde_json::to_string(&ByteString::from_static("nice bytes")).unwrap(); assert_eq!(s, r#""nice bytes""#); } + + #[test] + #[should_panic] + fn test_slice_ref_catches_not_a_subset() { + ByteString::from_static("foo bar").slice_ref("foo"); + } } From 6061a44a22dffe82b164b8cfc869931417e5646d Mon Sep 17 00:00:00 2001 From: Rob Ede Date: Mon, 7 Nov 2022 20:21:57 +0000 Subject: [PATCH 040/410] slice_ref doc tweaks --- bytestring/src/lib.rs | 25 ++++++++++++------------- 1 file changed, 12 insertions(+), 13 deletions(-) diff --git a/bytestring/src/lib.rs b/bytestring/src/lib.rs index 06117d7c..7058c106 100644 --- a/bytestring/src/lib.rs +++ b/bytestring/src/lib.rs @@ -51,30 +51,29 @@ impl ByteString { Self(src) } - /// Returns a slice of self that is equivalent to the given `subset`. Corresponds to [`Bytes::slice_ref`]. + /// Returns a byte string that is equivalent to the given `subset`. /// - /// When processing a `ByteString` buffer with other tools, one often gets a - /// `&str` which is in fact a slice of the `ByteString`, i.e. a subset of it. - /// This function turns that `&str` into another `ByteString`, as if one had - /// sliced the `ByteString` with the offsets that correspond to `subset`. + /// When processing a `ByteString` buffer with other tools, one often gets a `&str` which is in + /// fact a slice of the `ByteString`; i.e., a subset of it. This function turns that `&str` into + /// another `ByteString`, as if one had sliced the `ByteString` with the offsets that correspond + /// to `subset`. + /// + /// Corresponds to [`Bytes::slice_ref`]. /// /// This operation is `O(1)`. /// + /// # Panics + /// Requires that the given `subset` str is in fact contained within the `ByteString` buffer; + /// otherwise this function will panic. + /// /// # Examples - /// /// ``` - /// use bytestring::ByteString; - /// + /// # use bytestring::ByteString; /// let string = ByteString::from_static(" foo "); /// let subset = string.trim(); /// let substring = string.slice_ref(subset); /// assert_eq!(substring, "foo"); /// ``` - /// - /// # Panics - /// - /// Requires that the given `subset` str is in fact contained within the - /// `ByteString` buffer; otherwise this function will panic. pub fn slice_ref(&self, subset: &str) -> Self { Self(self.0.slice_ref(subset.as_bytes())) } From bb36e2a072a45f3e20a6d72049e51ebfbb35bd2e Mon Sep 17 00:00:00 2001 From: Rob Ede Date: Mon, 7 Nov 2022 20:22:47 +0000 Subject: [PATCH 041/410] prepare bytestring release 1.2.0 --- bytestring/CHANGES.md | 6 +++++- bytestring/Cargo.toml | 2 +- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/bytestring/CHANGES.md b/bytestring/CHANGES.md index d7c4c2be..cb966545 100644 --- a/bytestring/CHANGES.md +++ b/bytestring/CHANGES.md @@ -1,11 +1,15 @@ # Changes ## Unreleased - 2022-xx-xx -- Minimum supported Rust version (MSRV) is now 1.57. + + +## 1.2.0 - 2022-11-07 - Add `ByteString::slice_ref` which can safely slice a `ByteString` into a new one with zero copy. [#470] +- Minimum supported Rust version (MSRV) is now 1.57. [#470]: https://github.com/actix/actix-net/pull/470 + ## 1.1.0 - 2022-06-11 - Implement `From>` for `ByteString`. [#458] - Implement `Into` for `ByteString`. [#458] diff --git a/bytestring/Cargo.toml b/bytestring/Cargo.toml index 374918e6..466f8030 100644 --- a/bytestring/Cargo.toml +++ b/bytestring/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "bytestring" -version = "1.1.0" +version = "1.2.0" authors = [ "Nikolay Kim ", "Rob Ede ", From 9ede174e81fe276c84e66f88f2edb7f1295227e2 Mon Sep 17 00:00:00 2001 From: VladimirBramstedt <75995382+VladimirBramstedt@users.noreply.github.com> Date: Sat, 12 Nov 2022 08:00:06 +0100 Subject: [PATCH 042/410] fix no_std compatibility (#471) Co-authored-by: Yuki Okushi --- bytestring/CHANGES.md | 3 +++ bytestring/Cargo.toml | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/bytestring/CHANGES.md b/bytestring/CHANGES.md index cb966545..0b1254ef 100644 --- a/bytestring/CHANGES.md +++ b/bytestring/CHANGES.md @@ -1,6 +1,9 @@ # Changes ## Unreleased - 2022-xx-xx +- Fix no_std compatibility. [#471] + +[#471]: https://github.com/actix/actix-net/pull/471 ## 1.2.0 - 2022-11-07 diff --git a/bytestring/Cargo.toml b/bytestring/Cargo.toml index 466f8030..92131e4a 100644 --- a/bytestring/Cargo.toml +++ b/bytestring/Cargo.toml @@ -18,7 +18,7 @@ name = "bytestring" path = "src/lib.rs" [dependencies] -bytes = "1.2" +bytes = { version = "1.2", default-features = false } serde = { version = "1.0", optional = true } [dev-dependencies] From 8e9401f8e1c6896c86b01820c90ea0e90184a30b Mon Sep 17 00:00:00 2001 From: Rob Ede Date: Sat, 12 Nov 2022 13:19:09 +0000 Subject: [PATCH 043/410] prepare bytestring release 1.2.1 --- bytestring/CHANGES.md | 5 ++++- bytestring/Cargo.toml | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/bytestring/CHANGES.md b/bytestring/CHANGES.md index 0b1254ef..b096ed0d 100644 --- a/bytestring/CHANGES.md +++ b/bytestring/CHANGES.md @@ -1,7 +1,10 @@ # Changes ## Unreleased - 2022-xx-xx -- Fix no_std compatibility. [#471] + + +## 1.2.1 - 2022-11-12 +- Fix `#[no_std]` compatibility. [#471] [#471]: https://github.com/actix/actix-net/pull/471 diff --git a/bytestring/Cargo.toml b/bytestring/Cargo.toml index 92131e4a..1cf7bbe6 100644 --- a/bytestring/Cargo.toml +++ b/bytestring/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "bytestring" -version = "1.2.0" +version = "1.2.1" authors = [ "Nikolay Kim ", "Rob Ede ", From 2b83f08a40537f40ec92b7e3bcd514ff2da49e7b Mon Sep 17 00:00:00 2001 From: Yuki Okushi Date: Sat, 12 Nov 2022 23:00:33 +0900 Subject: [PATCH 044/410] Use old cargo-hack for 1.59.0 CI (#472) * Use old cargo-hack for 1.57.0 CI Signed-off-by: Yuki Okushi * Upgrade MSRV to 1.59.0 Signed-off-by: Yuki Okushi Signed-off-by: Yuki Okushi Co-authored-by: Rob Ede --- .github/workflows/ci.yml | 15 +++++++++------ actix-codec/CHANGES.md | 2 +- actix-macros/CHANGES.md | 2 +- actix-rt/CHANGES.md | 2 +- actix-server/CHANGES.md | 2 +- actix-service/CHANGES.md | 2 +- actix-tls/CHANGES.md | 2 +- actix-tracing/CHANGES.md | 2 +- actix-utils/CHANGES.md | 1 + bytestring/CHANGES.md | 1 + clippy.toml | 2 +- local-channel/CHANGES.md | 2 +- local-waker/CHANGES.md | 2 +- 13 files changed, 21 insertions(+), 16 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 5013ba1f..120c64c9 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -18,7 +18,7 @@ jobs: - { name: Windows (MinGW), os: windows-latest, triple: x86_64-pc-windows-gnu } - { name: Windows (32-bit), os: windows-latest, triple: i686-pc-windows-msvc } version: - - 1.57.0 + - 1.59.0 - stable name: ${{ matrix.target.name }} / ${{ matrix.version }} @@ -68,10 +68,13 @@ jobs: # uses: Swatinem/rust-cache@v1.2.0 - name: Install cargo-hack - uses: actions-rs/cargo@v1 - with: - command: install - args: cargo-hack + if: matrix.version != '1.59.0' + run: cargo install cargo-hack + + # newer cargo-hack versions require 1.60 or above + - name: Install cargo-hack (1.59.0) + if: matrix.version == '1.59.0' + run: cargo install cargo-hack --version=0.5.21 - name: Generate Cargo.lock uses: actions-rs/cargo@v1 @@ -123,7 +126,7 @@ jobs: sudo bash -c "ulimit -Sl 512 && ulimit -Hl 512 && PATH=$PATH:/usr/share/rust/.cargo/bin && RUSTUP_TOOLCHAIN=${{ matrix.version }} cargo ci-test && RUSTUP_TOOLCHAIN=${{ matrix.version }} cargo ci-test-linux" - name: Clear the cargo caches - if: matrix.version == 'stable' # MSRV(1.58) cargo-cache now fails to install on 1.57 + if: matrix.version == 'stable' # MSRV(1.58) cargo-cache now fails to install on 1.59 run: | cargo install cargo-cache --version 0.6.2 --no-default-features --features ci-autoclean cargo-cache diff --git a/actix-codec/CHANGES.md b/actix-codec/CHANGES.md index 2de0bcf6..16246be0 100644 --- a/actix-codec/CHANGES.md +++ b/actix-codec/CHANGES.md @@ -1,7 +1,7 @@ # Changes ## Unreleased - 2022-xx-xx -- Minimum supported Rust version (MSRV) is now 1.57. +- Minimum supported Rust version (MSRV) is now 1.59. ## 0.5.1 - 2022-03-15 diff --git a/actix-macros/CHANGES.md b/actix-macros/CHANGES.md index 9a25f7ed..a319f8c3 100644 --- a/actix-macros/CHANGES.md +++ b/actix-macros/CHANGES.md @@ -1,7 +1,7 @@ # Changes ## Unreleased - 2022-xx-xx -- Minimum supported Rust version (MSRV) is now 1.57. +- Minimum supported Rust version (MSRV) is now 1.59. ## 0.2.3 - 2021-10-19 diff --git a/actix-rt/CHANGES.md b/actix-rt/CHANGES.md index b19b2b7d..d3ad535f 100644 --- a/actix-rt/CHANGES.md +++ b/actix-rt/CHANGES.md @@ -2,7 +2,7 @@ ## Unreleased - 2022-xx-xx - Add `#[track_caller]` attribute to `spawn` functions and methods. [#454] -- Minimum supported Rust version (MSRV) is now 1.57. +- Minimum supported Rust version (MSRV) is now 1.59. [#454]: https://github.com/actix/actix-net/pull/454 diff --git a/actix-server/CHANGES.md b/actix-server/CHANGES.md index 1fdb63fd..54364edd 100644 --- a/actix-server/CHANGES.md +++ b/actix-server/CHANGES.md @@ -1,7 +1,7 @@ # Changes ## Unreleased - 2022-xx-xx -- Minimum supported Rust version (MSRV) is now 1.57. +- Minimum supported Rust version (MSRV) is now 1.59. ## 2.1.1 - 2022-03-09 diff --git a/actix-service/CHANGES.md b/actix-service/CHANGES.md index 5f4d5086..bd828c49 100644 --- a/actix-service/CHANGES.md +++ b/actix-service/CHANGES.md @@ -1,7 +1,7 @@ # Changes ## Unreleased - 2022-xx-xx -- Minimum supported Rust version (MSRV) is now 1.57. +- Minimum supported Rust version (MSRV) is now 1.59. ## 2.0.2 - 2021-12-18 diff --git a/actix-tls/CHANGES.md b/actix-tls/CHANGES.md index a4b7c75a..c807b74c 100644 --- a/actix-tls/CHANGES.md +++ b/actix-tls/CHANGES.md @@ -1,7 +1,7 @@ # Changes ## Unreleased - 2022-xx-xx -- Minimum supported Rust version (MSRV) is now 1.57. +- Minimum supported Rust version (MSRV) is now 1.59. ## 3.0.4 - 2022-03-15 diff --git a/actix-tracing/CHANGES.md b/actix-tracing/CHANGES.md index e4396377..938d536e 100644 --- a/actix-tracing/CHANGES.md +++ b/actix-tracing/CHANGES.md @@ -1,7 +1,7 @@ # Changes ## Unreleased - 2022-xx-xx -- Minimum supported Rust version (MSRV) is now 1.57. +- Minimum supported Rust version (MSRV) is now 1.59. ## 0.1.0 - 2020-01-15 diff --git a/actix-utils/CHANGES.md b/actix-utils/CHANGES.md index 76dace73..edd8e9c6 100644 --- a/actix-utils/CHANGES.md +++ b/actix-utils/CHANGES.md @@ -1,6 +1,7 @@ # Changes ## Unreleased - 2022-xx-xx +- Minimum supported Rust version (MSRV) is now 1.59. ## 3.0.1 - 2022-10-21 diff --git a/bytestring/CHANGES.md b/bytestring/CHANGES.md index b096ed0d..120f5a0e 100644 --- a/bytestring/CHANGES.md +++ b/bytestring/CHANGES.md @@ -1,6 +1,7 @@ # Changes ## Unreleased - 2022-xx-xx +- Minimum supported Rust version (MSRV) is now 1.59. ## 1.2.1 - 2022-11-12 diff --git a/clippy.toml b/clippy.toml index 5cccb362..abe19b3a 100644 --- a/clippy.toml +++ b/clippy.toml @@ -1 +1 @@ -msrv = "1.57" +msrv = "1.59" diff --git a/local-channel/CHANGES.md b/local-channel/CHANGES.md index 1b273273..d19848f0 100644 --- a/local-channel/CHANGES.md +++ b/local-channel/CHANGES.md @@ -1,7 +1,7 @@ # Changes ## Unreleased - 2022-xx-xx -- Minimum supported Rust version (MSRV) is now 1.57. +- Minimum supported Rust version (MSRV) is now 1.59. ## 0.1.3 - 2022-05-03 diff --git a/local-waker/CHANGES.md b/local-waker/CHANGES.md index bedfbea6..b36eacf5 100644 --- a/local-waker/CHANGES.md +++ b/local-waker/CHANGES.md @@ -1,7 +1,7 @@ # Changes ## Unreleased - 2022-xx-xx -- Minimum supported Rust version (MSRV) is now 1.57. +- Minimum supported Rust version (MSRV) is now 1.59. ## 0.1.3 - 2022-05-03 From fe38312db062264960676816e26f9295ff878d66 Mon Sep 17 00:00:00 2001 From: Riley Date: Tue, 20 Dec 2022 20:45:31 -0600 Subject: [PATCH 045/410] asonix/tokio uring 04 (#473) --- actix-rt/CHANGES.md | 2 ++ actix-rt/Cargo.toml | 2 +- actix-server/CHANGES.md | 3 +++ actix-server/Cargo.toml | 2 +- 4 files changed, 7 insertions(+), 2 deletions(-) diff --git a/actix-rt/CHANGES.md b/actix-rt/CHANGES.md index d3ad535f..ad54ed8d 100644 --- a/actix-rt/CHANGES.md +++ b/actix-rt/CHANGES.md @@ -3,8 +3,10 @@ ## Unreleased - 2022-xx-xx - Add `#[track_caller]` attribute to `spawn` functions and methods. [#454] - Minimum supported Rust version (MSRV) is now 1.59. +- Update tokio-uring to 0.4 [#454]: https://github.com/actix/actix-net/pull/454 +[#473]: https://github.com/actix/actix-net/pull/473 ## 2.7.0 - 2022-03-08 diff --git a/actix-rt/Cargo.toml b/actix-rt/Cargo.toml index dd5d423a..740e2e3a 100644 --- a/actix-rt/Cargo.toml +++ b/actix-rt/Cargo.toml @@ -30,7 +30,7 @@ tokio = { version = "1.13.1", features = ["rt", "net", "parking_lot", "signal", # runtime for `io-uring` feature [target.'cfg(target_os = "linux")'.dependencies] -tokio-uring = { version = "0.3", optional = true } +tokio-uring = { version = "0.4", optional = true } [dev-dependencies] tokio = { version = "1.13.1", features = ["full"] } diff --git a/actix-server/CHANGES.md b/actix-server/CHANGES.md index 54364edd..10f5376d 100644 --- a/actix-server/CHANGES.md +++ b/actix-server/CHANGES.md @@ -2,6 +2,9 @@ ## Unreleased - 2022-xx-xx - Minimum supported Rust version (MSRV) is now 1.59. +- Update tokio-uring to 0.4 + +[#473]: https://github.com/actix/actix-net/pull/473 ## 2.1.1 - 2022-03-09 diff --git a/actix-server/Cargo.toml b/actix-server/Cargo.toml index eb2152a3..dda7bbb8 100755 --- a/actix-server/Cargo.toml +++ b/actix-server/Cargo.toml @@ -37,7 +37,7 @@ tracing = { version = "0.1.30", default-features = false, features = ["log"] } # runtime for `io-uring` feature [target.'cfg(target_os = "linux")'.dependencies] -tokio-uring = { version = "0.3", optional = true } +tokio-uring = { version = "0.4", optional = true } [dev-dependencies] actix-codec = "0.5" From 8d964713c9defb9776ce78e5f152d2018d48fe3d Mon Sep 17 00:00:00 2001 From: Rob Ede Date: Wed, 21 Dec 2022 20:36:26 +0000 Subject: [PATCH 046/410] fix futures-util version range --- actix-macros/Cargo.toml | 8 ++++---- actix-service/Cargo.toml | 4 ++-- actix-tls/Cargo.toml | 4 ++-- actix-utils/Cargo.toml | 4 ++-- local-channel/Cargo.toml | 6 +++--- local-waker/Cargo.toml | 2 +- 6 files changed, 14 insertions(+), 14 deletions(-) diff --git a/actix-macros/Cargo.toml b/actix-macros/Cargo.toml index 75ac8b72..303568d5 100644 --- a/actix-macros/Cargo.toml +++ b/actix-macros/Cargo.toml @@ -16,12 +16,12 @@ edition = "2018" proc-macro = true [dependencies] -quote = "1.0.3" -syn = { version = "^1", features = ["full"] } +quote = "1" +syn = { version = "1", features = ["full"] } [dev-dependencies] -actix-rt = "2.0.0" +actix-rt = "2" -futures-util = { version = "0.3.7", default-features = false } +futures-util = { version = "0.3.17", default-features = false } rustversion = "1" trybuild = "1" diff --git a/actix-service/Cargo.toml b/actix-service/Cargo.toml index ccd2005e..5a0252db 100644 --- a/actix-service/Cargo.toml +++ b/actix-service/Cargo.toml @@ -17,11 +17,11 @@ name = "actix_service" path = "src/lib.rs" [dependencies] -futures-core = { version = "0.3.7", default-features = false } +futures-core = { version = "0.3.17", default-features = false } paste = "1" pin-project-lite = "0.2" [dev-dependencies] actix-rt = "2" actix-utils = "3" -futures-util = { version = "0.3.7", default-features = false } +futures-util = { version = "0.3.17", default-features = false } diff --git a/actix-tls/Cargo.toml b/actix-tls/Cargo.toml index 56591f35..9aef48c7 100755 --- a/actix-tls/Cargo.toml +++ b/actix-tls/Cargo.toml @@ -72,8 +72,8 @@ actix-codec = "0.5" actix-rt = "2.2" actix-server = "2" bytes = "1" -env_logger = "0.9" -futures-util = { version = "0.3.7", default-features = false, features = ["sink"] } +env_logger = "0.10" +futures-util = { version = "0.3.17", default-features = false, features = ["sink"] } log = "0.4" rcgen = "0.10" rustls-pemfile = "1" diff --git a/actix-utils/Cargo.toml b/actix-utils/Cargo.toml index bd3eb480..3ee199a2 100644 --- a/actix-utils/Cargo.toml +++ b/actix-utils/Cargo.toml @@ -21,6 +21,6 @@ pin-project-lite = "0.2" local-waker = "0.1" [dev-dependencies] -actix-rt = "2.0.0" -futures-util = { version = "0.3.7", default-features = false } +actix-rt = "2" +futures-util = { version = "0.3.17", default-features = false } static_assertions = "1.1" diff --git a/local-channel/Cargo.toml b/local-channel/Cargo.toml index 52d88c3a..f9424ccc 100644 --- a/local-channel/Cargo.toml +++ b/local-channel/Cargo.toml @@ -12,9 +12,9 @@ license = "MIT OR Apache-2.0" edition = "2018" [dependencies] -futures-core = { version = "0.3.7", default-features = false } -futures-sink = { version = "0.3.7", default-features = false } -futures-util = { version = "0.3.7", default-features = false } +futures-core = "0.3.17" +futures-sink = "0.3.17" +futures-util = { version = "0.3.17", default-features = false } local-waker = "0.1" [dev-dependencies] diff --git a/local-waker/Cargo.toml b/local-waker/Cargo.toml index 20ff299b..6a0b44cd 100644 --- a/local-waker/Cargo.toml +++ b/local-waker/Cargo.toml @@ -6,8 +6,8 @@ authors = [ "Nikolay Kim ", "Rob Ede ", ] -keywords = ["waker", "local", "futures", "no-std"] repository = "https://github.com/actix/actix-net.git" +keywords = ["waker", "local", "futures", "no-std"] categories = ["asynchronous", "no-std"] license = "MIT OR Apache-2.0" edition = "2018" From 05e7be337ee01f950e70f96945421598b2b63466 Mon Sep 17 00:00:00 2001 From: Rob Ede Date: Wed, 21 Dec 2022 20:37:04 +0000 Subject: [PATCH 047/410] prepare actix-rt release 2.8.0 --- actix-rt/CHANGES.md | 9 ++++++--- actix-rt/Cargo.toml | 2 +- actix-rt/README.md | 4 ++-- actix-server/Cargo.toml | 10 +++++----- 4 files changed, 14 insertions(+), 11 deletions(-) diff --git a/actix-rt/CHANGES.md b/actix-rt/CHANGES.md index ad54ed8d..caa8659f 100644 --- a/actix-rt/CHANGES.md +++ b/actix-rt/CHANGES.md @@ -1,23 +1,26 @@ # Changes ## Unreleased - 2022-xx-xx + + +## 2.8.0 - 2022-12-21 - Add `#[track_caller]` attribute to `spawn` functions and methods. [#454] +- Update `tokio-uring` dependency to `0.4`. [#473] - Minimum supported Rust version (MSRV) is now 1.59. -- Update tokio-uring to 0.4 [#454]: https://github.com/actix/actix-net/pull/454 [#473]: https://github.com/actix/actix-net/pull/473 ## 2.7.0 - 2022-03-08 -- Update `tokio-uring` dependency to `0.3.0`. [#448] +- Update `tokio-uring` dependency to `0.3`. [#448] - Minimum supported Rust version (MSRV) is now 1.49. [#448]: https://github.com/actix/actix-net/pull/448 ## 2.6.0 - 2022-01-12 -- Update `tokio-uring` dependency to `0.2.0`. [#436] +- Update `tokio-uring` dependency to `0.2`. [#436] [#436]: https://github.com/actix/actix-net/pull/436 diff --git a/actix-rt/Cargo.toml b/actix-rt/Cargo.toml index 740e2e3a..46f9ec14 100644 --- a/actix-rt/Cargo.toml +++ b/actix-rt/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "actix-rt" -version = "2.7.0" +version = "2.8.0" authors = [ "Nikolay Kim ", "Rob Ede ", diff --git a/actix-rt/README.md b/actix-rt/README.md index e598f0b6..d4e0da89 100644 --- a/actix-rt/README.md +++ b/actix-rt/README.md @@ -3,11 +3,11 @@ > Tokio-based single-threaded async runtime for the Actix ecosystem. [![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.7.0)](https://docs.rs/actix-rt/2.7.0) +[![Documentation](https://docs.rs/actix-rt/badge.svg?version=2.8.0)](https://docs.rs/actix-rt/2.8.0) [![Version](https://img.shields.io/badge/rustc-1.46+-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.7.0/status.svg)](https://deps.rs/crate/actix-rt/2.7.0) +[![dependency status](https://deps.rs/crate/actix-rt/2.8.0/status.svg)](https://deps.rs/crate/actix-rt/2.8.0) ![Download](https://img.shields.io/crates/d/actix-rt.svg) [![Chat on Discord](https://img.shields.io/discord/771444961383153695?label=chat&logo=discord)](https://discord.gg/WghFtEH6Hb) diff --git a/actix-server/Cargo.toml b/actix-server/Cargo.toml index dda7bbb8..7b157795 100755 --- a/actix-server/Cargo.toml +++ b/actix-server/Cargo.toml @@ -23,12 +23,12 @@ default = [] io-uring = ["tokio-uring", "actix-rt/io-uring"] [dependencies] -actix-rt = { version = "2.7", default-features = false } +actix-rt = { version = "2.8", default-features = false } actix-service = "2" actix-utils = "3" -futures-core = { version = "0.3.7", default-features = false, features = ["alloc"] } -futures-util = { version = "0.3.7", default-features = false, features = ["alloc"] } +futures-core = { version = "0.3.17", default-features = false, features = ["alloc"] } +futures-util = { version = "0.3.17", default-features = false, features = ["alloc"] } mio = { version = "0.8", features = ["os-poll", "net"] } num_cpus = "1.13" socket2 = "0.4.2" @@ -41,9 +41,9 @@ tokio-uring = { version = "0.4", optional = true } [dev-dependencies] actix-codec = "0.5" -actix-rt = "2.6" +actix-rt = "2.8" bytes = "1" env_logger = "0.9" -futures-util = { version = "0.3.7", default-features = false, features = ["sink", "async-await-macro"] } +futures-util = { version = "0.3.17", default-features = false, features = ["sink", "async-await-macro"] } tokio = { version = "1.13.1", features = ["io-util", "rt-multi-thread", "macros", "fs"] } From 7e47bf40552eb38f417babfeb28a9ba0850441f4 Mon Sep 17 00:00:00 2001 From: Rob Ede Date: Wed, 21 Dec 2022 20:37:51 +0000 Subject: [PATCH 048/410] prepare actix-server release 2.2.0 --- actix-server/CHANGES.md | 9 ++++++--- actix-server/Cargo.toml | 2 +- actix-server/README.md | 4 ++-- 3 files changed, 9 insertions(+), 6 deletions(-) diff --git a/actix-server/CHANGES.md b/actix-server/CHANGES.md index 10f5376d..f3919a16 100644 --- a/actix-server/CHANGES.md +++ b/actix-server/CHANGES.md @@ -1,8 +1,11 @@ # Changes ## Unreleased - 2022-xx-xx + + +## 2.2.0 - 2022-12-21 - Minimum supported Rust version (MSRV) is now 1.59. -- Update tokio-uring to 0.4 +- Update `tokio-uring` dependency to `0.4`. [#473] [#473]: https://github.com/actix/actix-net/pull/473 @@ -12,7 +15,7 @@ ## 2.1.0 - 2022-03-08 -- Update `tokio-uring` dependency to `0.3.0`. [#448] +- Update `tokio-uring` dependency to `0.3`. [#448] - Logs emitted now use the `tracing` crate with `log` compatibility. [#448] - Wait for accept thread to stop before sending completion signal. [#443] @@ -25,7 +28,7 @@ ## 2.0.0-rc.4 - 2022-01-12 -- Update `tokio-uring` dependency to `0.2.0`. [#436] +- Update `tokio-uring` dependency to `0.2`. [#436] [#436]: https://github.com/actix/actix-net/pull/436 diff --git a/actix-server/Cargo.toml b/actix-server/Cargo.toml index 7b157795..de3638a2 100755 --- a/actix-server/Cargo.toml +++ b/actix-server/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "actix-server" -version = "2.1.1" +version = "2.2.0" authors = [ "Nikolay Kim ", "Rob Ede ", diff --git a/actix-server/README.md b/actix-server/README.md index 8fdef1f5..9b500765 100644 --- a/actix-server/README.md +++ b/actix-server/README.md @@ -3,10 +3,10 @@ > General purpose TCP server built for the Actix ecosystem. [![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.1.1)](https://docs.rs/actix-server/2.1.1) +[![Documentation](https://docs.rs/actix-server/badge.svg?version=2.2.0)](https://docs.rs/actix-server/2.2.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) ![License](https://img.shields.io/crates/l/actix-server.svg) -[![Dependency Status](https://deps.rs/crate/actix-server/2.1.1/status.svg)](https://deps.rs/crate/actix-server/2.1.1) +[![Dependency Status](https://deps.rs/crate/actix-server/2.2.0/status.svg)](https://deps.rs/crate/actix-server/2.2.0) ![Download](https://img.shields.io/crates/d/actix-server.svg) [![Chat on Discord](https://img.shields.io/discord/771444961383153695?label=chat&logo=discord)](https://discord.gg/NWpN5mmg3x) From d7afd60606668ca411968924cf9f09ceac7841de Mon Sep 17 00:00:00 2001 From: Rob Ede Date: Wed, 21 Dec 2022 21:17:21 +0000 Subject: [PATCH 049/410] workaround env-logger msrv --- .github/workflows/ci.yml | 7 +++++++ actix-server/Cargo.toml | 2 +- actix-tls/examples/accept-rustls.rs | 3 +-- 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 120c64c9..47d474ef 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -76,6 +76,13 @@ jobs: if: matrix.version == '1.59.0' run: cargo install cargo-hack --version=0.5.21 + - name: workaround MSRV issues + if: matrix.version == 'stable' + run: | + cargo install cargo-edit --version=0.8.0 + cargo add env_logger@0.9 --dev -p=actix-tls + cargo add env_logger@0.9 --dev -p=actix-server + - name: Generate Cargo.lock uses: actions-rs/cargo@v1 with: { command: generate-lockfile } diff --git a/actix-server/Cargo.toml b/actix-server/Cargo.toml index de3638a2..e23880f3 100755 --- a/actix-server/Cargo.toml +++ b/actix-server/Cargo.toml @@ -44,6 +44,6 @@ actix-codec = "0.5" actix-rt = "2.8" bytes = "1" -env_logger = "0.9" +env_logger = "0.10" futures-util = { version = "0.3.17", default-features = false, features = ["sink", "async-await-macro"] } tokio = { version = "1.13.1", features = ["io-util", "rt-multi-thread", "macros", "fs"] } diff --git a/actix-tls/examples/accept-rustls.rs b/actix-tls/examples/accept-rustls.rs index 6a90616d..7d964d10 100644 --- a/actix-tls/examples/accept-rustls.rs +++ b/actix-tls/examples/accept-rustls.rs @@ -41,8 +41,7 @@ use tracing::info; #[actix_rt::main] async fn main() -> io::Result<()> { - env::set_var("RUST_LOG", "info"); - env_logger::init(); + env_logger::init_from_env(env_logger::Env::default().default_filter_or("info")); // Load TLS key and cert files let cert_file = &mut BufReader::new(File::open("./examples/cert.pem").unwrap()); From d973d5974ad8fe5ee76c200ca88b91c498c47ec0 Mon Sep 17 00:00:00 2001 From: Rob Ede Date: Wed, 21 Dec 2022 23:09:16 +0000 Subject: [PATCH 050/410] fix msrv ci --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 47d474ef..a087e884 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -77,7 +77,7 @@ jobs: run: cargo install cargo-hack --version=0.5.21 - name: workaround MSRV issues - if: matrix.version == 'stable' + if: matrix.version == '1.59.0' run: | cargo install cargo-edit --version=0.8.0 cargo add env_logger@0.9 --dev -p=actix-tls From dde38bbe064e2676622316170ad2c8456a6fc8e1 Mon Sep 17 00:00:00 2001 From: Juan Aguilar Santillana Date: Mon, 2 Jan 2023 14:36:46 +0100 Subject: [PATCH 051/410] remove unnecessary Pin in poll_recv calls (#475) --- actix-rt/src/arbiter.rs | 2 +- actix-rt/src/system.rs | 2 +- actix-server/src/server.rs | 2 +- actix-server/src/signals.rs | 2 +- actix-server/src/worker.rs | 8 +++----- 5 files changed, 7 insertions(+), 9 deletions(-) diff --git a/actix-rt/src/arbiter.rs b/actix-rt/src/arbiter.rs index 4c9a588e..a84e25ea 100644 --- a/actix-rt/src/arbiter.rs +++ b/actix-rt/src/arbiter.rs @@ -303,7 +303,7 @@ impl Future for ArbiterRunner { fn poll(mut self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll { // process all items currently buffered in channel loop { - match ready!(Pin::new(&mut self.rx).poll_recv(cx)) { + match ready!(self.rx.poll_recv(cx)) { // channel closed; no more messages can be received None => return Poll::Ready(()), diff --git a/actix-rt/src/system.rs b/actix-rt/src/system.rs index f3a5a4d8..d0494a22 100644 --- a/actix-rt/src/system.rs +++ b/actix-rt/src/system.rs @@ -292,7 +292,7 @@ impl Future for SystemController { fn poll(mut self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll { // process all items currently buffered in channel loop { - match ready!(Pin::new(&mut self.cmd_rx).poll_recv(cx)) { + match ready!(self.cmd_rx.poll_recv(cx)) { // channel closed; no more messages can be received None => return Poll::Ready(()), diff --git a/actix-server/src/server.rs b/actix-server/src/server.rs index a7bd5b53..7e092e2b 100644 --- a/actix-server/src/server.rs +++ b/actix-server/src/server.rs @@ -363,6 +363,6 @@ impl Stream for ServerEventMultiplexer { } } - Pin::new(&mut this.cmd_rx).poll_recv(cx) + this.cmd_rx.poll_recv(cx) } } diff --git a/actix-server/src/signals.rs b/actix-server/src/signals.rs index 6a212d83..2b01f015 100644 --- a/actix-server/src/signals.rs +++ b/actix-server/src/signals.rs @@ -96,7 +96,7 @@ impl Future for Signals { #[cfg(unix)] { for (sig, fut) in self.signals.iter_mut() { - if Pin::new(fut).poll_recv(cx).is_ready() { + if fut.poll_recv(cx).is_ready() { trace!("{} received", sig); return Poll::Ready(*sig); } diff --git a/actix-server/src/worker.rs b/actix-server/src/worker.rs index 35ba1366..2765ae4a 100644 --- a/actix-server/src/worker.rs +++ b/actix-server/src/worker.rs @@ -585,9 +585,7 @@ impl Future for ServerWorker { let this = self.as_mut().get_mut(); // `StopWorker` message handler - if let Poll::Ready(Some(Stop { graceful, tx })) = - Pin::new(&mut this.stop_rx).poll_recv(cx) - { + if let Poll::Ready(Some(Stop { graceful, tx })) = this.stop_rx.poll_recv(cx) { let num = this.counter.total(); if num == 0 { info!("shutting down idle worker"); @@ -649,7 +647,7 @@ impl Future for ServerWorker { } WorkerState::Shutdown(ref mut shutdown) => { // drop all pending connections in rx channel. - while let Poll::Ready(Some(conn)) = Pin::new(&mut this.conn_rx).poll_recv(cx) { + while let Poll::Ready(Some(conn)) = this.conn_rx.poll_recv(cx) { // WorkerCounterGuard is needed as Accept thread has incremented counter. // It's guard's job to decrement the counter together with drop of Conn. let guard = this.counter.guard(); @@ -696,7 +694,7 @@ impl Future for ServerWorker { } // handle incoming io stream - match ready!(Pin::new(&mut this.conn_rx).poll_recv(cx)) { + match ready!(this.conn_rx.poll_recv(cx)) { Some(msg) => { let guard = this.counter.guard(); let _ = this.services[msg.token].service.call((guard, msg.io)); From d13461b33749ebeee78539f01c8d4931d4433295 Mon Sep 17 00:00:00 2001 From: Rob Ede Date: Tue, 10 Jan 2023 08:56:38 +0000 Subject: [PATCH 052/410] use secure tokio version range see RUSTSEC-2023-0001 part of actix/actix-web#2962 --- actix-codec/Cargo.toml | 2 +- actix-rt/Cargo.toml | 4 ++-- actix-server/Cargo.toml | 4 ++-- actix-tls/Cargo.toml | 2 +- local-channel/Cargo.toml | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/actix-codec/Cargo.toml b/actix-codec/Cargo.toml index 0b63d214..900873f2 100644 --- a/actix-codec/Cargo.toml +++ b/actix-codec/Cargo.toml @@ -23,7 +23,7 @@ futures-core = { version = "0.3.7", default-features = false } futures-sink = { version = "0.3.7", default-features = false } memchr = "2.3" pin-project-lite = "0.2" -tokio = "1.13.1" +tokio = "1.18.4" tokio-util = { version = "0.7", features = ["codec", "io"] } tracing = { version = "0.1.30", default-features = false, features = ["log"] } diff --git a/actix-rt/Cargo.toml b/actix-rt/Cargo.toml index 46f9ec14..70716888 100644 --- a/actix-rt/Cargo.toml +++ b/actix-rt/Cargo.toml @@ -26,12 +26,12 @@ io-uring = ["tokio-uring"] actix-macros = { version = "0.2.3", optional = true } futures-core = { version = "0.3", default-features = false } -tokio = { version = "1.13.1", features = ["rt", "net", "parking_lot", "signal", "sync", "time"] } +tokio = { version = "1.18.4", features = ["rt", "net", "parking_lot", "signal", "sync", "time"] } # runtime for `io-uring` feature [target.'cfg(target_os = "linux")'.dependencies] tokio-uring = { version = "0.4", optional = true } [dev-dependencies] -tokio = { version = "1.13.1", features = ["full"] } +tokio = { version = "1.18.4", features = ["full"] } hyper = { version = "0.14.10", default-features = false, features = ["server", "tcp", "http1"] } diff --git a/actix-server/Cargo.toml b/actix-server/Cargo.toml index e23880f3..bc0187e8 100755 --- a/actix-server/Cargo.toml +++ b/actix-server/Cargo.toml @@ -32,7 +32,7 @@ futures-util = { version = "0.3.17", default-features = false, features = ["allo mio = { version = "0.8", features = ["os-poll", "net"] } num_cpus = "1.13" socket2 = "0.4.2" -tokio = { version = "1.13.1", features = ["sync"] } +tokio = { version = "1.18.4", features = ["sync"] } tracing = { version = "0.1.30", default-features = false, features = ["log"] } # runtime for `io-uring` feature @@ -46,4 +46,4 @@ actix-rt = "2.8" bytes = "1" env_logger = "0.10" futures-util = { version = "0.3.17", default-features = false, features = ["sink", "async-await-macro"] } -tokio = { version = "1.13.1", features = ["io-util", "rt-multi-thread", "macros", "fs"] } +tokio = { version = "1.18.4", features = ["io-util", "rt-multi-thread", "macros", "fs"] } diff --git a/actix-tls/Cargo.toml b/actix-tls/Cargo.toml index 9aef48c7..f7df5430 100755 --- a/actix-tls/Cargo.toml +++ b/actix-tls/Cargo.toml @@ -49,7 +49,7 @@ actix-utils = "3" futures-core = { version = "0.3.7", default-features = false, features = ["alloc"] } impl-more = "0.1" pin-project-lite = "0.2.7" -tokio = "1.13.1" +tokio = "1.18.4" tokio-util = "0.7" tracing = { version = "0.1.30", default-features = false, features = ["log"] } diff --git a/local-channel/Cargo.toml b/local-channel/Cargo.toml index f9424ccc..8484577d 100644 --- a/local-channel/Cargo.toml +++ b/local-channel/Cargo.toml @@ -18,4 +18,4 @@ futures-util = { version = "0.3.17", default-features = false } local-waker = "0.1" [dev-dependencies] -tokio = { version = "1.13.1", features = ["rt", "macros"] } +tokio = { version = "1.18.4", features = ["rt", "macros"] } From 045cf3f3e8fd6a86e04dde10e096cc3b8a9dd49c Mon Sep 17 00:00:00 2001 From: Yuki Okushi Date: Sat, 28 Jan 2023 05:36:05 +0900 Subject: [PATCH 053/410] Upgrade GHA workflows to remove deprecation warnings (#477) --- .github/workflows/ci-master.yml | 117 ++++++++++++------------------- .github/workflows/ci.yml | 50 ++++++------- .github/workflows/clippy-fmt.yml | 39 +++++------ .github/workflows/upload-doc.yml | 22 +++--- 4 files changed, 88 insertions(+), 140 deletions(-) diff --git a/.github/workflows/ci-master.yml b/.github/workflows/ci-master.yml index 29c5d8c7..d77be7b0 100644 --- a/.github/workflows/ci-master.yml +++ b/.github/workflows/ci-master.yml @@ -29,7 +29,7 @@ jobs: if: matrix.target.os == 'macos-latest' run: sudo ifconfig lo0 alias 127.0.0.3 - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 # install OpenSSL on Windows - name: Set vcpkg root @@ -43,11 +43,10 @@ jobs: run: vcpkg install openssl:x86-windows - name: Install ${{ matrix.version }} - uses: actions-rs/toolchain@v1 - with: - toolchain: ${{ matrix.version }}-${{ matrix.target.triple }} - profile: minimal - override: true + run: | + rustup set profile minimal + rustup install ${{ matrix.version }}-${{ matrix.target.triple }} + rustup override set ${{ matrix.version }}-${{ matrix.target.triple }} # - name: Install MSYS2 # if: matrix.target.triple == 'x86_64-pc-windows-gnu' @@ -59,43 +58,34 @@ jobs: # msys2 -c 'pacman --noconfirm -S base-devel pkg-config' # - name: Generate Cargo.lock - # uses: actions-rs/cargo@v1 - # with: { command: generate-lockfile } + # run: cargo generate-lockfile # - name: Cache Dependencies - # uses: Swatinem/rust-cache@v1.2.0 + # uses: Swatinem/rust-cache@v2.2.0 - name: Install cargo-hack - uses: actions-rs/cargo@v1 - with: - command: install - args: cargo-hack + run: cargo install cargo-hack - name: check lib if: > matrix.target.os != 'ubuntu-latest' && matrix.target.triple != 'x86_64-pc-windows-gnu' - uses: actions-rs/cargo@v1 - with: { command: ci-check-lib } + run: cargo ci-check-lib - name: check lib if: matrix.target.os == 'ubuntu-latest' - uses: actions-rs/cargo@v1 - with: { command: ci-check-lib-linux } + run: cargo ci-check-lib-linux - name: check lib if: matrix.target.triple == 'x86_64-pc-windows-gnu' - uses: actions-rs/cargo@v1 - with: { command: ci-check-min } - + run: cargo ci-check-min + - name: check full # TODO: compile OpenSSL and run tests on MinGW if: > matrix.target.os != 'ubuntu-latest' && matrix.target.triple != 'x86_64-pc-windows-gnu' - uses: actions-rs/cargo@v1 - with: { command: ci-check } + run: cargo ci-check - name: check all if: matrix.target.os == 'ubuntu-latest' - uses: actions-rs/cargo@v1 - with: { command: ci-check-linux } + run: cargo ci-check-linux - name: tests if: > @@ -116,21 +106,19 @@ jobs: name: coverage runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 - name: Install Rust (nightly) - uses: actions-rs/toolchain@v1 - with: - toolchain: nightly - profile: minimal - override: true + run: | + rustup set profile minimal + rustup install nightly + rustup override set nightly - name: Generate Cargo.lock - uses: actions-rs/cargo@v1 - with: { command: generate-lockfile } + run: cargo generate-lockfile - name: Cache Dependencies - uses: Swatinem/rust-cache@v1.3.0 - + uses: Swatinem/rust-cache@v2.2.0 + - name: Generate coverage file if: github.ref == 'refs/heads/master' run: | @@ -138,73 +126,54 @@ jobs: cargo tarpaulin --out Xml --verbose - name: Upload to Codecov if: github.ref == 'refs/heads/master' - uses: codecov/codecov-action@v1 - with: { file: cobertura.xml } + uses: codecov/codecov-action@v3 + with: { files: cobertura.xml } minimal-versions: name: minimal versions runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 - name: Install Rust (nightly) - uses: actions-rs/toolchain@v1 - with: - toolchain: nightly - profile: minimal - override: true + run: | + rustup set profile minimal + rustup install nightly + rustup override set nightly - name: Generate Cargo.lock - uses: actions-rs/cargo@v1 - with: { command: generate-lockfile } + run: cargo generate-lockfile - name: Cache Dependencies - uses: Swatinem/rust-cache@v1.3.0 + uses: Swatinem/rust-cache@v2.2.0 - name: Install cargo-minimal-versions - uses: actions-rs/cargo@v1 - with: - command: install - args: cargo-minimal-versions + run: cargo install cargo-minimal-versions - name: Install cargo-hack - uses: actions-rs/cargo@v1 - with: - command: install - args: cargo-hack + run: cargo install cargo-hack - name: Check With Minimal Versions - uses: actions-rs/cargo@v1 - with: - command: minimal-versions - args: check + run: cargo minimal-versions check nextest: name: nextest runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 - name: Install Rust - uses: actions-rs/toolchain@v1 - with: - toolchain: stable - profile: minimal - override: true + run: | + rustup set profile minimal + rustup install stable + rustup override set stable - name: Generate Cargo.lock - uses: actions-rs/cargo@v1 - with: { command: generate-lockfile } + run: cargo generate-lockfile - name: Cache Dependencies - uses: Swatinem/rust-cache@v1.3.0 + uses: Swatinem/rust-cache@v2.2.0 - name: Install cargo-nextest - uses: actions-rs/cargo@v1 - with: - command: install - args: cargo-nextest + run: cargo install cargo-nextest - name: Test with cargo-nextest - uses: actions-rs/cargo@v1 - with: - command: nextest - args: run + run: cargo nextest run diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index a087e884..2434ea28 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -32,7 +32,7 @@ jobs: if: matrix.target.os == 'macos-latest' run: sudo ifconfig lo0 alias 127.0.0.3 - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 # install OpenSSL on Windows - name: Set vcpkg root @@ -46,11 +46,10 @@ jobs: run: vcpkg install openssl:x86-windows - name: Install ${{ matrix.version }} - uses: actions-rs/toolchain@v1 - with: - toolchain: ${{ matrix.version }}-${{ matrix.target.triple }} - profile: minimal - override: true + run: | + rustup set profile minimal + rustup install ${{ matrix.version }}-${{ matrix.target.triple }} + rustup override set ${{ matrix.version }}-${{ matrix.target.triple }} # - name: Install MSYS2 # if: matrix.target.triple == 'x86_64-pc-windows-gnu' @@ -62,10 +61,9 @@ jobs: # msys2 -c 'pacman --noconfirm -S base-devel pkg-config' # - name: Generate Cargo.lock - # uses: actions-rs/cargo@v1 - # with: { command: generate-lockfile } + # run: cargo generate-lockfile # - name: Cache Dependencies - # uses: Swatinem/rust-cache@v1.2.0 + # uses: Swatinem/rust-cache@v2.2.0 - name: Install cargo-hack if: matrix.version != '1.59.0' @@ -84,8 +82,7 @@ jobs: cargo add env_logger@0.9 --dev -p=actix-server - name: Generate Cargo.lock - uses: actions-rs/cargo@v1 - with: { command: generate-lockfile } + run: cargo generate-lockfile - name: workaround MSRV issues if: matrix.version != 'stable' @@ -96,28 +93,23 @@ jobs: if: > matrix.target.os != 'ubuntu-latest' && matrix.target.triple != 'x86_64-pc-windows-gnu' - uses: actions-rs/cargo@v1 - with: { command: ci-check-lib } + run: cargo ci-check-lib - name: check lib if: matrix.target.os == 'ubuntu-latest' - uses: actions-rs/cargo@v1 - with: { command: ci-check-lib-linux } + run: cargo ci-check-lib-linux - name: check lib if: matrix.target.triple == 'x86_64-pc-windows-gnu' - uses: actions-rs/cargo@v1 - with: { command: ci-check-min } + run: cargo ci-check-min - name: check full # TODO: compile OpenSSL and run tests on MinGW if: > matrix.target.os != 'ubuntu-latest' && matrix.target.triple != 'x86_64-pc-windows-gnu' - uses: actions-rs/cargo@v1 - with: { command: ci-check } + run: cargo ci-check - name: check all if: matrix.target.os == 'ubuntu-latest' - uses: actions-rs/cargo@v1 - with: { command: ci-check-linux } + run: cargo ci-check-linux - name: tests if: matrix.target.os == 'macos-latest' @@ -143,20 +135,18 @@ jobs: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 - name: Install Rust (nightly) - uses: actions-rs/toolchain@v1 - with: - toolchain: nightly-x86_64-unknown-linux-gnu - profile: minimal - override: true + run: | + rustup set profile minimal + rustup install nightly + rustup override set nightly - name: Generate Cargo.lock - uses: actions-rs/cargo@v1 - with: { command: generate-lockfile } + run: cargo generate-lockfile - name: Cache Dependencies - uses: Swatinem/rust-cache@v1.3.0 + uses: Swatinem/rust-cache@v2.2.0 - name: doc tests io-uring run: | diff --git a/.github/workflows/clippy-fmt.yml b/.github/workflows/clippy-fmt.yml index ca637beb..978a1a38 100644 --- a/.github/workflows/clippy-fmt.yml +++ b/.github/workflows/clippy-fmt.yml @@ -8,35 +8,30 @@ jobs: fmt: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 - name: Install Rust - uses: actions-rs/toolchain@v1 - with: - toolchain: stable - profile: minimal - components: rustfmt - override: true + run: | + rustup set profile minimal + rustup install stable + rustup override set stable + rustup component add rustfmt - name: Rustfmt Check - uses: actions-rs/cargo@v1 - with: - command: fmt - args: --all -- --check + run: cargo fmt --all -- --check clippy: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 - name: Install Rust - uses: actions-rs/toolchain@v1 + run: | + rustup set profile minimal + rustup install stable + rustup override set stable + rustup component add clippy + - uses: giraffate/clippy-action@v1 with: - toolchain: stable - profile: minimal - components: clippy - override: true - - name: Clippy Check - uses: actions-rs/clippy-check@v1 - with: - token: ${{ secrets.GITHUB_TOKEN }} - args: --workspace --all-features --tests --examples --bins -- -Dclippy::todo + reporter: "github-pr-check" + github_token: ${{ secrets.GITHUB_TOKEN }} + clippy_flags: --workspace --all-features --tests --examples --bins -- -Dclippy::todo diff --git a/.github/workflows/upload-doc.yml b/.github/workflows/upload-doc.yml index 36044230..a4f3928d 100644 --- a/.github/workflows/upload-doc.yml +++ b/.github/workflows/upload-doc.yml @@ -9,27 +9,21 @@ jobs: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 - name: Install Rust - uses: actions-rs/toolchain@v1 - with: - toolchain: nightly-x86_64-unknown-linux-gnu - profile: minimal - override: true + run: | + rustup set profile minimal + rustup install nightly + rustup override set nightly - name: Build Docs - uses: actions-rs/cargo@v1 - with: - command: doc - args: --workspace --all-features --no-deps + run: cargo doc --workspace --all-features --no-deps - name: Tweak HTML run: echo '' > target/doc/index.html - name: Deploy to GitHub Pages - uses: JamesIves/github-pages-deploy-action@3.7.1 + uses: JamesIves/github-pages-deploy-action@v4 with: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - BRANCH: gh-pages - FOLDER: target/doc + folder: target/doc From 878d3a1c748a4c287dfe0c02eb8ea84ac4c1af5c Mon Sep 17 00:00:00 2001 From: Rob Ede Date: Sun, 26 Feb 2023 16:24:48 +0000 Subject: [PATCH 054/410] impl AsRef --- bytestring/CHANGES.md | 1 + bytestring/src/lib.rs | 56 ++++++++++++++++++++++++++++++------------- 2 files changed, 40 insertions(+), 17 deletions(-) diff --git a/bytestring/CHANGES.md b/bytestring/CHANGES.md index 120f5a0e..826ff3b8 100644 --- a/bytestring/CHANGES.md +++ b/bytestring/CHANGES.md @@ -1,6 +1,7 @@ # Changes ## Unreleased - 2022-xx-xx +- Implement `AsRef` for `ByteString`. - Minimum supported Rust version (MSRV) is now 1.59. diff --git a/bytestring/src/lib.rs b/bytestring/src/lib.rs index 7058c106..d75a05f5 100644 --- a/bytestring/src/lib.rs +++ b/bytestring/src/lib.rs @@ -51,22 +51,26 @@ impl ByteString { Self(src) } - /// Returns a byte string that is equivalent to the given `subset`. + /// Returns a new byte string that is equivalent to the given `subset`. /// /// When processing a `ByteString` buffer with other tools, one often gets a `&str` which is in - /// fact a slice of the `ByteString`; i.e., a subset of it. This function turns that `&str` into - /// another `ByteString`, as if one had sliced the `ByteString` with the offsets that correspond - /// to `subset`. + /// fact a slice of the original `ByteString`; i.e., a subset of it. This function turns that + /// `&str` into another `ByteString`, as if one had sliced the `ByteString` with the offsets + /// that correspond to `subset`. /// /// Corresponds to [`Bytes::slice_ref`]. /// /// This operation is `O(1)`. /// /// # Panics - /// Requires that the given `subset` str is in fact contained within the `ByteString` buffer; - /// otherwise this function will panic. + /// + /// Panics if `subset` is not a sub-slice of this byte string. + /// + /// Note that strings which are only subsets from an equality perspective do not uphold this + /// requirement; see examples. /// /// # Examples + /// /// ``` /// # use bytestring::ByteString; /// let string = ByteString::from_static(" foo "); @@ -74,6 +78,13 @@ impl ByteString { /// let substring = string.slice_ref(subset); /// assert_eq!(substring, "foo"); /// ``` + /// + /// ```should_panic + /// # use bytestring::ByteString; + /// // panics because the given slice is not derived from the original byte string, despite + /// // being a logical subset of the string + /// ByteString::from_static("foo bar").slice_ref("foo"); + /// ``` pub fn slice_ref(&self, subset: &str) -> Self { Self(self.0.slice_ref(subset.as_bytes())) } @@ -91,6 +102,12 @@ impl> PartialEq for ByteString { } } +impl AsRef for ByteString { + fn as_ref(&self) -> &ByteString { + self + } +} + impl AsRef<[u8]> for ByteString { fn as_ref(&self) -> &[u8] { self.0.as_ref() @@ -276,7 +293,10 @@ mod serde { #[cfg(test)] mod test { use alloc::borrow::ToOwned; - use core::hash::{Hash, Hasher}; + use core::{ + hash::{Hash, Hasher}, + panic::{RefUnwindSafe, UnwindSafe}, + }; use ahash::AHasher; use static_assertions::assert_impl_all; @@ -286,16 +306,7 @@ mod test { assert_impl_all!(ByteString: Send, Sync, Unpin, Sized); assert_impl_all!(ByteString: Clone, Default, Eq, PartialOrd, Ord); assert_impl_all!(ByteString: fmt::Debug, fmt::Display); - - #[rustversion::since(1.56)] - mod above_1_56_impls { - // `[Ref]UnwindSafe` traits were only in std until rust 1.56 - - use core::panic::{RefUnwindSafe, UnwindSafe}; - - use super::*; - assert_impl_all!(ByteString: UnwindSafe, RefUnwindSafe); - } + assert_impl_all!(ByteString: UnwindSafe, RefUnwindSafe); #[test] fn test_partial_eq() { @@ -377,9 +388,20 @@ mod test { assert_eq!(s, r#""nice bytes""#); } + #[test] + fn slice_ref() { + let string = ByteString::from_static(" foo "); + let subset = string.trim(); + // subset is derived from original byte string + let substring = string.slice_ref(subset); + assert_eq!(substring, "foo"); + } + #[test] #[should_panic] fn test_slice_ref_catches_not_a_subset() { + // panics because the given slice is not derived from the original byte string, despite + // being a logical subset of the string ByteString::from_static("foo bar").slice_ref("foo"); } } From 9b388a83c91111b28c41a95329b3e31dce056dae Mon Sep 17 00:00:00 2001 From: Rob Ede Date: Sun, 26 Feb 2023 16:26:19 +0000 Subject: [PATCH 055/410] reinstate actix-macros trybuild tests --- actix-macros/tests/trybuild.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/actix-macros/tests/trybuild.rs b/actix-macros/tests/trybuild.rs index 2af99636..666769df 100644 --- a/actix-macros/tests/trybuild.rs +++ b/actix-macros/tests/trybuild.rs @@ -1,4 +1,4 @@ -#[rustversion::stable(1.46)] // MSRV +#[rustversion::stable(1.59)] // MSRV #[test] fn compile_macros() { let t = trybuild::TestCases::new(); From fbb53f54efc89cd116c1c24f9c7f776cfecdf90f Mon Sep 17 00:00:00 2001 From: Rob Ede Date: Fri, 3 Mar 2023 22:36:13 +0000 Subject: [PATCH 056/410] format changelogs with prettier --- CODE_OF_CONDUCT.md | 22 ++++----- README.md | 2 +- actix-codec/CHANGES.md | 33 +++++++------- actix-macros/CHANGES.md | 15 +++--- actix-rt/CHANGES.md | 71 ++++++++++++++--------------- actix-server/CHANGES.md | 98 +++++++++++++++++++--------------------- actix-service/CHANGES.md | 92 ++++++++++++++++++------------------- actix-tls/CHANGES.md | 63 +++++++++++++------------- actix-tracing/CHANGES.md | 3 +- actix-utils/CHANGES.md | 79 ++++++++++++++++---------------- bytestring/CHANGES.md | 21 +++++---- local-channel/CHANGES.md | 7 +-- local-waker/CHANGES.md | 7 +-- 13 files changed, 255 insertions(+), 258 deletions(-) diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md index ae97b324..9628fb82 100644 --- a/CODE_OF_CONDUCT.md +++ b/CODE_OF_CONDUCT.md @@ -8,19 +8,19 @@ In the interest of fostering an open and welcoming environment, we as contributo Examples of behavior that contributes to creating a positive environment include: -* Using welcoming and inclusive language -* Being respectful of differing viewpoints and experiences -* Gracefully accepting constructive criticism -* Focusing on what is best for the community -* Showing empathy towards other community members +- Using welcoming and inclusive language +- Being respectful of differing viewpoints and experiences +- Gracefully accepting constructive criticism +- Focusing on what is best for the community +- Showing empathy towards other community members Examples of unacceptable behavior by participants include: -* The use of sexualized language or imagery and unwelcome sexual attention or advances -* Trolling, insulting/derogatory comments, and personal or political attacks -* Public or private harassment -* Publishing others' private information, such as a physical or electronic address, without explicit permission -* Other conduct which could reasonably be considered inappropriate in a professional setting +- The use of sexualized language or imagery and unwelcome sexual attention or advances +- Trolling, insulting/derogatory comments, and personal or political attacks +- Public or private harassment +- Publishing others' private information, such as a physical or electronic address, without explicit permission +- Other conduct which could reasonably be considered inappropriate in a professional setting ## Our Responsibilities @@ -39,7 +39,7 @@ Instances of abusive, harassing, or otherwise unacceptable behavior may be repor Project maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project's leadership. [@robjtede]: https://github.com/robjtede -[@JohnTitor]: https://github.com/JohnTitor +[@johntitor]: https://github.com/JohnTitor ## Attribution diff --git a/README.md b/README.md index 0e122cc4..30fb2091 100644 --- a/README.md +++ b/README.md @@ -13,7 +13,7 @@ See example folders for [`actix-server`](./actix-server/examples) and [`actix-tl ## MSRV -Most crates in this repo's have a Minimum Supported Rust Version (MSRV) of 1.49.0. Only `actix-tls` and `actix-server` have MSRV of 1.54.0. 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.59. 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 16246be0..50861701 100644 --- a/actix-codec/CHANGES.md +++ b/actix-codec/CHANGES.md @@ -1,39 +1,40 @@ # Changes ## Unreleased - 2022-xx-xx + - Minimum supported Rust version (MSRV) is now 1.59. - ## 0.5.1 - 2022-03-15 + - Logs emitted now use the `tracing` crate with `log` compatibility. [#451] - Minimum supported Rust version (MSRV) is now 1.49. [#451]: https://github.com/actix/actix-net/pull/451 - ## 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`. - ## 0.4.1 - 2021-11-05 + - Added `LinesCodec.` [#338] - `Framed::poll_ready` flushes when the buffer is full. [#409] [#338]: https://github.com/actix/actix-net/pull/338 [#409]: https://github.com/actix/actix-net/pull/409 - ## 0.4.0 - 2021-04-20 + - No significant changes since v0.4.0-beta.1. - ## 0.4.0-beta.1 - 2020-12-28 + - Replace `pin-project` with `pin-project-lite`. [#237] - Upgrade `tokio` dependency to `1`. [#237] - Upgrade `tokio-util` dependency to `0.6`. [#237] @@ -41,16 +42,16 @@ [#237]: https://github.com/actix/actix-net/pull/237 - ## 0.3.0 - 2020-08-23 + - No changes from beta 2. - ## 0.3.0-beta.2 - 2020-08-19 + - Remove unused type parameter from `Framed::replace_codec`. - ## 0.3.0-beta.1 - 2020-08-19 + - Use `.advance()` instead of `.split_to()`. - Upgrade `tokio-util` to `0.3`. - Improve `BytesCodec::encode()` performance. @@ -59,31 +60,31 @@ - Add method on `Framed` to get a pinned reference to the underlying I/O. - Add method on `Framed` check emptiness of read buffer. - ## 0.2.0 - 2019-12-10 + - Use specific futures dependencies. - ## 0.2.0-alpha.4 + - Fix buffer remaining capacity calculation. - ## 0.2.0-alpha.3 + - Use tokio 0.2. - Fix low/high watermark for write/read buffers. - ## 0.2.0-alpha.2 + - Migrated to `std::future`. - ## 0.1.2 - 2019-03-27 + - Added `Framed::map_io()` method. - ## 0.1.1 - 2019-03-06 + - Added `FramedParts::with_read_buffer()` method. - ## 0.1.0 - 2018-12-09 + - Move codec to separate crate. diff --git a/actix-macros/CHANGES.md b/actix-macros/CHANGES.md index a319f8c3..bb75cb47 100644 --- a/actix-macros/CHANGES.md +++ b/actix-macros/CHANGES.md @@ -1,47 +1,48 @@ # Changes ## Unreleased - 2022-xx-xx + - Minimum supported Rust version (MSRV) is now 1.59. - ## 0.2.3 - 2021-10-19 + - Fix test macro in presence of other imports named "test". [#399] [#399]: https://github.com/actix/actix-net/pull/399 - ## 0.2.2 - 2021-10-14 + - Improve error recovery potential when macro input is invalid. [#391] - Allow custom `System`s on test macro. [#391] [#391]: https://github.com/actix/actix-net/pull/391 - ## 0.2.1 - 2021-02-02 + - Add optional argument `system` to `main` macro which can be used to specify the path to `actix_rt::System` (useful for re-exports). [#363] [#363]: https://github.com/actix/actix-net/pull/363 - ## 0.2.0 - 2021-02-02 + - Update to latest `actix_rt::System::new` signature. [#261] [#261]: https://github.com/actix/actix-net/pull/261 - ## 0.2.0-beta.1 - 2021-01-09 + - Remove `actix-reexport` feature. [#218] [#218]: https://github.com/actix/actix-net/pull/218 - ## 0.1.3 - 2020-12-03 + - Add `actix-reexport` feature. [#218] [#218]: https://github.com/actix/actix-net/pull/218 - ## 0.1.2 - 2020-05-18 + - Forward actix_rt::test arguments to test function [#127] [#127]: https://github.com/actix/actix-net/pull/127 diff --git a/actix-rt/CHANGES.md b/actix-rt/CHANGES.md index caa8659f..2d7a4da6 100644 --- a/actix-rt/CHANGES.md +++ b/actix-rt/CHANGES.md @@ -2,8 +2,8 @@ ## Unreleased - 2022-xx-xx - ## 2.8.0 - 2022-12-21 + - Add `#[track_caller]` attribute to `spawn` functions and methods. [#454] - Update `tokio-uring` dependency to `0.4`. [#473] - Minimum supported Rust version (MSRV) is now 1.59. @@ -11,86 +11,85 @@ [#454]: https://github.com/actix/actix-net/pull/454 [#473]: https://github.com/actix/actix-net/pull/473 - ## 2.7.0 - 2022-03-08 + - Update `tokio-uring` dependency to `0.3`. [#448] - Minimum supported Rust version (MSRV) is now 1.49. [#448]: https://github.com/actix/actix-net/pull/448 - ## 2.6.0 - 2022-01-12 + - Update `tokio-uring` dependency to `0.2`. [#436] [#436]: https://github.com/actix/actix-net/pull/436 - ## 2.5.1 - 2021-12-31 + - Expose `System::with_tokio_rt` and `Arbiter::with_tokio_rt`. [#430] [#430]: https://github.com/actix/actix-net/pull/430 - ## 2.5.0 - 2021-11-22 + - Add `System::run_with_code` to allow retrieving the exit code on stop. [#411] [#411]: https://github.com/actix/actix-net/pull/411 - ## 2.4.0 - 2021-11-05 + - Add `Arbiter::try_current` for situations where thread may or may not have Arbiter context. [#408] - Start io-uring with `System::new` when feature is enabled. [#395] [#395]: https://github.com/actix/actix-net/pull/395 [#408]: https://github.com/actix/actix-net/pull/408 - ## 2.3.0 - 2021-10-11 + - The `spawn` method can now resolve with non-unit outputs. [#369] - Add experimental (semver-exempt) `io-uring` feature for enabling async file I/O on linux. [#374] [#369]: https://github.com/actix/actix-net/pull/369 [#374]: https://github.com/actix/actix-net/pull/374 - ## 2.2.0 - 2021-03-29 -- **BREAKING** `ActixStream::{poll_read_ready, poll_write_ready}` methods now return - `Ready` object in ok variant. [#293] - * Breakage is acceptable since `ActixStream` was not intended to be public. + +- **BREAKING** `ActixStream::{poll_read_ready, poll_write_ready}` methods now return `Ready` object in ok variant. [#293] + - Breakage is acceptable since `ActixStream` was not intended to be public. [#293]: https://github.com/actix/actix-net/pull/293 - ## 2.1.0 - 2021-02-24 + - Add `ActixStream` extension trait to include readiness methods. [#276] - Re-export `tokio::net::TcpSocket` in `net` module [#282] [#276]: https://github.com/actix/actix-net/pull/276 [#282]: https://github.com/actix/actix-net/pull/282 - ## 2.0.2 - 2021-02-06 + - Add `Arbiter::handle` to get a handle of an owned Arbiter. [#274] - Add `System::try_current` for situations where actix may or may not be running a System. [#275] [#274]: https://github.com/actix/actix-net/pull/274 [#275]: https://github.com/actix/actix-net/pull/275 - ## 2.0.1 - 2021-02-06 + - Expose `JoinError` from Tokio. [#271] [#271]: https://github.com/actix/actix-net/pull/271 - ## 2.0.0 - 2021-02-02 + - Remove all Arbiter-local storage methods. [#262] - Re-export `tokio::pin`. [#262] [#262]: https://github.com/actix/actix-net/pull/262 - ## 2.0.0-beta.3 - 2021-01-31 + - Remove `run_in_tokio`, `attach_to_tokio` and `AsyncSystemRunner`. [#253] - Return `JoinHandle` from `actix_rt::spawn`. [#253] - Remove old `Arbiter::spawn`. Implementation is now inlined into `actix_rt::spawn`. [#253] @@ -113,21 +112,20 @@ [#256]: https://github.com/actix/actix-net/pull/256 [#257]: https://github.com/actix/actix-net/pull/257 - ## 2.0.0-beta.2 - 2021-01-09 + - Add `task` mod with re-export of `tokio::task::{spawn_blocking, yield_now, JoinHandle}` [#245] - Add default "macros" feature to allow faster compile times when using `default-features=false`. [#245]: https://github.com/actix/actix-net/pull/245 - ## 2.0.0-beta.1 - 2020-12-28 + - Add `System::attach_to_tokio` method. [#173] - Update `tokio` dependency to `1.0`. [#236] -- Rename `time` module `delay_for` to `sleep`, `delay_until` to `sleep_until`, `Delay` to `Sleep` - to stay aligned with Tokio's naming. [#236] +- Rename `time` module `delay_for` to `sleep`, `delay_until` to `sleep_until`, `Delay` to `Sleep` to stay aligned with Tokio's naming. [#236] - Remove `'static` lifetime requirement for `Runtime::block_on` and `SystemRunner::block_on`. - * These methods now accept `&self` when calling. [#236] + - These methods now accept `&self` when calling. [#236] - Remove `'static` lifetime requirement for `System::run` and `Builder::run`. [#236] - `Arbiter::spawn` now panics when `System` is not in scope. [#207] - Fix work load issue by removing `PENDING` thread local. [#207] @@ -135,74 +133,73 @@ [#207]: https://github.com/actix/actix-net/pull/207 [#236]: https://github.com/actix/actix-net/pull/236 - ## 1.1.1 - 2020-04-30 + - Fix memory leak due to [#94] (see [#129] for more detail) [#129]: https://github.com/actix/actix-net/issues/129 - ## 1.1.0 - 2020-04-08 _(YANKED)_ + - Expose `System::is_set` to check if current system has ben started [#99] - Add `Arbiter::is_running` to check if event loop is running [#124] -- Add `Arbiter::local_join` associated function - to get be able to `await` for spawned futures [#94] +- Add `Arbiter::local_join` associated function to get be able to `await` for spawned futures [#94] [#94]: https://github.com/actix/actix-net/pull/94 [#99]: https://github.com/actix/actix-net/pull/99 [#124]: https://github.com/actix/actix-net/pull/124 - ## 1.0.0 - 2019-12-11 + - Update dependencies - ## 1.0.0-alpha.3 - 2019-12-07 + - Migrate to tokio 0.2 - Fix compilation on non-unix platforms - ## 1.0.0-alpha.2 - 2019-12-02 + - Export `main` and `test` attribute macros - Export `time` module (re-export of tokio-timer) - Export `net` module (re-export of tokio-net) - ## 1.0.0-alpha.1 - 2019-11-22 + - Migrate to std::future and tokio 0.2 - ## 0.2.6 - 2019-11-14 + - Allow to join arbiter's thread. #60 - Fix arbiter's thread panic message. - ## 0.2.5 - 2019-09-02 + - Add arbiter specific storage - ## 0.2.4 - 2019-07-17 + - Avoid a copy of the Future when initializing the Box. #29 - ## 0.2.3 - 2019-06-22 + - Allow to start System using existing CurrentThread Handle #22 - ## 0.2.2 - 2019-03-28 + - Moved `blocking` module to `actix-threadpool` crate - ## 0.2.1 - 2019-03-11 + - Added `blocking` module - Added `Arbiter::exec_fn` - execute fn on the arbiter's thread - Added `Arbiter::exec` - execute fn on the arbiter's thread and wait result - ## 0.2.0 - 2019-03-06 + - `run` method returns `io::Result<()>` - Removed `Handle` - ## 0.1.0 - 2018-12-09 + - Initial release diff --git a/actix-server/CHANGES.md b/actix-server/CHANGES.md index f3919a16..cde39f7f 100644 --- a/actix-server/CHANGES.md +++ b/actix-server/CHANGES.md @@ -2,19 +2,19 @@ ## Unreleased - 2022-xx-xx - ## 2.2.0 - 2022-12-21 + - Minimum supported Rust version (MSRV) is now 1.59. - Update `tokio-uring` dependency to `0.4`. [#473] [#473]: https://github.com/actix/actix-net/pull/473 - ## 2.1.1 - 2022-03-09 + - No significant changes since `2.1.0`. - ## 2.1.0 - 2022-03-08 + - Update `tokio-uring` dependency to `0.3`. [#448] - Logs emitted now use the `tracing` crate with `log` compatibility. [#448] - Wait for accept thread to stop before sending completion signal. [#443] @@ -22,48 +22,48 @@ [#443]: https://github.com/actix/actix-net/pull/443 [#448]: https://github.com/actix/actix-net/pull/448 - ## 2.0.0 - 2022-01-19 + - No significant changes since `2.0.0-rc.4`. - ## 2.0.0-rc.4 - 2022-01-12 + - Update `tokio-uring` dependency to `0.2`. [#436] [#436]: https://github.com/actix/actix-net/pull/436 - ## 2.0.0-rc.3 - 2021-12-31 + - No significant changes since `2.0.0-rc.2`. - ## 2.0.0-rc.2 - 2021-12-27 + - Simplify `TestServer`. [#431] [#431]: https://github.com/actix/actix-net/pull/431 - ## 2.0.0-rc.1 - 2021-12-05 + - Hide implementation details of `Server`. [#424] - `Server` now runs only after awaiting it. [#425] [#424]: https://github.com/actix/actix-net/pull/424 [#425]: https://github.com/actix/actix-net/pull/425 - ## 2.0.0-beta.9 - 2021-11-15 + - Restore `Arbiter` support lost in `beta.8`. [#417] [#417]: https://github.com/actix/actix-net/pull/417 - ## 2.0.0-beta.8 - 2021-11-05 _(YANKED)_ + - Fix non-unix signal handler. [#410] [#410]: https://github.com/actix/actix-net/pull/410 - ## 2.0.0-beta.7 - 2021-11-05 _(YANKED)_ + - Server can be started in regular Tokio runtime. [#408] - Expose new `Server` type whose `Future` impl resolves when server stops. [#408] - Rename `Server` to `ServerHandle`. [#407] @@ -75,34 +75,31 @@ [#407]: https://github.com/actix/actix-net/pull/407 [#408]: https://github.com/actix/actix-net/pull/408 - ## 2.0.0-beta.6 - 2021-10-11 + - Add experimental (semver-exempt) `io-uring` feature for enabling async file I/O on linux. [#374] -- Server no long listens to `SIGHUP` signal. Previously, the received was not used but did block - subsequent exit signals from working. [#389] -- Remove `config` module. `ServiceConfig`, `ServiceRuntime` public types are removed due to - this change. [#349] +- Server no long listens to `SIGHUP` signal. Previously, the received was not used but did block subsequent exit signals from working. [#389] +- Remove `config` module. `ServiceConfig`, `ServiceRuntime` public types are removed due to this change. [#349] - Remove `ServerBuilder::configure` [#349] [#374]: https://github.com/actix/actix-net/pull/374 [#349]: https://github.com/actix/actix-net/pull/349 [#389]: https://github.com/actix/actix-net/pull/389 - ## 2.0.0-beta.5 - 2021-04-20 -- Server shutdown notifies all workers to exit regardless if shutdown is graceful. This causes all - workers to shutdown immediately in force shutdown case. [#333] + +- Server shutdown notifies all workers to exit regardless if shutdown is graceful. This causes all workers to shutdown immediately in force shutdown case. [#333] [#333]: https://github.com/actix/actix-net/pull/333 - ## 2.0.0-beta.4 - 2021-04-01 + - Prevent panic when `shutdown_timeout` is very large. [f9262db] [f9262db]: https://github.com/actix/actix-net/commit/f9262db - ## 2.0.0-beta.3 - 2021-02-06 + - Hidden `ServerBuilder::start` method has been removed. Use `ServerBuilder::run`. [#246] - Add retry for EINTR signal (`io::Interrupted`) in `Accept`'s poll loop. [#264] - Add `ServerBuilder::worker_max_blocking_threads` to customize blocking thread pool size. [#265] @@ -113,149 +110,148 @@ [#265]: https://github.com/actix/actix-net/pull/265 [#273]: https://github.com/actix/actix-net/pull/273 - ## 2.0.0-beta.2 - 2021-01-03 + - Merge `actix-testing` to `actix-server` as `test_server` mod. [#242] [#242]: https://github.com/actix/actix-net/pull/242 - ## 2.0.0-beta.1 - 2020-12-28 + - Added explicit info log message on accept queue pause. [#215] - Prevent double registration of sockets when back-pressure is resolved. [#223] - Update `mio` dependency to `0.7.3`. [#239] - Remove `socket2` dependency. [#239] - `ServerBuilder::backlog` now accepts `u32` instead of `i32`. [#239] - Remove `AcceptNotify` type and pass `WakerQueue` to `Worker` to wake up `Accept`'s `Poll`. [#239] -- Convert `mio::net::TcpStream` to `actix_rt::net::TcpStream`(`UnixStream` for uds) using - `FromRawFd` and `IntoRawFd`(`FromRawSocket` and `IntoRawSocket` on windows). [#239] +- Convert `mio::net::TcpStream` to `actix_rt::net::TcpStream`(`UnixStream` for uds) using `FromRawFd` and `IntoRawFd`(`FromRawSocket` and `IntoRawSocket` on windows). [#239] - Remove `AsyncRead` and `AsyncWrite` trait bound for `socket::FromStream` trait. [#239] [#215]: https://github.com/actix/actix-net/pull/215 [#223]: https://github.com/actix/actix-net/pull/223 [#239]: https://github.com/actix/actix-net/pull/239 - ## 1.0.4 - 2020-09-12 + - Update actix-codec to 0.3.0. - Workers must be greater than 0. [#167] [#167]: https://github.com/actix/actix-net/pull/167 - ## 1.0.3 - 2020-05-19 + - Replace deprecated `net2` crate with `socket2` [#140] [#140]: https://github.com/actix/actix-net/pull/140 - ## 1.0.2 - 2020-02-26 + - Avoid error by calling `reregister()` on Windows [#103] [#103]: https://github.com/actix/actix-net/pull/103 - ## 1.0.1 - 2019-12-29 + - Rename `.start()` method to `.run()` - ## 1.0.0 - 2019-12-11 + - Use actix-net releases - ## 1.0.0-alpha.4 - 2019-12-08 + - Use actix-service 1.0.0-alpha.4 - ## 1.0.0-alpha.3 - 2019-12-07 + - Migrate to tokio 0.2 - Fix compilation on non-unix platforms - Better handling server configuration - ## 1.0.0-alpha.2 - 2019-12-02 + - Simplify server service (remove actix-server-config) - Allow to wait on `Server` until server stops - ## 0.8.0-alpha.1 - 2019-11-22 + - Migrate to `std::future` - ## 0.7.0 - 2019-10-04 + - Update `rustls` to 0.16 - Minimum required Rust version upped to 1.37.0 - ## 0.6.1 - 2019-09-25 + - Add UDS listening support to `ServerBuilder` - ## 0.6.0 - 2019-07-18 + - Support Unix domain sockets #3 - ## 0.5.1 - 2019-05-18 + - ServerBuilder::shutdown_timeout() accepts u64 - ## 0.5.0 - 2019-05-12 + - Add `Debug` impl for `SslError` - Derive debug for `Server` and `ServerCommand` - Upgrade to actix-service 0.4 - ## 0.4.3 - 2019-04-16 + - Re-export `IoStream` trait - Depend on `ssl` and `rust-tls` features from actix-server-config - ## 0.4.2 - 2019-03-30 + - Fix SIGINT force shutdown - ## 0.4.1 - 2019-03-14 + - `SystemRuntime::on_start()` - allow to run future before server service initialization - ## 0.4.0 - 2019-03-12 + - Use `ServerConfig` for service factory - Wrap tcp socket to `Io` type - Upgrade actix-service - ## 0.3.1 - 2019-03-04 + - Add `ServerBuilder::maxconnrate` sets the maximum per-worker number of concurrent connections - Add helper ssl error `SslError` - Rename `StreamServiceFactory` to `ServiceFactory` - Deprecate `StreamServiceFactory` - ## 0.3.0 - 2019-03-02 + - Use new `NewService` trait - ## 0.2.1 - 2019-02-09 + - Drop service response - ## 0.2.0 - 2019-02-01 + - Migrate to actix-service 0.2 - Updated rustls dependency - ## 0.1.3 - 2018-12-21 + - Fix max concurrent connections handling - ## 0.1.2 - 2018-12-12 + - rename ServiceConfig::rt() to ServiceConfig::apply() - Fix back-pressure for concurrent ssl handshakes - ## 0.1.1 - 2018-12-11 + - Fix signal handling on windows - ## 0.1.0 - 2018-12-09 + - Move server to separate crate diff --git a/actix-service/CHANGES.md b/actix-service/CHANGES.md index bd828c49..b67a231f 100644 --- a/actix-service/CHANGES.md +++ b/actix-service/CHANGES.md @@ -1,36 +1,37 @@ # Changes ## Unreleased - 2022-xx-xx + - Minimum supported Rust version (MSRV) is now 1.59. - ## 2.0.2 - 2021-12-18 + - Service types can now be `Send` and `'static` regardless of request, response, and config types, etc. [#397] [#397]: https://github.com/actix/actix-net/pull/397 - ## 2.0.1 - 2021-10-11 + - Documentation fix. [#388] [#388]: https://github.com/actix/actix-net/pull/388 - ## 2.0.0 - 2021-04-16 + - Removed pipeline and related structs/functions. [#335] [#335]: https://github.com/actix/actix-net/pull/335 - ## 2.0.0-beta.5 - 2021-03-15 + - Add default `Service` trait impl for `Rc` and `&S: Service`. [#288] - Add `boxed::rc_service` function for constructing `boxed::RcService` type [#290] [#288]: https://github.com/actix/actix-net/pull/288 [#290]: https://github.com/actix/actix-net/pull/290 - ## 2.0.0-beta.4 - 2021-02-04 + - `Service::poll_ready` and `Service::call` receive `&self`. [#247] - `apply_fn` and `apply_fn_factory` now receive `Fn(Req, &Service)` function type. [#247] - `apply_cfg` and `apply_cfg_factory` now receive `Fn(Req, &Service)` function type. [#247] @@ -38,158 +39,153 @@ [#247]: https://github.com/actix/actix-net/pull/247 - ## 2.0.0-beta.3 - 2021-01-09 + - The `forward_ready!` macro converts errors. [#246] [#246]: https://github.com/actix/actix-net/pull/246 - ## 2.0.0-beta.2 - 2021-01-03 + - Remove redundant type parameter from `map_config`. - ## 2.0.0-beta.1 - 2020-12-28 -- `Service`, other traits, and many type signatures now take the the request type as a type - parameter instead of an associated type. [#232] + +- `Service`, other traits, and many type signatures now take the the request type as a type parameter instead of an associated type. [#232] - Add `always_ready!` and `forward_ready!` macros. [#233] - Crate is now `no_std`. [#233] - Migrate pin projections to `pin-project-lite`. [#233] -- Remove `AndThenApplyFn` and Pipeline `and_then_apply_fn`. Use the - `.and_then(apply_fn(...))` construction. [#233] +- Remove `AndThenApplyFn` and Pipeline `and_then_apply_fn`. Use the `.and_then(apply_fn(...))` construction. [#233] - Move non-vital methods to `ServiceExt` and `ServiceFactoryExt` extension traits. [#235] [#232]: https://github.com/actix/actix-net/pull/232 [#233]: https://github.com/actix/actix-net/pull/233 [#235]: https://github.com/actix/actix-net/pull/235 - ## 1.0.6 - 2020-08-09 -- Removed unsound custom Cell implementation that allowed obtaining several mutable references to - the same data, which is undefined behavior in Rust and could lead to violations of memory safety. External code could obtain several mutable references to the same data through - service combinators. Attempts to acquire several mutable references to the same data will instead - result in a panic. +- Removed unsound custom Cell implementation that allowed obtaining several mutable references to the same data, which is undefined behavior in Rust and could lead to violations of memory safety. External code could obtain several mutable references to the same data through service combinators. Attempts to acquire several mutable references to the same data will instead result in a panic. ## 1.0.5 - 2020-01-16 + - Fixed unsoundness in .and_then()/.then() service combinators. - ## 1.0.4 - 2020-01-15 + - Revert 1.0.3 change - ## 1.0.3 - 2020-01-15 + - Fixed unsoundness in `AndThenService` impl. - ## 1.0.2 - 2020-01-08 + - Add `into_service` helper function. - ## 1.0.1 - 2019-12-22 + - `map_config()` and `unit_config()` now accept `IntoServiceFactory` type. - ## 1.0.0 - 2019-12-11 + - Add Clone impl for Apply service - ## 1.0.0-alpha.4 - 2019-12-08 + - Renamed `service_fn` to `fn_service` - Renamed `factory_fn` to `fn_factory` - Renamed `factory_fn_cfg` to `fn_factory_with_config` - ## 1.0.0-alpha.3 - 2019-12-06 + - Add missing Clone impls - Restore `Transform::map_init_err()` combinator - Restore `Service/Factory::apply_fn()` in form of `Pipeline/Factory::and_then_apply_fn()` - Optimize service combinators and futures memory layout - ## 1.0.0-alpha.2 - 2019-12-02 + - Use owned config value for service factory - Renamed BoxedNewService/BoxedService to BoxServiceFactory/BoxService - ## 1.0.0-alpha.1 - 2019-11-25 + - Migrated to `std::future` - `NewService` renamed to `ServiceFactory` - Added `pipeline` and `pipeline_factory` function - ## 0.4.2 - 2019-08-27 + - Check service readiness for `new_apply_cfg` combinator - ## 0.4.1 - 2019-06-06 + - Add `new_apply_cfg` function - ## 0.4.0 - 2019-05-12 + - Add `NewService::map_config` and `NewService::unit_config` combinators. - Use associated type for `NewService` config. - Change `apply_cfg` function. - Renamed helper functions. - ## 0.3.6 - 2019-04-07 + - Poll boxed service call result immediately - ## 0.3.5 - 2019-03-29 + - Add `impl Service for Rc>`. - ## 0.3.4 - 2019-03-12 + - Add `Transform::from_err()` combinator - Add `apply_fn` helper - Add `apply_fn_factory` helper - Add `apply_transform` helper - Add `apply_cfg` helper - ## 0.3.3 - 2019-03-09 + - Add `ApplyTransform` new service for transform and new service. - Add `NewService::apply_cfg()` combinator, allows to use nested `NewService` with different config parameter. - Revert IntoFuture change - ## 0.3.2 - 2019-03-04 + - Change `NewService::Future` and `Transform::Future` to the `IntoFuture` trait. - Export `AndThenTransform` type - ## 0.3.1 - 2019-03-04 + - Simplify Transform trait - ## 0.3.0 - 2019-03-02 + - Added boxed NewService and Service. - Added `Config` parameter to `NewService` trait. - Added `Config` parameter to `NewTransform` trait. - ## 0.2.2 - 2019-02-19 + - Added `NewService` impl for `Rc where S: NewService` - Added `NewService` impl for `Arc where S: NewService` - ## 0.2.1 - 2019-02-03 + - Generalize `.apply` combinator with Transform trait - ## 0.2.0 - 2019-02-01 + - Use associated type instead of generic for Service definition. - * Before: + - Before: ```rust impl Service for Client { type Response = Response; // ... } ``` - * After: + - After: ```rust impl Service for Client { type Request = Request; @@ -198,31 +194,31 @@ } ``` - ## 0.1.6 - 2019-01-24 + - Use `FnMut` instead of `Fn` for .apply() and .map() combinators and `FnService` type - Change `.apply()` error semantic, new service's error is `From` - ## 0.1.5 - 2019-01-13 + - Make `Out::Error` convertible from `T::Error` for apply combinator - ## 0.1.4 - 2019-01-11 + - Use `FnMut` instead of `Fn` for `FnService` - ## 0.1.3 - 2018-12-12 + - Split service combinators to separate trait - ## 0.1.2 - 2018-12-12 + - Release future early for `.and_then()` and `.then()` combinators - ## 0.1.1 - 2018-12-09 + - Added Service impl for `Box` - ## 0.1.0 - 2018-12-09 + - Initial import diff --git a/actix-tls/CHANGES.md b/actix-tls/CHANGES.md index c807b74c..886cc062 100644 --- a/actix-tls/CHANGES.md +++ b/actix-tls/CHANGES.md @@ -1,41 +1,43 @@ # Changes ## Unreleased - 2022-xx-xx + - Minimum supported Rust version (MSRV) is now 1.59. - ## 3.0.4 - 2022-03-15 + - Logs emitted now use the `tracing` crate with `log` compatibility. [#451] [#451]: https://github.com/actix/actix-net/pull/451 - ## 3.0.3 - 2022-02-15 + - No significant changes since `3.0.2`. - ## 3.0.2 - 2022-01-28 + - Expose `connect::Connection::new`. [#439] [#439]: https://github.com/actix/actix-net/pull/439 - ## 3.0.1 - 2022-01-11 + - No significant changes since `3.0.0`. - ## 3.0.0 - 2021-12-26 + - No significant changes since `3.0.0-rc.2`. - ## 3.0.0-rc.2 - 2021-12-10 + - Re-export `openssl::SslConnectorBuilder` in `connect::openssl::reexports`. [#429] [#429]: https://github.com/actix/actix-net/pull/429 - ## 3.0.0-rc.1 - 2021-11-29 + ### Added + - Derive `Debug` for `connect::Connection`. [#422] - Implement `Display` for `accept::TlsError`. [#422] - Implement `Error` for `accept::TlsError` where both types also implement `Error`. [#422] @@ -45,6 +47,7 @@ - Implement `Default` for `connect::ConnectorService`. [#423] ### Changed + - The crate's default features flags no longer include `uri`. [#422] - Useful re-exports from underlying TLS crates are exposed in a `reexports` modules in all acceptors and connectors. - Convert `connect::ResolverService` from enum to struct. [#422] @@ -61,6 +64,7 @@ - Inline modules in `connect::tls` to `connect` module. [#422] ### Removed + - Remove `connect::{new_connector, new_connector_factory, default_connector, default_connector_factory}` methods. [#422] - Remove `connect::native_tls::Connector::service` method. [#422] - Remove redundant `connect::Connection::from_parts` method. [#422] @@ -68,8 +72,8 @@ [#422]: https://github.com/actix/actix-net/pull/422 [#423]: https://github.com/actix/actix-net/pull/423 - ## 3.0.0-beta.9 - 2021-11-22 + - Add configurable timeout for accepting TLS connection. [#393] - Added `TlsError::Timeout` variant. [#393] - All TLS acceptor services now use `TlsError` for their error types. [#393] @@ -78,31 +82,30 @@ [#393]: https://github.com/actix/actix-net/pull/393 [#420]: https://github.com/actix/actix-net/pull/420 - ## 3.0.0-beta.8 - 2021-11-15 + - Add `Connect::request` for getting a reference to the connection request. [#415] [#415]: https://github.com/actix/actix-net/pull/415 - ## 3.0.0-beta.7 - 2021-10-20 + - Add `webpki_roots_cert_store()` to get rustls compatible webpki roots cert store. [#401] - Alias `connect::ssl` to `connect::tls`. [#401] [#401]: https://github.com/actix/actix-net/pull/401 - ## 3.0.0-beta.6 - 2021-10-19 + - Update `tokio-rustls` to `0.23` which uses `rustls` `0.20`. [#396] - Removed a re-export of `Session` from `rustls` as it no longer exist. [#396] - Minimum supported Rust version (MSRV) is now 1.52. [#396]: https://github.com/actix/actix-net/pull/396 - ## 3.0.0-beta.5 - 2021-03-29 -- Changed `connect::ssl::rustls::RustlsConnectorService` to return error when `DNSNameRef` - generation failed instead of panic. [#296] + +- Changed `connect::ssl::rustls::RustlsConnectorService` to return error when `DNSNameRef` generation failed instead of panic. [#296] - Remove `connect::ssl::openssl::OpensslConnectServiceFactory`. [#297] - Remove `connect::ssl::openssl::OpensslConnectService`. [#297] - Add `connect::ssl::native_tls` module for native tls support. [#295] @@ -114,74 +117,72 @@ [#297]: https://github.com/actix/actix-net/pull/297 [#299]: https://github.com/actix/actix-net/pull/299 - ## 3.0.0-beta.4 - 2021-02-24 + - Rename `accept::openssl::{SslStream => TlsStream}`. - Add `connect::Connect::set_local_addr` to attach local `IpAddr`. [#282] - `connector::TcpConnector` service will try to bind to local_addr of `IpAddr` when given. [#282] [#282]: https://github.com/actix/actix-net/pull/282 - ## 3.0.0-beta.3 - 2021-02-06 + - Remove `trust-dns-proto` and `trust-dns-resolver`. [#248] - Use `std::net::ToSocketAddrs` as simple and basic default resolver. [#248] - Add `Resolve` trait for custom DNS resolvers. [#248] - Add `Resolver::new_custom` function to construct custom resolvers. [#248] -- Export `webpki_roots::TLS_SERVER_ROOTS` in `actix_tls::connect` mod and remove - the export from `actix_tls::accept` [#248] -- Remove `ConnectTakeAddrsIter`. `Connect::take_addrs` now returns `ConnectAddrsIter<'static>` - as owned iterator. [#248] +- Export `webpki_roots::TLS_SERVER_ROOTS` in `actix_tls::connect` mod and remove the export from `actix_tls::accept` [#248] +- Remove `ConnectTakeAddrsIter`. `Connect::take_addrs` now returns `ConnectAddrsIter<'static>` as owned iterator. [#248] - Rename `Address::{host => hostname}` to more accurately describe which URL segment is returned. - Update `actix-rt` to `2.0.0`. [#273] [#248]: https://github.com/actix/actix-net/pull/248 [#273]: https://github.com/actix/actix-net/pull/273 - ## 3.0.0-beta.2 - 2022-xx-xx + - Depend on stable trust-dns packages. [#204] [#204]: https://github.com/actix/actix-net/pull/204 - ## 3.0.0-beta.1 - 2020-12-29 + - Move acceptors under `accept` module. [#238] - Merge `actix-connect` crate under `connect` module. [#238] - Add feature flags to enable acceptors and/or connectors individually. [#238] [#238]: https://github.com/actix/actix-net/pull/238 - ## 2.0.0 - 2020-09-03 + - `nativetls::NativeTlsAcceptor` is renamed to `nativetls::Acceptor`. - Where possible, "SSL" terminology is replaced with "TLS". - * `SslError` is renamed to `TlsError`. - * `TlsError::Ssl` enum variant is renamed to `TlsError::Tls`. - * `max_concurrent_ssl_connect` is renamed to `max_concurrent_tls_connect`. - + - `SslError` is renamed to `TlsError`. + - `TlsError::Ssl` enum variant is renamed to `TlsError::Tls`. + - `max_concurrent_ssl_connect` is renamed to `max_concurrent_tls_connect`. ## 2.0.0-alpha.2 - 2020-08-17 + - Update `rustls` dependency to 0.18 - Update `tokio-rustls` dependency to 0.14 - Update `webpki-roots` dependency to 0.20 - ## [2.0.0-alpha.1] - 2020-03-03 + - Update `rustls` dependency to 0.17 - Update `tokio-rustls` dependency to 0.13 - Update `webpki-roots` dependency to 0.19 - ## [1.0.0] - 2019-12-11 + - 1.0.0 release - ## [1.0.0-alpha.3] - 2019-12-07 + - Migrate to tokio 0.2 - Enable rustls acceptor service - Enable native-tls acceptor service - ## [1.0.0-alpha.1] - 2019-12-02 + - Split openssl acceptor from actix-server package diff --git a/actix-tracing/CHANGES.md b/actix-tracing/CHANGES.md index 938d536e..dd5c2d01 100644 --- a/actix-tracing/CHANGES.md +++ b/actix-tracing/CHANGES.md @@ -1,8 +1,9 @@ # Changes ## Unreleased - 2022-xx-xx + - Minimum supported Rust version (MSRV) is now 1.59. - ## 0.1.0 - 2020-01-15 + - Initial release diff --git a/actix-utils/CHANGES.md b/actix-utils/CHANGES.md index edd8e9c6..03bca650 100644 --- a/actix-utils/CHANGES.md +++ b/actix-utils/CHANGES.md @@ -1,24 +1,25 @@ # Changes ## Unreleased - 2022-xx-xx + - Minimum supported Rust version (MSRV) is now 1.59. - ## 3.0.1 - 2022-10-21 + - Minimum supported Rust version (MSRV) is now 1.57. - ## 3.0.0 - 2021-04-16 + - No significant changes from `3.0.0-beta.4`. - ## 3.0.0-beta.4 - 2021-04-01 + - Add `future::Either` type. [#305] [#305]: https://github.com/actix/actix-net/pull/305 - ## 3.0.0-beta.3 - 2021-04-01 + - Moved `mpsc` to own crate `local-channel`. [#301] - Moved `task::LocalWaker` to own crate `local-waker`. [#301] - Remove `timeout` module. [#301] @@ -27,14 +28,14 @@ [#301]: https://github.com/actix/actix-net/pull/301 - ## 3.0.0-beta.2 - 2021-02-06 + - Update `actix-rt` to `2.0.0`. [#273] [#273]: https://github.com/actix/actix-net/pull/273 - ## 3.0.0-beta.1 - 2020-12-28 + - Update `bytes` dependency to `1`. [#237] - Use `pin-project-lite` to replace `pin-project`. [#229] - Remove `condition`,`either`,`inflight`,`keepalive`,`oneshot`,`order`,`stream` and `time` mods. [#229] @@ -42,146 +43,146 @@ [#229]: https://github.com/actix/actix-net/pull/229 [#237]: https://github.com/actix/actix-net/pull/237 - ## 2.0.0 - 2020-08-23 + - No changes from beta 1. - ## 2.0.0-beta.1 - 2020-08-19 + - Upgrade `tokio-util` to `0.3`. - Remove unsound custom Cell and use `std::cell::RefCell` instead, as well as `actix-service`. - Rename method to correctly spelled `LocalWaker::is_registered`. - ## 1.0.6 - 2020-01-08 + - Add `Clone` impl for `condition::Waiter`. - ## 1.0.5 - 2020-01-08 + - Add `Condition` type. - Add `Pool` of one-shot's. - ## 1.0.4 - 2019-12-20 + - Add methods to check `LocalWaker` registration state. - ## 1.0.3 - 2019-12-11 + - Revert InOrder service changes - ## 1.0.2 - 2019-12-11 + - Allow to create `framed::Dispatcher` with custom `mpsc::Receiver`. - Add `oneshot::Sender::is_canceled()` method. - ## 1.0.1 - 2019-12-11 + - Optimize InOrder service. - ## 1.0.0 - 2019-12-11 + - Simplify oneshot and mpsc implementations. - ## 1.0.0-alpha.3 - 2019-12-07 + - Migrate to tokio 0.2. - Fix oneshot. - ## 1.0.0-alpha.2 - 2019-12-02 + - Migrate to `std::future`. - ## 0.4.7 - 2019-10-14 + - Re-register task on every framed transport poll. - ## 0.4.6 - 2019-10-08 + - Refactor `Counter` type. register current task in available method. - ## 0.4.5 - 2019-07-19 + - Deprecated `CloneableService` as it is not safe. - ## 0.4.4 - 2019-07-17 + - Undeprecate `FramedTransport` as it is actually useful. - ## 0.4.3 - 2019-07-17 + - Deprecate `CloneableService` as it is not safe and in general not very useful. - Deprecate `FramedTransport` in favor of `actix-ioframe`. - ## 0.4.2 - 2019-06-26 + - Do not block on sink drop for FramedTransport. - ## 0.4.1 - 2019-05-15 + - Change `Either` constructor. - ## 0.4.0 - 2019-05-11 + - Change `Either` to handle two nexted services. - Upgrade actix-service 0.4. - Removed framed related services. - Removed stream related services. - ## 0.3.5 - 2019-04-04 + - Allow to send messages to `FramedTransport` via mpsc channel. - Remove `'static` constraint from Clonable service. - ## 0.3.4 - 2019-03-12 + - `TimeoutService`, `InOrderService`, `InFlightService` accepts generic IntoService services. - Fix `InFlightService::poll_ready()` nested service readiness check. - Fix `InOrderService::poll_ready()` nested service readiness check. - ## 0.3.3 - 2019-03-09 + - Revert IntoFuture change. - Add generic config param for IntoFramed and TakeOne new services. - ## 0.3.2 - 2019-03-04 + - Use IntoFuture for new services. ## 0.3.1 - 2019-03-04 + - Use new type of transform trait. - ## 0.3.0 - 2019-03-02 -- Use new `NewService` trait -- BoxedNewService` and `BoxedService` types moved to actix-service crate. +- Use new `NewService` trait +- BoxedNewService`and`BoxedService` types moved to actix-service crate. ## 0.2.4 - 2019-02-21 + - Custom `BoxedNewService` implementation. - ## 0.2.3 - 2019-02-21 + - Add `BoxedNewService` and `BoxedService`. - ## 0.2.2 - 2019-02-11 + - Add `Display` impl for `TimeoutError`. - Add `Display` impl for `InOrderError`. - ## 0.2.1 - 2019-02-06 -- Add `InOrder` service. the service yields responses as they become available, - in the order that their originating requests were submitted to the service. + +- Add `InOrder` service. the service yields responses as they become available, in the order that their originating requests were submitted to the service. - Convert `Timeout` and `InFlight` services to a transforms. - ## 0.2.0 - 2019-02-01 + - Fix framed transport error handling. - Added Clone impl for Either service. - Added Clone impl for Timeout service factory. - Added Service and NewService for Stream dispatcher. - Switch to actix-service 0.2. - ## 0.1.0 - 2018-12-09 + - Move utils services to separate crate. diff --git a/bytestring/CHANGES.md b/bytestring/CHANGES.md index 826ff3b8..0b6955ca 100644 --- a/bytestring/CHANGES.md +++ b/bytestring/CHANGES.md @@ -1,59 +1,60 @@ # Changes ## Unreleased - 2022-xx-xx + - Implement `AsRef` for `ByteString`. - Minimum supported Rust version (MSRV) is now 1.59. - ## 1.2.1 - 2022-11-12 + - Fix `#[no_std]` compatibility. [#471] [#471]: https://github.com/actix/actix-net/pull/471 - ## 1.2.0 - 2022-11-07 + - Add `ByteString::slice_ref` which can safely slice a `ByteString` into a new one with zero copy. [#470] - Minimum supported Rust version (MSRV) is now 1.57. [#470]: https://github.com/actix/actix-net/pull/470 - ## 1.1.0 - 2022-06-11 + - Implement `From>` for `ByteString`. [#458] - Implement `Into` for `ByteString`. [#458] - Minimum supported Rust version (MSRV) is now 1.49. [#458]: https://github.com/actix/actix-net/pull/458 - ## 1.0.0 - 2020-12-31 + - Update `bytes` dependency to `1`. - Add array and slice of `u8` impls of `TryFrom` up to 32 in length. - Rename `get_ref` to `as_bytes` and rename `into_inner` to `into_bytes`. - `ByteString::new` is now a `const fn`. - Crate is now `#[no_std]` compatible. - ## 0.1.5 - 2020-03-30 + - Serde support - ## 0.1.4 - 2020-01-14 + - Fix `AsRef` impl - ## 0.1.3 - 2020-01-13 + - Add `PartialEq>`, `AsRef<[u8]>` impls - ## 0.1.2 - 2019-12-22 + - Fix `new()` method - Make `ByteString::from_static()` and `ByteString::from_bytes_unchecked()` methods const. - ## 0.1.1 - 2019-12-07 + - Fix hash impl - ## 0.1.0 - 2019-12-07 + - Initial release diff --git a/local-channel/CHANGES.md b/local-channel/CHANGES.md index d19848f0..53530ff4 100644 --- a/local-channel/CHANGES.md +++ b/local-channel/CHANGES.md @@ -1,16 +1,17 @@ # Changes ## Unreleased - 2022-xx-xx + - Minimum supported Rust version (MSRV) is now 1.59. - ## 0.1.3 - 2022-05-03 + - Minimum supported Rust version (MSRV) is now 1.49. - ## 0.1.2 - 2021-04-01 + - No significant changes from `0.1.1`. - ## 0.1.1 - 2021-03-29 + - Move local mpsc channel to it's own crate. diff --git a/local-waker/CHANGES.md b/local-waker/CHANGES.md index b36eacf5..5204259c 100644 --- a/local-waker/CHANGES.md +++ b/local-waker/CHANGES.md @@ -1,16 +1,17 @@ # Changes ## Unreleased - 2022-xx-xx + - Minimum supported Rust version (MSRV) is now 1.59. - ## 0.1.3 - 2022-05-03 + - Minimum supported Rust version (MSRV) is now 1.49. - ## 0.1.2 - 2021-12-18 + - Fix crate metadata. - ## 0.1.1 - 2021-03-29 + - Move `LocalWaker` to it's own crate. From a6bece7b330e5089b82c89c86a7fa62baa4c6682 Mon Sep 17 00:00:00 2001 From: Rob Ede Date: Fri, 3 Mar 2023 22:41:09 +0000 Subject: [PATCH 057/410] prepare bytestring release 1.3.0 --- bytestring/CHANGES.md | 3 ++- bytestring/Cargo.toml | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/bytestring/CHANGES.md b/bytestring/CHANGES.md index 0b6955ca..c93a5429 100644 --- a/bytestring/CHANGES.md +++ b/bytestring/CHANGES.md @@ -2,8 +2,9 @@ ## Unreleased - 2022-xx-xx +## 1.3.0 - 2023-03-03 + - Implement `AsRef` for `ByteString`. -- Minimum supported Rust version (MSRV) is now 1.59. ## 1.2.1 - 2022-11-12 diff --git a/bytestring/Cargo.toml b/bytestring/Cargo.toml index 1cf7bbe6..0720c7bf 100644 --- a/bytestring/Cargo.toml +++ b/bytestring/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "bytestring" -version = "1.2.1" +version = "1.3.0" authors = [ "Nikolay Kim ", "Rob Ede ", From c60d2f9ddbf3f743a8b501f2f87ddb2bcd8b06b3 Mon Sep 17 00:00:00 2001 From: Rob Ede Date: Sat, 1 Apr 2023 05:18:22 +0100 Subject: [PATCH 058/410] use doc_auto_cfg --- actix-tls/Cargo.toml | 2 +- actix-tls/examples/accept-rustls.rs | 1 - actix-tls/src/accept/mod.rs | 3 --- actix-tls/src/connect/mod.rs | 4 ---- actix-tls/src/lib.rs | 5 +---- 5 files changed, 2 insertions(+), 13 deletions(-) diff --git a/actix-tls/Cargo.toml b/actix-tls/Cargo.toml index f7df5430..b5f71695 100755 --- a/actix-tls/Cargo.toml +++ b/actix-tls/Cargo.toml @@ -42,7 +42,7 @@ native-tls = ["tokio-native-tls"] uri = ["http"] [dependencies] -actix-rt = { version = "2.2.0", default-features = false } +actix-rt = { version = "2.2", default-features = false } actix-service = "2" actix-utils = "3" diff --git a/actix-tls/examples/accept-rustls.rs b/actix-tls/examples/accept-rustls.rs index 7d964d10..6424e64a 100644 --- a/actix-tls/examples/accept-rustls.rs +++ b/actix-tls/examples/accept-rustls.rs @@ -21,7 +21,6 @@ use tokio_rustls::rustls; use std::{ - env, fs::File, io::{self, BufReader}, sync::{ diff --git a/actix-tls/src/accept/mod.rs b/actix-tls/src/accept/mod.rs index 46710df8..13c4db37 100644 --- a/actix-tls/src/accept/mod.rs +++ b/actix-tls/src/accept/mod.rs @@ -10,15 +10,12 @@ use std::{ use actix_utils::counter::Counter; #[cfg(feature = "openssl")] -#[cfg_attr(docsrs, doc(cfg(feature = "openssl")))] pub mod openssl; #[cfg(feature = "rustls")] -#[cfg_attr(docsrs, doc(cfg(feature = "rustls")))] pub mod rustls; #[cfg(feature = "native-tls")] -#[cfg_attr(docsrs, doc(cfg(feature = "native-tls")))] pub mod native_tls; pub(crate) static MAX_CONN: AtomicUsize = AtomicUsize::new(256); diff --git a/actix-tls/src/connect/mod.rs b/actix-tls/src/connect/mod.rs index 3511dd58..df002585 100644 --- a/actix-tls/src/connect/mod.rs +++ b/actix-tls/src/connect/mod.rs @@ -22,19 +22,15 @@ mod resolver; pub mod tcp; #[cfg(feature = "uri")] -#[cfg_attr(docsrs, doc(cfg(feature = "uri")))] mod uri; #[cfg(feature = "openssl")] -#[cfg_attr(docsrs, doc(cfg(feature = "openssl")))] pub mod openssl; #[cfg(feature = "rustls")] -#[cfg_attr(docsrs, doc(cfg(feature = "rustls")))] pub mod rustls; #[cfg(feature = "native-tls")] -#[cfg_attr(docsrs, doc(cfg(feature = "native-tls")))] pub mod native_tls; pub use self::connection::Connection; diff --git a/actix-tls/src/lib.rs b/actix-tls/src/lib.rs index 39714dca..64bdcd00 100644 --- a/actix-tls/src/lib.rs +++ b/actix-tls/src/lib.rs @@ -4,17 +4,14 @@ #![warn(future_incompatible, missing_docs)] #![doc(html_logo_url = "https://actix.rs/img/logo.png")] #![doc(html_favicon_url = "https://actix.rs/favicon.ico")] -// enable unstable doc_cfg feature only on on docs.rs where nightly compiler is used -#![cfg_attr(docsrs, feature(doc_cfg))] +#![cfg_attr(docsrs, feature(doc_auto_cfg))] #[cfg(feature = "openssl")] #[allow(unused_extern_crates)] extern crate tls_openssl as openssl; #[cfg(feature = "accept")] -#[cfg_attr(docsrs, doc(cfg(feature = "accept")))] pub mod accept; #[cfg(feature = "connect")] -#[cfg_attr(docsrs, doc(cfg(feature = "connect")))] pub mod connect; From c6ebbcf21b49ed8f6920f7eb2d7978301e87bafc Mon Sep 17 00:00:00 2001 From: Rob Ede Date: Sat, 1 Apr 2023 05:24:00 +0100 Subject: [PATCH 059/410] clippy run on -tls --- actix-server/src/test_server.rs | 2 +- actix-server/tests/server.rs | 2 ++ actix-tls/src/accept/native_tls.rs | 6 +++--- actix-tls/src/accept/openssl.rs | 6 +++--- actix-tls/src/accept/rustls.rs | 6 +++--- 5 files changed, 12 insertions(+), 10 deletions(-) diff --git a/actix-server/src/test_server.rs b/actix-server/src/test_server.rs index 67659948..828e0216 100644 --- a/actix-server/src/test_server.rs +++ b/actix-server/src/test_server.rs @@ -117,7 +117,7 @@ impl TestServerHandle { /// Stop server. fn stop(&mut self) { - let _ = self.server_handle.stop(false); + drop(self.server_handle.stop(false)); self.thread_handle.take().unwrap().join().unwrap().unwrap(); } diff --git a/actix-server/tests/server.rs b/actix-server/tests/server.rs index dc0c57ca..a46652d1 100644 --- a/actix-server/tests/server.rs +++ b/actix-server/tests/server.rs @@ -1,3 +1,5 @@ +#![allow(clippy::let_underscore_future)] + use std::{ net, sync::{ diff --git a/actix-tls/src/accept/native_tls.rs b/actix-tls/src/accept/native_tls.rs index ce98e687..aad9c4c8 100644 --- a/actix-tls/src/accept/native_tls.rs +++ b/actix-tls/src/accept/native_tls.rs @@ -73,17 +73,17 @@ impl AsyncWrite for TlsStream { } fn is_write_vectored(&self) -> bool { - (&**self).is_write_vectored() + (**self).is_write_vectored() } } impl ActixStream for TlsStream { fn poll_read_ready(&self, cx: &mut Context<'_>) -> Poll> { - IO::poll_read_ready((&**self).get_ref().get_ref().get_ref(), cx) + IO::poll_read_ready((**self).get_ref().get_ref().get_ref(), cx) } fn poll_write_ready(&self, cx: &mut Context<'_>) -> Poll> { - IO::poll_write_ready((&**self).get_ref().get_ref().get_ref(), cx) + IO::poll_write_ready((**self).get_ref().get_ref().get_ref(), cx) } } diff --git a/actix-tls/src/accept/openssl.rs b/actix-tls/src/accept/openssl.rs index 32973b66..81c207ee 100644 --- a/actix-tls/src/accept/openssl.rs +++ b/actix-tls/src/accept/openssl.rs @@ -76,17 +76,17 @@ impl AsyncWrite for TlsStream { } fn is_write_vectored(&self) -> bool { - (&**self).is_write_vectored() + (**self).is_write_vectored() } } impl ActixStream for TlsStream { fn poll_read_ready(&self, cx: &mut Context<'_>) -> Poll> { - IO::poll_read_ready((&**self).get_ref(), cx) + IO::poll_read_ready((**self).get_ref(), cx) } fn poll_write_ready(&self, cx: &mut Context<'_>) -> Poll> { - IO::poll_write_ready((&**self).get_ref(), cx) + IO::poll_write_ready((**self).get_ref(), cx) } } diff --git a/actix-tls/src/accept/rustls.rs b/actix-tls/src/accept/rustls.rs index fd0ebfb0..bf324e3c 100644 --- a/actix-tls/src/accept/rustls.rs +++ b/actix-tls/src/accept/rustls.rs @@ -76,17 +76,17 @@ impl AsyncWrite for TlsStream { } fn is_write_vectored(&self) -> bool { - (&**self).is_write_vectored() + (**self).is_write_vectored() } } impl ActixStream for TlsStream { fn poll_read_ready(&self, cx: &mut Context<'_>) -> Poll> { - IO::poll_read_ready((&**self).get_ref().0, cx) + IO::poll_read_ready((**self).get_ref().0, cx) } fn poll_write_ready(&self, cx: &mut Context<'_>) -> Poll> { - IO::poll_write_ready((&**self).get_ref().0, cx) + IO::poll_write_ready((**self).get_ref().0, cx) } } From 28f36e4e3087344d4a3984a60e7fdd12d4d047bd Mon Sep 17 00:00:00 2001 From: Rob Ede Date: Sat, 1 Apr 2023 05:24:40 +0100 Subject: [PATCH 060/410] update unreleased sections date --- actix-codec/CHANGES.md | 2 +- actix-macros/CHANGES.md | 2 +- actix-rt/CHANGES.md | 2 +- actix-server/CHANGES.md | 2 +- actix-service/CHANGES.md | 2 +- actix-tls/CHANGES.md | 2 +- actix-tracing/CHANGES.md | 2 +- actix-utils/CHANGES.md | 2 +- bytestring/CHANGES.md | 2 +- local-channel/CHANGES.md | 2 +- local-waker/CHANGES.md | 2 +- 11 files changed, 11 insertions(+), 11 deletions(-) diff --git a/actix-codec/CHANGES.md b/actix-codec/CHANGES.md index 50861701..cbbcb578 100644 --- a/actix-codec/CHANGES.md +++ b/actix-codec/CHANGES.md @@ -1,6 +1,6 @@ # Changes -## Unreleased - 2022-xx-xx +## Unreleased - 2023-xx-xx - Minimum supported Rust version (MSRV) is now 1.59. diff --git a/actix-macros/CHANGES.md b/actix-macros/CHANGES.md index bb75cb47..79ff37c9 100644 --- a/actix-macros/CHANGES.md +++ b/actix-macros/CHANGES.md @@ -1,6 +1,6 @@ # Changes -## Unreleased - 2022-xx-xx +## Unreleased - 2023-xx-xx - Minimum supported Rust version (MSRV) is now 1.59. diff --git a/actix-rt/CHANGES.md b/actix-rt/CHANGES.md index 2d7a4da6..75aeea92 100644 --- a/actix-rt/CHANGES.md +++ b/actix-rt/CHANGES.md @@ -1,6 +1,6 @@ # Changes -## Unreleased - 2022-xx-xx +## Unreleased - 2023-xx-xx ## 2.8.0 - 2022-12-21 diff --git a/actix-server/CHANGES.md b/actix-server/CHANGES.md index cde39f7f..a60c0d42 100644 --- a/actix-server/CHANGES.md +++ b/actix-server/CHANGES.md @@ -1,6 +1,6 @@ # Changes -## Unreleased - 2022-xx-xx +## Unreleased - 2023-xx-xx ## 2.2.0 - 2022-12-21 diff --git a/actix-service/CHANGES.md b/actix-service/CHANGES.md index b67a231f..a5822915 100644 --- a/actix-service/CHANGES.md +++ b/actix-service/CHANGES.md @@ -1,6 +1,6 @@ # Changes -## Unreleased - 2022-xx-xx +## Unreleased - 2023-xx-xx - Minimum supported Rust version (MSRV) is now 1.59. diff --git a/actix-tls/CHANGES.md b/actix-tls/CHANGES.md index 886cc062..ff023ce4 100644 --- a/actix-tls/CHANGES.md +++ b/actix-tls/CHANGES.md @@ -1,6 +1,6 @@ # Changes -## Unreleased - 2022-xx-xx +## Unreleased - 2023-xx-xx - Minimum supported Rust version (MSRV) is now 1.59. diff --git a/actix-tracing/CHANGES.md b/actix-tracing/CHANGES.md index dd5c2d01..73f87101 100644 --- a/actix-tracing/CHANGES.md +++ b/actix-tracing/CHANGES.md @@ -1,6 +1,6 @@ # Changes -## Unreleased - 2022-xx-xx +## Unreleased - 2023-xx-xx - Minimum supported Rust version (MSRV) is now 1.59. diff --git a/actix-utils/CHANGES.md b/actix-utils/CHANGES.md index 03bca650..f00d29b8 100644 --- a/actix-utils/CHANGES.md +++ b/actix-utils/CHANGES.md @@ -1,6 +1,6 @@ # Changes -## Unreleased - 2022-xx-xx +## Unreleased - 2023-xx-xx - Minimum supported Rust version (MSRV) is now 1.59. diff --git a/bytestring/CHANGES.md b/bytestring/CHANGES.md index c93a5429..a66b9e12 100644 --- a/bytestring/CHANGES.md +++ b/bytestring/CHANGES.md @@ -1,6 +1,6 @@ # Changes -## Unreleased - 2022-xx-xx +## Unreleased - 2023-xx-xx ## 1.3.0 - 2023-03-03 diff --git a/local-channel/CHANGES.md b/local-channel/CHANGES.md index 53530ff4..90e14e95 100644 --- a/local-channel/CHANGES.md +++ b/local-channel/CHANGES.md @@ -1,6 +1,6 @@ # Changes -## Unreleased - 2022-xx-xx +## Unreleased - 2023-xx-xx - Minimum supported Rust version (MSRV) is now 1.59. diff --git a/local-waker/CHANGES.md b/local-waker/CHANGES.md index 5204259c..e7294eb3 100644 --- a/local-waker/CHANGES.md +++ b/local-waker/CHANGES.md @@ -1,6 +1,6 @@ # Changes -## Unreleased - 2022-xx-xx +## Unreleased - 2023-xx-xx - Minimum supported Rust version (MSRV) is now 1.59. From c0693da9ba5a2de7be7627cdd4e666c5505a6bc5 Mon Sep 17 00:00:00 2001 From: Rob Ede Date: Sat, 1 Apr 2023 21:39:19 +0100 Subject: [PATCH 061/410] update msrv to 1.60 (#482 * update msrv to 1.60 * inherit workspace msrv --- .github/workflows/ci-master.yml | 79 +++++++++--------------------- .github/workflows/ci.yml | 82 +++++++++----------------------- .github/workflows/clippy-fmt.yml | 38 ++++++++------- .github/workflows/upload-doc.yml | 13 +++-- Cargo.toml | 1 + README.md | 2 +- actix-codec/CHANGES.md | 2 +- actix-codec/Cargo.toml | 7 +-- actix-macros/CHANGES.md | 2 +- actix-macros/Cargo.toml | 3 +- actix-macros/tests/trybuild.rs | 2 +- actix-rt/CHANGES.md | 2 + actix-rt/Cargo.toml | 7 +-- actix-server/CHANGES.md | 2 + actix-server/Cargo.toml | 7 +-- actix-service/CHANGES.md | 2 +- actix-service/Cargo.toml | 7 +-- actix-tls/CHANGES.md | 2 +- actix-tls/Cargo.toml | 7 +-- actix-tracing/CHANGES.md | 2 +- actix-tracing/Cargo.toml | 7 +-- actix-utils/CHANGES.md | 2 +- actix-utils/Cargo.toml | 7 +-- bytestring/Cargo.toml | 7 +-- clippy.toml | 1 - local-channel/CHANGES.md | 2 +- local-channel/Cargo.toml | 3 +- local-waker/CHANGES.md | 2 +- local-waker/Cargo.toml | 3 +- 29 files changed, 110 insertions(+), 193 deletions(-) delete mode 100644 clippy.toml diff --git a/.github/workflows/ci-master.yml b/.github/workflows/ci-master.yml index d77be7b0..5f4b7428 100644 --- a/.github/workflows/ci-master.yml +++ b/.github/workflows/ci-master.yml @@ -4,6 +4,13 @@ on: push: branches: [master] +permissions: + contents: read + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + jobs: build_and_test_nightly: strategy: @@ -21,8 +28,7 @@ jobs: name: ${{ matrix.target.name }} / ${{ matrix.version }} runs-on: ${{ matrix.target.os }} - env: - VCPKGRS_DYNAMIC: 1 + env: {} steps: - name: Setup Routing @@ -31,36 +37,17 @@ jobs: - uses: actions/checkout@v3 - # install OpenSSL on Windows - - name: Set vcpkg root - if: matrix.target.triple == 'x86_64-pc-windows-msvc' || matrix.target.triple == 'i686-pc-windows-msvc' - run: echo "VCPKG_ROOT=$env:VCPKG_INSTALLATION_ROOT" | Out-File -FilePath $env:GITHUB_ENV -Append - name: Install OpenSSL - if: matrix.target.triple == 'x86_64-pc-windows-msvc' - run: vcpkg install openssl:x64-windows - - name: Install OpenSSL - if: matrix.target.triple == 'i686-pc-windows-msvc' - run: vcpkg install openssl:x86-windows + if: matrix.target.os == 'windows-latest' + run: choco install openssl + - name: Set OpenSSL dir in env + if: matrix.target.os == 'windows-latest' + run: echo 'OPENSSL_DIR=C:\Program Files\OpenSSL-Win64' | Out-File -FilePath $env:GITHUB_ENV -Append - - name: Install ${{ matrix.version }} - run: | - rustup set profile minimal - rustup install ${{ matrix.version }}-${{ matrix.target.triple }} - rustup override set ${{ matrix.version }}-${{ matrix.target.triple }} - - # - name: Install MSYS2 - # if: matrix.target.triple == 'x86_64-pc-windows-gnu' - # uses: msys2/setup-msys2@v2 - # - name: Install MinGW Packages - # if: matrix.target.triple == 'x86_64-pc-windows-gnu' - # run: | - # msys2 -c 'pacman -Sy --noconfirm pacman' - # msys2 -c 'pacman --noconfirm -S base-devel pkg-config' - - # - name: Generate Cargo.lock - # run: cargo generate-lockfile - # - name: Cache Dependencies - # uses: Swatinem/rust-cache@v2.2.0 + - name: Install Rust (${{ matrix.version }}) + uses: actions-rust-lang/setup-rust-toolchain@v1 + with: + toolchain: ${{ matrix.version }} - name: Install cargo-hack run: cargo install cargo-hack @@ -109,15 +96,8 @@ jobs: - uses: actions/checkout@v3 - name: Install Rust (nightly) - run: | - rustup set profile minimal - rustup install nightly - rustup override set nightly - - - name: Generate Cargo.lock - run: cargo generate-lockfile - - name: Cache Dependencies - uses: Swatinem/rust-cache@v2.2.0 + uses: actions-rust-lang/setup-rust-toolchain@v1 + with: { toolchain: nightly } - name: Generate coverage file if: github.ref == 'refs/heads/master' @@ -136,15 +116,8 @@ jobs: - uses: actions/checkout@v3 - name: Install Rust (nightly) - run: | - rustup set profile minimal - rustup install nightly - rustup override set nightly - - - name: Generate Cargo.lock - run: cargo generate-lockfile - - name: Cache Dependencies - uses: Swatinem/rust-cache@v2.2.0 + uses: actions-rust-lang/setup-rust-toolchain@v1 + with: { toolchain: nightly } - name: Install cargo-minimal-versions run: cargo install cargo-minimal-versions @@ -162,15 +135,7 @@ jobs: - uses: actions/checkout@v3 - name: Install Rust - run: | - rustup set profile minimal - rustup install stable - rustup override set stable - - - name: Generate Cargo.lock - run: cargo generate-lockfile - - name: Cache Dependencies - uses: Swatinem/rust-cache@v2.2.0 + uses: actions-rust-lang/setup-rust-toolchain@v1 - name: Install cargo-nextest run: cargo install cargo-nextest diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 2434ea28..80f3f9a1 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -1,10 +1,15 @@ name: CI -on: - pull_request: - types: [opened, synchronize, reopened] - push: - branches: [master] +on: + pull_request: {} + push: { branches: [master] } + +permissions: + contents: read + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true jobs: build_and_test: @@ -18,14 +23,13 @@ jobs: - { name: Windows (MinGW), os: windows-latest, triple: x86_64-pc-windows-gnu } - { name: Windows (32-bit), os: windows-latest, triple: i686-pc-windows-msvc } version: - - 1.59.0 + - 1.60.0 - stable name: ${{ matrix.target.name }} / ${{ matrix.version }} runs-on: ${{ matrix.target.os }} - env: - VCPKGRS_DYNAMIC: 1 + env: {} steps: - name: Setup Routing @@ -34,60 +38,28 @@ jobs: - uses: actions/checkout@v3 - # install OpenSSL on Windows - - name: Set vcpkg root - if: matrix.target.triple == 'x86_64-pc-windows-msvc' || matrix.target.triple == 'i686-pc-windows-msvc' - run: echo "VCPKG_ROOT=$env:VCPKG_INSTALLATION_ROOT" | Out-File -FilePath $env:GITHUB_ENV -Append - name: Install OpenSSL - if: matrix.target.triple == 'x86_64-pc-windows-msvc' - run: vcpkg install openssl:x64-windows - - name: Install OpenSSL - if: matrix.target.triple == 'i686-pc-windows-msvc' - run: vcpkg install openssl:x86-windows + if: matrix.target.os == 'windows-latest' + run: choco install openssl + - name: Set OpenSSL dir in env + if: matrix.target.os == 'windows-latest' + run: echo 'OPENSSL_DIR=C:\Program Files\OpenSSL-Win64' | Out-File -FilePath $env:GITHUB_ENV -Append - name: Install ${{ matrix.version }} - run: | - rustup set profile minimal - rustup install ${{ matrix.version }}-${{ matrix.target.triple }} - rustup override set ${{ matrix.version }}-${{ matrix.target.triple }} - - # - name: Install MSYS2 - # if: matrix.target.triple == 'x86_64-pc-windows-gnu' - # uses: msys2/setup-msys2@v2 - # - name: Install MinGW Packages - # if: matrix.target.triple == 'x86_64-pc-windows-gnu' - # run: | - # msys2 -c 'pacman -Sy --noconfirm pacman' - # msys2 -c 'pacman --noconfirm -S base-devel pkg-config' - - # - name: Generate Cargo.lock - # run: cargo generate-lockfile - # - name: Cache Dependencies - # uses: Swatinem/rust-cache@v2.2.0 + uses: actions-rust-lang/setup-rust-toolchain@v1 + with: + toolchain: ${{ matrix.version }} - name: Install cargo-hack - if: matrix.version != '1.59.0' run: cargo install cargo-hack - # newer cargo-hack versions require 1.60 or above - - name: Install cargo-hack (1.59.0) - if: matrix.version == '1.59.0' - run: cargo install cargo-hack --version=0.5.21 - - - name: workaround MSRV issues - if: matrix.version == '1.59.0' - run: | - cargo install cargo-edit --version=0.8.0 - cargo add env_logger@0.9 --dev -p=actix-tls - cargo add env_logger@0.9 --dev -p=actix-server - - name: Generate Cargo.lock run: cargo generate-lockfile - name: workaround MSRV issues if: matrix.version != 'stable' run: | - cargo update -p=time --precise=0.3.13 # time is only a dev dep so shouldn't affect msrv + cargo update -p=time --precise=0.3.16 # time is only a dev dep so shouldn't affect msrv - name: check lib if: > @@ -125,7 +97,6 @@ jobs: sudo bash -c "ulimit -Sl 512 && ulimit -Hl 512 && PATH=$PATH:/usr/share/rust/.cargo/bin && RUSTUP_TOOLCHAIN=${{ matrix.version }} cargo ci-test && RUSTUP_TOOLCHAIN=${{ matrix.version }} cargo ci-test-linux" - name: Clear the cargo caches - if: matrix.version == 'stable' # MSRV(1.58) cargo-cache now fails to install on 1.59 run: | cargo install cargo-cache --version 0.6.2 --no-default-features --features ci-autoclean cargo-cache @@ -138,15 +109,8 @@ jobs: - uses: actions/checkout@v3 - name: Install Rust (nightly) - run: | - rustup set profile minimal - rustup install nightly - rustup override set nightly - - - name: Generate Cargo.lock - run: cargo generate-lockfile - - name: Cache Dependencies - uses: Swatinem/rust-cache@v2.2.0 + uses: actions-rust-lang/setup-rust-toolchain@v1 + with: { toolchain: nightly } - name: doc tests io-uring run: | diff --git a/.github/workflows/clippy-fmt.yml b/.github/workflows/clippy-fmt.yml index 978a1a38..b26b1282 100644 --- a/.github/workflows/clippy-fmt.yml +++ b/.github/workflows/clippy-fmt.yml @@ -1,37 +1,43 @@ name: Lint -on: - pull_request: - types: [opened, synchronize, reopened] +on: [pull_request] + +permissions: + contents: read + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true jobs: fmt: runs-on: ubuntu-latest + steps: - uses: actions/checkout@v3 - - name: Install Rust - run: | - rustup set profile minimal - rustup install stable - rustup override set stable - rustup component add rustfmt + - uses: actions-rust-lang/setup-rust-toolchain@v1 + with: + toolchain: nightly + components: rustfmt + - name: Rustfmt Check run: cargo fmt --all -- --check clippy: + permissions: + contents: write + runs-on: ubuntu-latest + steps: - uses: actions/checkout@v3 - - name: Install Rust - run: | - rustup set profile minimal - rustup install stable - rustup override set stable - rustup component add clippy + - uses: actions-rust-lang/setup-rust-toolchain@v1 + with: { components: clippy } + - uses: giraffate/clippy-action@v1 with: - reporter: "github-pr-check" + reporter: 'github-pr-check' github_token: ${{ secrets.GITHUB_TOKEN }} clippy_flags: --workspace --all-features --tests --examples --bins -- -Dclippy::todo diff --git a/.github/workflows/upload-doc.yml b/.github/workflows/upload-doc.yml index a4f3928d..f36cb138 100644 --- a/.github/workflows/upload-doc.yml +++ b/.github/workflows/upload-doc.yml @@ -1,21 +1,20 @@ name: Upload documentation on: - push: - branches: [master] + push: { branches: [master] } jobs: build: + permissions: + contents: write + runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - - name: Install Rust - run: | - rustup set profile minimal - rustup install nightly - rustup override set nightly + - uses: actions-rust-lang/setup-rust-toolchain@v1 + with: { toolchain: nightly } - name: Build Docs run: cargo doc --workspace --all-features --no-deps diff --git a/Cargo.toml b/Cargo.toml index eb452e1a..ccd36595 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -12,6 +12,7 @@ members = [ "local-channel", "local-waker", ] +resolver = "2" [patch.crates-io] actix-codec = { path = "actix-codec" } diff --git a/README.md b/README.md index 30fb2091..fdf829f5 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.59. 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.60. 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 cbbcb578..ebb867cf 100644 --- a/actix-codec/CHANGES.md +++ b/actix-codec/CHANGES.md @@ -2,7 +2,7 @@ ## Unreleased - 2023-xx-xx -- Minimum supported Rust version (MSRV) is now 1.59. +- Minimum supported Rust version (MSRV) is now 1.60. ## 0.5.1 - 2022-03-15 diff --git a/actix-codec/Cargo.toml b/actix-codec/Cargo.toml index 900873f2..0aa128bb 100644 --- a/actix-codec/Cargo.toml +++ b/actix-codec/Cargo.toml @@ -10,11 +10,8 @@ keywords = ["network", "framework", "async", "futures"] repository = "https://github.com/actix/actix-net" categories = ["network-programming", "asynchronous"] license = "MIT OR Apache-2.0" -edition = "2018" - -[lib] -name = "actix_codec" -path = "src/lib.rs" +edition = "2021" +rust-version = "1.60" [dependencies] bitflags = "1.2" diff --git a/actix-macros/CHANGES.md b/actix-macros/CHANGES.md index 79ff37c9..20efed15 100644 --- a/actix-macros/CHANGES.md +++ b/actix-macros/CHANGES.md @@ -2,7 +2,7 @@ ## Unreleased - 2023-xx-xx -- Minimum supported Rust version (MSRV) is now 1.59. +- Minimum supported Rust version (MSRV) is now 1.60. ## 0.2.3 - 2021-10-19 diff --git a/actix-macros/Cargo.toml b/actix-macros/Cargo.toml index 303568d5..023fa1a8 100644 --- a/actix-macros/Cargo.toml +++ b/actix-macros/Cargo.toml @@ -10,7 +10,8 @@ description = "Macros for Actix system and runtime" repository = "https://github.com/actix/actix-net.git" categories = ["network-programming", "asynchronous"] license = "MIT OR Apache-2.0" -edition = "2018" +edition = "2021" +rust-version = "1.60" [lib] proc-macro = true diff --git a/actix-macros/tests/trybuild.rs b/actix-macros/tests/trybuild.rs index 666769df..51d152a4 100644 --- a/actix-macros/tests/trybuild.rs +++ b/actix-macros/tests/trybuild.rs @@ -1,4 +1,4 @@ -#[rustversion::stable(1.59)] // MSRV +#[rustversion::stable(1.60)] // MSRV #[test] fn compile_macros() { let t = trybuild::TestCases::new(); diff --git a/actix-rt/CHANGES.md b/actix-rt/CHANGES.md index 75aeea92..547b7524 100644 --- a/actix-rt/CHANGES.md +++ b/actix-rt/CHANGES.md @@ -2,6 +2,8 @@ ## Unreleased - 2023-xx-xx +- Minimum supported Rust version (MSRV) is now 1.60. + ## 2.8.0 - 2022-12-21 - Add `#[track_caller]` attribute to `spawn` functions and methods. [#454] diff --git a/actix-rt/Cargo.toml b/actix-rt/Cargo.toml index 70716888..8e967405 100644 --- a/actix-rt/Cargo.toml +++ b/actix-rt/Cargo.toml @@ -11,11 +11,8 @@ homepage = "https://actix.rs" repository = "https://github.com/actix/actix-net.git" categories = ["network-programming", "asynchronous"] license = "MIT OR Apache-2.0" -edition = "2018" - -[lib] -name = "actix_rt" -path = "src/lib.rs" +edition = "2021" +rust-version = "1.60" [features] default = ["macros"] diff --git a/actix-server/CHANGES.md b/actix-server/CHANGES.md index a60c0d42..1147dcbd 100644 --- a/actix-server/CHANGES.md +++ b/actix-server/CHANGES.md @@ -2,6 +2,8 @@ ## Unreleased - 2023-xx-xx +- Minimum supported Rust version (MSRV) is now 1.60. + ## 2.2.0 - 2022-12-21 - Minimum supported Rust version (MSRV) is now 1.59. diff --git a/actix-server/Cargo.toml b/actix-server/Cargo.toml index bc0187e8..05bfd0b1 100755 --- a/actix-server/Cargo.toml +++ b/actix-server/Cargo.toml @@ -12,11 +12,8 @@ categories = ["network-programming", "asynchronous"] homepage = "https://actix.rs" repository = "https://github.com/actix/actix-net.git" license = "MIT OR Apache-2.0" -edition = "2018" - -[lib] -name = "actix_server" -path = "src/lib.rs" +edition = "2021" +rust-version = "1.60" [features] default = [] diff --git a/actix-service/CHANGES.md b/actix-service/CHANGES.md index a5822915..0640c1cd 100644 --- a/actix-service/CHANGES.md +++ b/actix-service/CHANGES.md @@ -2,7 +2,7 @@ ## Unreleased - 2023-xx-xx -- Minimum supported Rust version (MSRV) is now 1.59. +- Minimum supported Rust version (MSRV) is now 1.60. ## 2.0.2 - 2021-12-18 diff --git a/actix-service/Cargo.toml b/actix-service/Cargo.toml index 5a0252db..74904634 100644 --- a/actix-service/Cargo.toml +++ b/actix-service/Cargo.toml @@ -10,11 +10,8 @@ keywords = ["network", "framework", "async", "futures", "service"] categories = ["network-programming", "asynchronous", "no-std"] repository = "https://github.com/actix/actix-net" license = "MIT OR Apache-2.0" -edition = "2018" - -[lib] -name = "actix_service" -path = "src/lib.rs" +edition = "2021" +rust-version = "1.60" [dependencies] futures-core = { version = "0.3.17", default-features = false } diff --git a/actix-tls/CHANGES.md b/actix-tls/CHANGES.md index ff023ce4..f4f248b2 100644 --- a/actix-tls/CHANGES.md +++ b/actix-tls/CHANGES.md @@ -2,7 +2,7 @@ ## Unreleased - 2023-xx-xx -- Minimum supported Rust version (MSRV) is now 1.59. +- Minimum supported Rust version (MSRV) is now 1.60. ## 3.0.4 - 2022-03-15 diff --git a/actix-tls/Cargo.toml b/actix-tls/Cargo.toml index b5f71695..bf90ff46 100755 --- a/actix-tls/Cargo.toml +++ b/actix-tls/Cargo.toml @@ -10,16 +10,13 @@ keywords = ["network", "tls", "ssl", "async", "transport"] repository = "https://github.com/actix/actix-net.git" categories = ["network-programming", "asynchronous", "cryptography"] license = "MIT OR Apache-2.0" -edition = "2018" +edition = "2021" +rust-version = "1.60" [package.metadata.docs.rs] all-features = true rustdoc-args = ["--cfg", "docsrs"] -[lib] -name = "actix_tls" -path = "src/lib.rs" - [features] default = ["accept", "connect"] diff --git a/actix-tracing/CHANGES.md b/actix-tracing/CHANGES.md index 73f87101..f672659a 100644 --- a/actix-tracing/CHANGES.md +++ b/actix-tracing/CHANGES.md @@ -2,7 +2,7 @@ ## Unreleased - 2023-xx-xx -- Minimum supported Rust version (MSRV) is now 1.59. +- Minimum supported Rust version (MSRV) is now 1.60. ## 0.1.0 - 2020-01-15 diff --git a/actix-tracing/Cargo.toml b/actix-tracing/Cargo.toml index 279ffc28..27dfbc22 100644 --- a/actix-tracing/Cargo.toml +++ b/actix-tracing/Cargo.toml @@ -9,11 +9,8 @@ repository = "https://github.com/actix/actix-net.git" documentation = "https://docs.rs/actix-tracing" categories = ["network-programming", "asynchronous"] license = "MIT OR Apache-2.0" -edition = "2018" - -[lib] -name = "actix_tracing" -path = "src/lib.rs" +edition = "2021" +rust-version = "1.60" [dependencies] actix-service = "2" diff --git a/actix-utils/CHANGES.md b/actix-utils/CHANGES.md index f00d29b8..af6434ab 100644 --- a/actix-utils/CHANGES.md +++ b/actix-utils/CHANGES.md @@ -2,7 +2,7 @@ ## Unreleased - 2023-xx-xx -- Minimum supported Rust version (MSRV) is now 1.59. +- Minimum supported Rust version (MSRV) is now 1.60. ## 3.0.1 - 2022-10-21 diff --git a/actix-utils/Cargo.toml b/actix-utils/Cargo.toml index 3ee199a2..38d8af5e 100644 --- a/actix-utils/Cargo.toml +++ b/actix-utils/Cargo.toml @@ -10,11 +10,8 @@ keywords = ["network", "framework", "async", "futures"] categories = ["network-programming", "asynchronous"] repository = "https://github.com/actix/actix-net" license = "MIT OR Apache-2.0" -edition = "2018" - -[lib] -name = "actix_utils" -path = "src/lib.rs" +edition = "2021" +rust-version = "1.60" [dependencies] pin-project-lite = "0.2" diff --git a/bytestring/Cargo.toml b/bytestring/Cargo.toml index 0720c7bf..21da5a95 100644 --- a/bytestring/Cargo.toml +++ b/bytestring/Cargo.toml @@ -11,11 +11,8 @@ categories = ["no-std", "web-programming"] homepage = "https://actix.rs" repository = "https://github.com/actix/actix-net.git" license = "MIT OR Apache-2.0" -edition = "2018" - -[lib] -name = "bytestring" -path = "src/lib.rs" +edition = "2021" +rust-version = "1.60" [dependencies] bytes = { version = "1.2", default-features = false } diff --git a/clippy.toml b/clippy.toml deleted file mode 100644 index abe19b3a..00000000 --- a/clippy.toml +++ /dev/null @@ -1 +0,0 @@ -msrv = "1.59" diff --git a/local-channel/CHANGES.md b/local-channel/CHANGES.md index 90e14e95..b1bad2f5 100644 --- a/local-channel/CHANGES.md +++ b/local-channel/CHANGES.md @@ -2,7 +2,7 @@ ## Unreleased - 2023-xx-xx -- Minimum supported Rust version (MSRV) is now 1.59. +- Minimum supported Rust version (MSRV) is now 1.60. ## 0.1.3 - 2022-05-03 diff --git a/local-channel/Cargo.toml b/local-channel/Cargo.toml index 8484577d..b99b397c 100644 --- a/local-channel/Cargo.toml +++ b/local-channel/Cargo.toml @@ -9,7 +9,8 @@ authors = [ repository = "https://github.com/actix/actix-net.git" keywords = ["channel", "local", "futures"] license = "MIT OR Apache-2.0" -edition = "2018" +edition = "2021" +rust-version = "1.60" [dependencies] futures-core = "0.3.17" diff --git a/local-waker/CHANGES.md b/local-waker/CHANGES.md index e7294eb3..68f4348b 100644 --- a/local-waker/CHANGES.md +++ b/local-waker/CHANGES.md @@ -2,7 +2,7 @@ ## Unreleased - 2023-xx-xx -- Minimum supported Rust version (MSRV) is now 1.59. +- Minimum supported Rust version (MSRV) is now 1.60. ## 0.1.3 - 2022-05-03 diff --git a/local-waker/Cargo.toml b/local-waker/Cargo.toml index 6a0b44cd..1baa08c0 100644 --- a/local-waker/Cargo.toml +++ b/local-waker/Cargo.toml @@ -10,6 +10,7 @@ repository = "https://github.com/actix/actix-net.git" keywords = ["waker", "local", "futures", "no-std"] categories = ["asynchronous", "no-std"] license = "MIT OR Apache-2.0" -edition = "2018" +edition = "2021" +rust-version = "1.60" [dependencies] From 54ec06cd2393d4cd8b5bfc376935f08f58dbd554 Mon Sep 17 00:00:00 2001 From: Rob Ede Date: Sat, 1 Apr 2023 21:57:10 +0100 Subject: [PATCH 062/410] update bitflags to v2 --- .github/workflows/ci.yml | 2 +- .github/workflows/upload-doc.yml | 7 +++++++ actix-codec/Cargo.toml | 2 +- actix-codec/src/framed.rs | 1 + 4 files changed, 10 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 80f3f9a1..9e0fcf11 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -45,7 +45,7 @@ jobs: if: matrix.target.os == 'windows-latest' run: echo 'OPENSSL_DIR=C:\Program Files\OpenSSL-Win64' | Out-File -FilePath $env:GITHUB_ENV -Append - - name: Install ${{ matrix.version }} + - name: Install Rust (${{ matrix.version }}) uses: actions-rust-lang/setup-rust-toolchain@v1 with: toolchain: ${{ matrix.version }} diff --git a/.github/workflows/upload-doc.yml b/.github/workflows/upload-doc.yml index f36cb138..66147949 100644 --- a/.github/workflows/upload-doc.yml +++ b/.github/workflows/upload-doc.yml @@ -3,6 +3,13 @@ name: Upload documentation on: push: { branches: [master] } +permissions: + contents: write + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + jobs: build: permissions: diff --git a/actix-codec/Cargo.toml b/actix-codec/Cargo.toml index 0aa128bb..84f964c3 100644 --- a/actix-codec/Cargo.toml +++ b/actix-codec/Cargo.toml @@ -14,7 +14,7 @@ edition = "2021" rust-version = "1.60" [dependencies] -bitflags = "1.2" +bitflags = "2" bytes = "1" futures-core = { version = "0.3.7", default-features = false } futures-sink = { version = "0.3.7", default-features = false } diff --git a/actix-codec/src/framed.rs b/actix-codec/src/framed.rs index c03ea02d..0d62a61c 100644 --- a/actix-codec/src/framed.rs +++ b/actix-codec/src/framed.rs @@ -18,6 +18,7 @@ const LW: usize = 1024; const HW: usize = 8 * 1024; bitflags! { + #[derive(Debug, Clone, Copy)] struct Flags: u8 { const EOF = 0b0001; const READABLE = 0b0010; From dbce15099363c50cd4b3c47d8e3f56b9b1eac21c Mon Sep 17 00:00:00 2001 From: Rob Ede Date: Sat, 1 Apr 2023 22:21:14 +0100 Subject: [PATCH 063/410] update syn to v2 (#481 * update syn to v2 * update changelog --- actix-macros/CHANGES.md | 1 + actix-macros/Cargo.toml | 2 +- actix-macros/src/lib.rs | 42 +++++++++++++++++++++++++--------- actix-macros/tests/trybuild.rs | 1 + 4 files changed, 34 insertions(+), 12 deletions(-) diff --git a/actix-macros/CHANGES.md b/actix-macros/CHANGES.md index 20efed15..1badd6b7 100644 --- a/actix-macros/CHANGES.md +++ b/actix-macros/CHANGES.md @@ -2,6 +2,7 @@ ## Unreleased - 2023-xx-xx +- Update `syn` dependency to `2`. - Minimum supported Rust version (MSRV) is now 1.60. ## 0.2.3 - 2021-10-19 diff --git a/actix-macros/Cargo.toml b/actix-macros/Cargo.toml index 023fa1a8..902a6dd1 100644 --- a/actix-macros/Cargo.toml +++ b/actix-macros/Cargo.toml @@ -18,7 +18,7 @@ proc-macro = true [dependencies] quote = "1" -syn = { version = "1", features = ["full"] } +syn = { version = "2", features = ["full"] } [dev-dependencies] actix-rt = "2" diff --git a/actix-macros/src/lib.rs b/actix-macros/src/lib.rs index 284f6920..020b16db 100644 --- a/actix-macros/src/lib.rs +++ b/actix-macros/src/lib.rs @@ -15,6 +15,9 @@ use proc_macro::TokenStream; use quote::quote; +use syn::parse::Parser as _; + +type AttributeArgs = syn::punctuated::Punctuated; /// Marks async entry-point function to be executed by Actix system. /// @@ -25,9 +28,9 @@ use quote::quote; /// println!("Hello world"); /// } /// ``` -#[allow(clippy::needless_doctest_main)] +// #[allow(clippy::needless_doctest_main)] +// #[cfg(not(test))] // Work around for rust-lang/rust#62127 #[proc_macro_attribute] -#[cfg(not(test))] // Work around for rust-lang/rust#62127 pub fn main(args: TokenStream, item: TokenStream) -> TokenStream { let mut input = match syn::parse::(item.clone()) { Ok(input) => input, @@ -35,7 +38,11 @@ pub fn main(args: TokenStream, item: TokenStream) -> TokenStream { Err(err) => return input_and_compile_error(item, err), }; - let args = syn::parse_macro_input!(args as syn::AttributeArgs); + let parser = AttributeArgs::parse_terminated; + let args = match parser.parse(args.clone()) { + Ok(args) => args, + Err(err) => return input_and_compile_error(args, err), + }; let attrs = &input.attrs; let vis = &input.vis; @@ -55,11 +62,15 @@ pub fn main(args: TokenStream, item: TokenStream) -> TokenStream { for arg in &args { match arg { - syn::NestedMeta::Meta(syn::Meta::NameValue(syn::MetaNameValue { - lit: syn::Lit::Str(lit), + syn::Meta::NameValue(syn::MetaNameValue { path, + value: + syn::Expr::Lit(syn::ExprLit { + lit: syn::Lit::Str(lit), + .. + }), .. - })) => match path + }) => match path .get_ident() .map(|i| i.to_string().to_lowercase()) .as_deref() @@ -78,6 +89,7 @@ pub fn main(args: TokenStream, item: TokenStream) -> TokenStream { .into(); } }, + _ => { return syn::Error::new_spanned(arg, "Unknown attribute specified") .to_compile_error() @@ -114,7 +126,11 @@ pub fn test(args: TokenStream, item: TokenStream) -> TokenStream { Err(err) => return input_and_compile_error(item, err), }; - let args = syn::parse_macro_input!(args as syn::AttributeArgs); + let parser = AttributeArgs::parse_terminated; + let args = match parser.parse(args.clone()) { + Ok(args) => args, + Err(err) => return input_and_compile_error(args, err), + }; let attrs = &input.attrs; let vis = &input.vis; @@ -123,7 +139,7 @@ pub fn test(args: TokenStream, item: TokenStream) -> TokenStream { let mut has_test_attr = false; for attr in attrs { - if attr.path.is_ident("test") { + if attr.path().is_ident("test") { has_test_attr = true; } } @@ -149,11 +165,15 @@ pub fn test(args: TokenStream, item: TokenStream) -> TokenStream { for arg in &args { match arg { - syn::NestedMeta::Meta(syn::Meta::NameValue(syn::MetaNameValue { - lit: syn::Lit::Str(lit), + syn::Meta::NameValue(syn::MetaNameValue { path, + value: + syn::Expr::Lit(syn::ExprLit { + lit: syn::Lit::Str(lit), + .. + }), .. - })) => match path + }) => match path .get_ident() .map(|i| i.to_string().to_lowercase()) .as_deref() diff --git a/actix-macros/tests/trybuild.rs b/actix-macros/tests/trybuild.rs index 51d152a4..7e399d49 100644 --- a/actix-macros/tests/trybuild.rs +++ b/actix-macros/tests/trybuild.rs @@ -2,6 +2,7 @@ #[test] fn compile_macros() { let t = trybuild::TestCases::new(); + t.pass("tests/trybuild/main-01-basic.rs"); t.compile_fail("tests/trybuild/main-02-only-async.rs"); t.pass("tests/trybuild/main-03-fn-params.rs"); From 6d0dc9628bfe3d02d69c3937e5e2633dbe80f614 Mon Sep 17 00:00:00 2001 From: Rob Ede Date: Sat, 1 Apr 2023 22:21:57 +0100 Subject: [PATCH 064/410] install cargo-hack faster --- .github/workflows/ci-master.yml | 12 ++++++------ .github/workflows/ci.yml | 4 ++-- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/.github/workflows/ci-master.yml b/.github/workflows/ci-master.yml index 5f4b7428..66bc042e 100644 --- a/.github/workflows/ci-master.yml +++ b/.github/workflows/ci-master.yml @@ -49,8 +49,8 @@ jobs: with: toolchain: ${{ matrix.version }} - - name: Install cargo-hack - run: cargo install cargo-hack + - uses: taiki-e/cache-cargo-install-action@v1 + with: { tool: cargo-hack } - name: check lib if: > @@ -119,11 +119,11 @@ jobs: uses: actions-rust-lang/setup-rust-toolchain@v1 with: { toolchain: nightly } - - name: Install cargo-minimal-versions - run: cargo install cargo-minimal-versions + - uses: taiki-e/cache-cargo-install-action@v1 + with: { tool: cargo-minimal-versions } - - name: Install cargo-hack - run: cargo install cargo-hack + - uses: taiki-e/cache-cargo-install-action@v1 + with: { tool: cargo-hack } - name: Check With Minimal Versions run: cargo minimal-versions check diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 9e0fcf11..f59d79e9 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -50,8 +50,8 @@ jobs: with: toolchain: ${{ matrix.version }} - - name: Install cargo-hack - run: cargo install cargo-hack + - uses: taiki-e/cache-cargo-install-action@v1 + with: { tool: cargo-hack } - name: Generate Cargo.lock run: cargo generate-lockfile From 80320a0325eed10057b3ef0dcdb3ad2c9a754edb Mon Sep 17 00:00:00 2001 From: Rob Ede Date: Sat, 1 Apr 2023 22:24:10 +0100 Subject: [PATCH 065/410] use secure tokio version range --- actix-codec/Cargo.toml | 2 +- actix-rt/Cargo.toml | 4 ++-- actix-server/Cargo.toml | 4 ++-- actix-tls/Cargo.toml | 2 +- local-channel/Cargo.toml | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/actix-codec/Cargo.toml b/actix-codec/Cargo.toml index 84f964c3..565bc830 100644 --- a/actix-codec/Cargo.toml +++ b/actix-codec/Cargo.toml @@ -20,7 +20,7 @@ futures-core = { version = "0.3.7", default-features = false } futures-sink = { version = "0.3.7", default-features = false } memchr = "2.3" pin-project-lite = "0.2" -tokio = "1.18.4" +tokio = "1.23.1" tokio-util = { version = "0.7", features = ["codec", "io"] } tracing = { version = "0.1.30", default-features = false, features = ["log"] } diff --git a/actix-rt/Cargo.toml b/actix-rt/Cargo.toml index 8e967405..fa5fc204 100644 --- a/actix-rt/Cargo.toml +++ b/actix-rt/Cargo.toml @@ -23,12 +23,12 @@ io-uring = ["tokio-uring"] actix-macros = { version = "0.2.3", optional = true } futures-core = { version = "0.3", default-features = false } -tokio = { version = "1.18.4", features = ["rt", "net", "parking_lot", "signal", "sync", "time"] } +tokio = { version = "1.23.1", features = ["rt", "net", "parking_lot", "signal", "sync", "time"] } # runtime for `io-uring` feature [target.'cfg(target_os = "linux")'.dependencies] tokio-uring = { version = "0.4", optional = true } [dev-dependencies] -tokio = { version = "1.18.4", features = ["full"] } +tokio = { version = "1.23.1", features = ["full"] } hyper = { version = "0.14.10", default-features = false, features = ["server", "tcp", "http1"] } diff --git a/actix-server/Cargo.toml b/actix-server/Cargo.toml index 05bfd0b1..ba9ef03c 100755 --- a/actix-server/Cargo.toml +++ b/actix-server/Cargo.toml @@ -29,7 +29,7 @@ futures-util = { version = "0.3.17", default-features = false, features = ["allo mio = { version = "0.8", features = ["os-poll", "net"] } num_cpus = "1.13" socket2 = "0.4.2" -tokio = { version = "1.18.4", features = ["sync"] } +tokio = { version = "1.23.1", features = ["sync"] } tracing = { version = "0.1.30", default-features = false, features = ["log"] } # runtime for `io-uring` feature @@ -43,4 +43,4 @@ actix-rt = "2.8" bytes = "1" env_logger = "0.10" futures-util = { version = "0.3.17", default-features = false, features = ["sink", "async-await-macro"] } -tokio = { version = "1.18.4", features = ["io-util", "rt-multi-thread", "macros", "fs"] } +tokio = { version = "1.23.1", features = ["io-util", "rt-multi-thread", "macros", "fs"] } diff --git a/actix-tls/Cargo.toml b/actix-tls/Cargo.toml index bf90ff46..64ac1d7c 100755 --- a/actix-tls/Cargo.toml +++ b/actix-tls/Cargo.toml @@ -46,7 +46,7 @@ actix-utils = "3" futures-core = { version = "0.3.7", default-features = false, features = ["alloc"] } impl-more = "0.1" pin-project-lite = "0.2.7" -tokio = "1.18.4" +tokio = "1.23.1" tokio-util = "0.7" tracing = { version = "0.1.30", default-features = false, features = ["log"] } diff --git a/local-channel/Cargo.toml b/local-channel/Cargo.toml index b99b397c..04a4b9b5 100644 --- a/local-channel/Cargo.toml +++ b/local-channel/Cargo.toml @@ -19,4 +19,4 @@ futures-util = { version = "0.3.17", default-features = false } local-waker = "0.1" [dev-dependencies] -tokio = { version = "1.18.4", features = ["rt", "macros"] } +tokio = { version = "1.23.1", features = ["rt", "macros"] } From 4cbe7412307ac662d33259d033d89468999c54e7 Mon Sep 17 00:00:00 2001 From: Rob Ede Date: Sat, 1 Apr 2023 22:26:08 +0100 Subject: [PATCH 066/410] use secure openssl version --- actix-server/Cargo.toml | 2 +- actix-tls/Cargo.toml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/actix-server/Cargo.toml b/actix-server/Cargo.toml index ba9ef03c..ade711f4 100755 --- a/actix-server/Cargo.toml +++ b/actix-server/Cargo.toml @@ -28,7 +28,7 @@ futures-core = { version = "0.3.17", default-features = false, features = ["allo futures-util = { version = "0.3.17", default-features = false, features = ["alloc"] } mio = { version = "0.8", features = ["os-poll", "net"] } num_cpus = "1.13" -socket2 = "0.4.2" +socket2 = "0.4.2" # TODO(MSRV 1.64) update to 0.5 tokio = { version = "1.23.1", features = ["sync"] } tracing = { version = "0.1.30", default-features = false, features = ["log"] } diff --git a/actix-tls/Cargo.toml b/actix-tls/Cargo.toml index 64ac1d7c..9c463e2c 100755 --- a/actix-tls/Cargo.toml +++ b/actix-tls/Cargo.toml @@ -54,7 +54,7 @@ tracing = { version = "0.1.30", default-features = false, features = ["log"] } http = { version = "0.2.3", optional = true } # openssl -tls-openssl = { package = "openssl", version = "0.10.9", optional = true } +tls-openssl = { package = "openssl", version = "0.10.48", optional = true } tokio-openssl = { version = "0.6", optional = true } # rustls From 177590a7d86c77fca5719f90fd63acc9d5002b67 Mon Sep 17 00:00:00 2001 From: Rob Ede Date: Sat, 1 Apr 2023 22:45:18 +0100 Subject: [PATCH 067/410] increase bytestring test coverage --- bytestring/src/lib.rs | 93 ++++++++++++++++++++++++++++++++++--------- 1 file changed, 75 insertions(+), 18 deletions(-) diff --git a/bytestring/src/lib.rs b/bytestring/src/lib.rs index d75a05f5..3892d09e 100644 --- a/bytestring/src/lib.rs +++ b/bytestring/src/lib.rs @@ -11,7 +11,7 @@ use alloc::{ string::{String, ToString}, vec::Vec, }; -use core::{borrow, convert::TryFrom, fmt, hash, ops, str}; +use core::{borrow::Borrow, convert::TryFrom, fmt, hash, ops, str}; use bytes::Bytes; @@ -132,13 +132,12 @@ impl ops::Deref for ByteString { #[inline] fn deref(&self) -> &str { let bytes = self.0.as_ref(); - // SAFETY: - // UTF-8 validity is guaranteed at during construction. + // SAFETY: UTF-8 validity is guaranteed during construction. unsafe { str::from_utf8_unchecked(bytes) } } } -impl borrow::Borrow for ByteString { +impl Borrow for ByteString { fn borrow(&self) -> &str { self } @@ -292,7 +291,7 @@ mod serde { #[cfg(test)] mod test { - use alloc::borrow::ToOwned; + use alloc::{borrow::ToOwned, format, vec}; use core::{ hash::{Hash, Hasher}, panic::{RefUnwindSafe, UnwindSafe}, @@ -309,7 +308,7 @@ mod test { assert_impl_all!(ByteString: UnwindSafe, RefUnwindSafe); #[test] - fn test_partial_eq() { + fn eq() { let s: ByteString = ByteString::from_static("test"); assert_eq!(s, "test"); assert_eq!(s, *"test"); @@ -317,12 +316,45 @@ mod test { } #[test] - fn test_new() { + fn new() { let _: ByteString = ByteString::new(); } #[test] - fn test_hash() { + fn as_bytes() { + let buf = ByteString::new(); + assert!(buf.as_bytes().is_empty()); + + let buf = ByteString::from("hello"); + assert_eq!(buf.as_bytes(), "hello"); + } + + #[test] + fn from_bytes_unchecked() { + let buf = unsafe { ByteString::from_bytes_unchecked(Bytes::new()) }; + assert!(buf.is_empty()); + + let buf = unsafe { ByteString::from_bytes_unchecked(Bytes::from("hello")) }; + assert_eq!(buf, "hello"); + } + + #[test] + fn as_ref() { + let buf = ByteString::new(); + + let _: &ByteString = buf.as_ref(); + let _: &[u8] = buf.as_ref(); + } + + #[test] + fn borrow() { + let buf = ByteString::new(); + + let _: &str = buf.borrow(); + } + + #[test] + fn hash() { let mut hasher1 = AHasher::default(); "str".hash(&mut hasher1); @@ -333,7 +365,7 @@ mod test { } #[test] - fn test_from_string() { + fn from_string() { let s: ByteString = "hello".to_owned().into(); assert_eq!(&s, "hello"); let t: &str = s.as_ref(); @@ -341,23 +373,30 @@ mod test { } #[test] - fn test_from_str() { + fn from_str() { let _: ByteString = "str".into(); + let _: ByteString = "str".to_owned().into_boxed_str().into(); } #[test] - fn test_from_static_str() { + fn to_string() { + let buf = ByteString::from("foo"); + assert_eq!(String::from(buf), "foo"); + } + + #[test] + fn from_static_str() { static _S: ByteString = ByteString::from_static("hello"); let _ = ByteString::from_static("str"); } #[test] - fn test_try_from_slice() { + fn try_from_slice() { let _ = ByteString::try_from(b"nice bytes").unwrap(); } #[test] - fn test_try_from_array() { + fn try_from_array() { assert_eq!( ByteString::try_from([b'h', b'i']).unwrap(), ByteString::from_static("hi") @@ -365,25 +404,43 @@ mod test { } #[test] - fn test_try_from_bytes() { + fn try_from_vec() { + let _ = ByteString::try_from(vec![b'f', b'o', b'o']).unwrap(); + ByteString::try_from(vec![0, 159, 146, 150]).unwrap_err(); + } + + #[test] + fn try_from_bytes() { let _ = ByteString::try_from(Bytes::from_static(b"nice bytes")).unwrap(); } #[test] - fn test_try_from_bytes_mut() { + fn try_from_bytes_mut() { let _ = ByteString::try_from(bytes::BytesMut::from(&b"nice bytes"[..])).unwrap(); } + #[test] + fn display() { + let buf = ByteString::from("bar"); + assert_eq!(format!("{buf}"), "bar"); + } + + #[test] + fn debug() { + let buf = ByteString::from("baz"); + assert_eq!(format!("{buf:?}"), r#""baz""#); + } + #[cfg(feature = "serde")] #[test] - fn test_serialize() { + fn serialize() { let s: ByteString = serde_json::from_str(r#""nice bytes""#).unwrap(); assert_eq!(s, "nice bytes"); } #[cfg(feature = "serde")] #[test] - fn test_deserialize() { + fn deserialize() { let s = serde_json::to_string(&ByteString::from_static("nice bytes")).unwrap(); assert_eq!(s, r#""nice bytes""#); } @@ -399,7 +456,7 @@ mod test { #[test] #[should_panic] - fn test_slice_ref_catches_not_a_subset() { + fn slice_ref_catches_not_a_subset() { // panics because the given slice is not derived from the original byte string, despite // being a logical subset of the string ByteString::from_static("foo bar").slice_ref("foo"); From 8d5d1dbf6ffedefc73d0ad7fe01494a0c0175626 Mon Sep 17 00:00:00 2001 From: Rob Ede Date: Mon, 17 Jul 2023 03:05:39 +0100 Subject: [PATCH 068/410] bump MSRV to 1.65 (#485) --- .github/workflows/ci.yml | 2 +- .rustfmt.toml | 3 ++ Cargo.toml | 4 ++ README.md | 2 +- actix-codec/CHANGES.md | 2 +- actix-codec/Cargo.toml | 4 +- actix-codec/src/framed.rs | 10 +---- actix-codec/src/lib.rs | 18 +++++---- actix-codec/tests/test_framed_sink.rs | 5 +-- actix-macros/CHANGES.md | 2 +- actix-macros/Cargo.toml | 4 +- actix-macros/tests/trybuild.rs | 2 +- .../tests/trybuild/main-02-only-async.stderr | 11 ++---- actix-rt/CHANGES.md | 2 +- actix-rt/Cargo.toml | 4 +- actix-rt/examples/hyper.rs | 3 +- actix-rt/src/arbiter.rs | 11 ++---- actix-rt/src/lib.rs | 22 ++++++----- actix-rt/src/system.rs | 4 +- actix-server/CHANGES.md | 2 +- actix-server/Cargo.toml | 6 +-- actix-server/src/builder.rs | 7 +--- actix-server/src/lib.rs | 9 ++--- actix-server/src/service.rs | 2 +- actix-server/src/socket.rs | 5 +-- actix-server/src/worker.rs | 13 ++++--- actix-service/CHANGES.md | 2 +- actix-service/Cargo.toml | 4 +- actix-service/src/and_then.rs | 33 +++------------- actix-service/src/apply.rs | 3 +- actix-service/src/apply_cfg.rs | 3 +- actix-service/src/boxed.rs | 3 +- actix-service/src/fn_service.rs | 16 +++----- actix-service/src/lib.rs | 14 ++++--- actix-service/src/map_err.rs | 3 +- actix-service/src/pipeline.rs | 19 +++++----- actix-tls/CHANGES.md | 2 +- actix-tls/Cargo.toml | 4 +- actix-tls/src/accept/mod.rs | 38 +++++++++---------- actix-tls/src/accept/rustls.rs | 3 +- actix-tls/src/connect/mod.rs | 16 ++++---- actix-tls/src/connect/native_tls.rs | 3 +- actix-tls/src/connect/openssl.rs | 4 +- actix-tls/src/connect/rustls.rs | 11 +++--- actix-tls/tests/accept-openssl.rs | 8 ++-- actix-tls/tests/accept-rustls.rs | 14 +++---- actix-tls/tests/test_resolvers.rs | 3 +- actix-tracing/CHANGES.md | 2 +- actix-tracing/Cargo.toml | 4 +- actix-tracing/src/lib.rs | 8 ++-- actix-utils/CHANGES.md | 2 +- actix-utils/Cargo.toml | 4 +- actix-utils/src/future/mod.rs | 8 ++-- bytestring/Cargo.toml | 4 +- bytestring/src/lib.rs | 6 ++- local-channel/CHANGES.md | 2 +- local-channel/Cargo.toml | 4 +- local-waker/CHANGES.md | 2 +- local-waker/Cargo.toml | 4 +- rustfmt.toml | 2 - 60 files changed, 188 insertions(+), 229 deletions(-) create mode 100644 .rustfmt.toml delete mode 100644 rustfmt.toml diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index f59d79e9..cd9c5848 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -23,7 +23,7 @@ jobs: - { name: Windows (MinGW), os: windows-latest, triple: x86_64-pc-windows-gnu } - { name: Windows (32-bit), os: windows-latest, triple: i686-pc-windows-msvc } version: - - 1.60.0 + - 1.65.0 # MSRV - stable name: ${{ matrix.target.name }} / ${{ matrix.version }} diff --git a/.rustfmt.toml b/.rustfmt.toml new file mode 100644 index 00000000..71b9be3a --- /dev/null +++ b/.rustfmt.toml @@ -0,0 +1,3 @@ +group_imports = "StdExternalCrate" +imports_granularity = "Crate" +use_field_init_shorthand = true diff --git a/Cargo.toml b/Cargo.toml index ccd36595..62897764 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -14,6 +14,10 @@ members = [ ] resolver = "2" +[workspace.package] +edition = "2021" +rust-version = "1.65" + [patch.crates-io] actix-codec = { path = "actix-codec" } actix-macros = { path = "actix-macros" } diff --git a/README.md b/README.md index fdf829f5..9d99d5ee 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.60. 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.65. 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 ebb867cf..14dc78c5 100644 --- a/actix-codec/CHANGES.md +++ b/actix-codec/CHANGES.md @@ -2,7 +2,7 @@ ## Unreleased - 2023-xx-xx -- Minimum supported Rust version (MSRV) is now 1.60. +- Minimum supported Rust version (MSRV) is now 1.65. ## 0.5.1 - 2022-03-15 diff --git a/actix-codec/Cargo.toml b/actix-codec/Cargo.toml index 565bc830..d8f072df 100644 --- a/actix-codec/Cargo.toml +++ b/actix-codec/Cargo.toml @@ -10,8 +10,8 @@ keywords = ["network", "framework", "async", "futures"] repository = "https://github.com/actix/actix-net" categories = ["network-programming", "asynchronous"] license = "MIT OR Apache-2.0" -edition = "2021" -rust-version = "1.60" +edition.workspace = true +rust-version.workspace = true [dependencies] bitflags = "2" diff --git a/actix-codec/src/framed.rs b/actix-codec/src/framed.rs index 0d62a61c..6d6e1478 100644 --- a/actix-codec/src/framed.rs +++ b/actix-codec/src/framed.rs @@ -234,10 +234,7 @@ impl Framed { } /// Flush write buffer to underlying I/O stream. - pub fn flush( - mut self: Pin<&mut Self>, - cx: &mut Context<'_>, - ) -> Poll> + pub fn flush(mut self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll> where T: AsyncWrite, U: Encoder, @@ -270,10 +267,7 @@ impl Framed { } /// Flush write buffer and shutdown underlying I/O stream. - pub fn close( - mut self: Pin<&mut Self>, - cx: &mut Context<'_>, - ) -> Poll> + pub fn close(mut self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll> where T: AsyncWrite, U: Encoder, diff --git a/actix-codec/src/lib.rs b/actix-codec/src/lib.rs index 020e40e2..7dc28b35 100644 --- a/actix-codec/src/lib.rs +++ b/actix-codec/src/lib.rs @@ -11,14 +11,18 @@ #![doc(html_logo_url = "https://actix.rs/img/logo.png")] #![doc(html_favicon_url = "https://actix.rs/favicon.ico")] +pub use tokio::io::{AsyncRead, AsyncWrite, ReadBuf}; +pub use tokio_util::{ + codec::{Decoder, Encoder}, + io::poll_read_buf, +}; + mod bcodec; mod framed; mod lines; -pub use tokio::io::{AsyncRead, AsyncWrite, ReadBuf}; -pub use tokio_util::codec::{Decoder, Encoder}; -pub use tokio_util::io::poll_read_buf; - -pub use self::bcodec::BytesCodec; -pub use self::framed::{Framed, FramedParts}; -pub use self::lines::LinesCodec; +pub use self::{ + bcodec::BytesCodec, + framed::{Framed, FramedParts}, + lines::LinesCodec, +}; diff --git a/actix-codec/tests/test_framed_sink.rs b/actix-codec/tests/test_framed_sink.rs index 390aebf2..8c98ff18 100644 --- a/actix-codec/tests/test_framed_sink.rs +++ b/actix-codec/tests/test_framed_sink.rs @@ -81,10 +81,7 @@ impl AsyncWrite for Bilateral { other => Ready(other), } } - fn poll_shutdown( - self: Pin<&mut Self>, - _cx: &mut Context<'_>, - ) -> Poll> { + fn poll_shutdown(self: Pin<&mut Self>, _cx: &mut Context<'_>) -> Poll> { unimplemented!() } } diff --git a/actix-macros/CHANGES.md b/actix-macros/CHANGES.md index 1badd6b7..9385808c 100644 --- a/actix-macros/CHANGES.md +++ b/actix-macros/CHANGES.md @@ -3,7 +3,7 @@ ## Unreleased - 2023-xx-xx - Update `syn` dependency to `2`. -- Minimum supported Rust version (MSRV) is now 1.60. +- Minimum supported Rust version (MSRV) is now 1.65. ## 0.2.3 - 2021-10-19 diff --git a/actix-macros/Cargo.toml b/actix-macros/Cargo.toml index 902a6dd1..4aba5e53 100644 --- a/actix-macros/Cargo.toml +++ b/actix-macros/Cargo.toml @@ -10,8 +10,8 @@ description = "Macros for Actix system and runtime" repository = "https://github.com/actix/actix-net.git" categories = ["network-programming", "asynchronous"] license = "MIT OR Apache-2.0" -edition = "2021" -rust-version = "1.60" +edition.workspace = true +rust-version.workspace = true [lib] proc-macro = true diff --git a/actix-macros/tests/trybuild.rs b/actix-macros/tests/trybuild.rs index 7e399d49..b37b84ba 100644 --- a/actix-macros/tests/trybuild.rs +++ b/actix-macros/tests/trybuild.rs @@ -1,4 +1,4 @@ -#[rustversion::stable(1.60)] // MSRV +#[rustversion::stable(1.65)] // MSRV #[test] fn compile_macros() { let t = trybuild::TestCases::new(); diff --git a/actix-macros/tests/trybuild/main-02-only-async.stderr b/actix-macros/tests/trybuild/main-02-only-async.stderr index fc060071..2b15ecaa 100644 --- a/actix-macros/tests/trybuild/main-02-only-async.stderr +++ b/actix-macros/tests/trybuild/main-02-only-async.stderr @@ -1,14 +1,11 @@ error: the async keyword is missing from the function declaration - --> $DIR/main-02-only-async.rs:2:1 + --> tests/trybuild/main-02-only-async.rs:2:1 | 2 | fn main() { | ^^ error[E0601]: `main` function not found in crate `$CRATE` - --> $DIR/main-02-only-async.rs:1:1 + --> tests/trybuild/main-02-only-async.rs:4:2 | -1 | / #[actix_rt::main] -2 | | fn main() { -3 | | futures_util::future::ready(()).await -4 | | } - | |_^ consider adding a `main` function to `$DIR/tests/trybuild/main-02-only-async.rs` +4 | } + | ^ consider adding a `main` function to `$DIR/tests/trybuild/main-02-only-async.rs` diff --git a/actix-rt/CHANGES.md b/actix-rt/CHANGES.md index 547b7524..0cedbaa6 100644 --- a/actix-rt/CHANGES.md +++ b/actix-rt/CHANGES.md @@ -2,7 +2,7 @@ ## Unreleased - 2023-xx-xx -- Minimum supported Rust version (MSRV) is now 1.60. +- Minimum supported Rust version (MSRV) is now 1.65. ## 2.8.0 - 2022-12-21 diff --git a/actix-rt/Cargo.toml b/actix-rt/Cargo.toml index fa5fc204..1256eefd 100644 --- a/actix-rt/Cargo.toml +++ b/actix-rt/Cargo.toml @@ -11,8 +11,8 @@ homepage = "https://actix.rs" repository = "https://github.com/actix/actix-net.git" categories = ["network-programming", "asynchronous"] license = "MIT OR Apache-2.0" -edition = "2021" -rust-version = "1.60" +edition.workspace = true +rust-version.workspace = true [features] default = ["macros"] diff --git a/actix-rt/examples/hyper.rs b/actix-rt/examples/hyper.rs index 45b5e551..41c5a7d8 100644 --- a/actix-rt/examples/hyper.rs +++ b/actix-rt/examples/hyper.rs @@ -20,8 +20,7 @@ fn main() { let make_service = make_service_fn(|_conn| async { Ok::<_, Infallible>(service_fn(handle)) }); - let server = - Server::bind(&SocketAddr::from(([127, 0, 0, 1], 3000))).serve(make_service); + let server = Server::bind(&SocketAddr::from(([127, 0, 0, 1], 3000))).serve(make_service); if let Err(err) = server.await { eprintln!("server error: {}", err); diff --git a/actix-rt/src/arbiter.rs b/actix-rt/src/arbiter.rs index a84e25ea..48cc752f 100644 --- a/actix-rt/src/arbiter.rs +++ b/actix-rt/src/arbiter.rs @@ -99,8 +99,7 @@ impl Arbiter { #[allow(clippy::new_without_default)] pub fn new() -> Arbiter { Self::with_tokio_rt(|| { - crate::runtime::default_tokio_runtime() - .expect("Cannot create new Arbiter's Runtime.") + crate::runtime::default_tokio_runtime().expect("Cannot create new Arbiter's Runtime.") }) } @@ -149,9 +148,7 @@ impl Arbiter { .send(SystemCommand::DeregisterArbiter(arb_id)); } }) - .unwrap_or_else(|err| { - panic!("Cannot spawn Arbiter's thread: {:?}. {:?}", &name, err) - }); + .unwrap_or_else(|err| panic!("Cannot spawn Arbiter's thread: {name:?}: {err:?}")); ready_rx.recv().unwrap(); @@ -201,9 +198,7 @@ impl Arbiter { .send(SystemCommand::DeregisterArbiter(arb_id)); } }) - .unwrap_or_else(|err| { - panic!("Cannot spawn Arbiter's thread: {:?}. {:?}", &name, err) - }); + .unwrap_or_else(|err| panic!("Cannot spawn Arbiter's thread: {name:?}: {err:?}")); ready_rx.recv().unwrap(); diff --git a/actix-rt/src/lib.rs b/actix-rt/src/lib.rs index 23dd01e8..6f8057de 100644 --- a/actix-rt/src/lib.rs +++ b/actix-rt/src/lib.rs @@ -65,9 +65,11 @@ mod system; pub use tokio::pin; use tokio::task::JoinHandle; -pub use self::arbiter::{Arbiter, ArbiterHandle}; -pub use self::runtime::Runtime; -pub use self::system::{System, SystemRunner}; +pub use self::{ + arbiter::{Arbiter, ArbiterHandle}, + runtime::Runtime, + system::{System, SystemRunner}, +}; pub mod signal { //! Asynchronous signal handling (Tokio re-exports). @@ -89,12 +91,13 @@ pub mod net { task::{Context, Poll}, }; - pub use tokio::io::Ready; use tokio::io::{AsyncRead, AsyncWrite, Interest}; - pub use tokio::net::UdpSocket; - pub use tokio::net::{TcpListener, TcpSocket, TcpStream}; #[cfg(unix)] pub use tokio::net::{UnixDatagram, UnixListener, UnixStream}; + pub use tokio::{ + io::Ready, + net::{TcpListener, TcpSocket, TcpStream, UdpSocket}, + }; /// Extension trait over async read+write types that can also signal readiness. #[doc(hidden)] @@ -153,10 +156,9 @@ pub mod net { pub mod time { //! Utilities for tracking time (Tokio re-exports). - pub use tokio::time::Instant; - pub use tokio::time::{interval, interval_at, Interval}; - pub use tokio::time::{sleep, sleep_until, Sleep}; - pub use tokio::time::{timeout, Timeout}; + pub use tokio::time::{ + interval, interval_at, sleep, sleep_until, timeout, Instant, Interval, Sleep, Timeout, + }; } pub mod task { diff --git a/actix-rt/src/system.rs b/actix-rt/src/system.rs index d0494a22..7423a01e 100644 --- a/actix-rt/src/system.rs +++ b/actix-rt/src/system.rs @@ -226,9 +226,7 @@ impl SystemRunner { /// Runs the event loop until [stopped](System::stop_with_code), returning the exit code. pub fn run_with_code(self) -> io::Result { - unimplemented!( - "SystemRunner::run_with_code is not implemented for io-uring feature yet" - ); + unimplemented!("SystemRunner::run_with_code is not implemented for io-uring feature yet"); } /// Runs the provided future, blocking the current thread until the future completes. diff --git a/actix-server/CHANGES.md b/actix-server/CHANGES.md index 1147dcbd..e98f9d2b 100644 --- a/actix-server/CHANGES.md +++ b/actix-server/CHANGES.md @@ -2,7 +2,7 @@ ## Unreleased - 2023-xx-xx -- Minimum supported Rust version (MSRV) is now 1.60. +- Minimum supported Rust version (MSRV) is now 1.65. ## 2.2.0 - 2022-12-21 diff --git a/actix-server/Cargo.toml b/actix-server/Cargo.toml index ade711f4..62f13107 100755 --- a/actix-server/Cargo.toml +++ b/actix-server/Cargo.toml @@ -12,8 +12,8 @@ categories = ["network-programming", "asynchronous"] homepage = "https://actix.rs" repository = "https://github.com/actix/actix-net.git" license = "MIT OR Apache-2.0" -edition = "2021" -rust-version = "1.60" +edition.workspace = true +rust-version.workspace = true [features] default = [] @@ -28,7 +28,7 @@ futures-core = { version = "0.3.17", default-features = false, features = ["allo futures-util = { version = "0.3.17", default-features = false, features = ["alloc"] } mio = { version = "0.8", features = ["os-poll", "net"] } num_cpus = "1.13" -socket2 = "0.4.2" # TODO(MSRV 1.64) update to 0.5 +socket2 = "0.5" tokio = { version = "1.23.1", features = ["sync"] } tracing = { version = "0.1.30", default-features = false, features = ["log"] } diff --git a/actix-server/src/builder.rs b/actix-server/src/builder.rs index b6646081..badac77b 100644 --- a/actix-server/src/builder.rs +++ b/actix-server/src/builder.rs @@ -7,9 +7,7 @@ use tracing::{info, trace}; use crate::{ server::ServerCommand, service::{InternalServiceFactory, ServerServiceFactory, StreamNewService}, - socket::{ - create_mio_tcp_listener, MioListener, MioTcpListener, StdTcpListener, ToSocketAddrs, - }, + socket::{create_mio_tcp_listener, MioListener, MioTcpListener, StdTcpListener, ToSocketAddrs}, worker::ServerWorkerConfig, Server, }; @@ -246,8 +244,7 @@ impl ServerBuilder { use std::net::{IpAddr, Ipv4Addr}; lst.set_nonblocking(true)?; let token = self.next_token(); - let addr = - crate::socket::StdSocketAddr::new(IpAddr::V4(Ipv4Addr::new(127, 0, 0, 1)), 8080); + let addr = crate::socket::StdSocketAddr::new(IpAddr::V4(Ipv4Addr::new(127, 0, 0, 1)), 8080); self.factories.push(StreamNewService::create( name.as_ref().to_string(), token, diff --git a/actix-server/src/lib.rs b/actix-server/src/lib.rs index 532313b6..5e265d74 100644 --- a/actix-server/src/lib.rs +++ b/actix-server/src/lib.rs @@ -18,13 +18,12 @@ mod test_server; mod waker_queue; mod worker; -pub use self::builder::ServerBuilder; -pub use self::handle::ServerHandle; -pub use self::server::Server; -pub use self::service::ServerServiceFactory; #[doc(hidden)] pub use self::socket::FromStream; -pub use self::test_server::TestServer; +pub use self::{ + builder::ServerBuilder, handle::ServerHandle, server::Server, service::ServerServiceFactory, + test_server::TestServer, +}; /// Start server building process #[doc(hidden)] diff --git a/actix-server/src/service.rs b/actix-server/src/service.rs index f07ec3e5..eba1470e 100644 --- a/actix-server/src/service.rs +++ b/actix-server/src/service.rs @@ -78,7 +78,7 @@ where Ok(()) } Err(err) => { - error!("can not convert to an async TCP stream: {}", err); + error!("can not convert to an async TCP stream: {err}"); Err(()) } }) diff --git a/actix-server/src/socket.rs b/actix-server/src/socket.rs index 8d2ffe8f..f0942e38 100644 --- a/actix-server/src/socket.rs +++ b/actix-server/src/socket.rs @@ -8,8 +8,7 @@ pub(crate) use mio::net::TcpListener as MioTcpListener; use mio::{event::Source, Interest, Registry, Token}; #[cfg(unix)] pub(crate) use { - mio::net::UnixListener as MioUnixListener, - std::os::unix::net::UnixListener as StdUnixListener, + mio::net::UnixListener as MioUnixListener, std::os::unix::net::UnixListener as StdUnixListener, }; pub(crate) enum MioListener { @@ -105,7 +104,7 @@ impl fmt::Debug for MioListener { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { match *self { MioListener::Tcp(ref lst) => write!(f, "{:?}", lst), - #[cfg(all(unix))] + #[cfg(unix)] MioListener::Uds(ref lst) => write!(f, "{:?}", lst), } } diff --git a/actix-server/src/worker.rs b/actix-server/src/worker.rs index 2765ae4a..a9ae97a0 100644 --- a/actix-server/src/worker.rs +++ b/actix-server/src/worker.rs @@ -625,8 +625,8 @@ impl Future for ServerWorker { let factory_id = restart.factory_id; let token = restart.token; - let (token_new, service) = ready!(restart.fut.as_mut().poll(cx)) - .unwrap_or_else(|_| { + let (token_new, service) = + ready!(restart.fut.as_mut().poll(cx)).unwrap_or_else(|_| { panic!( "Can not restart {:?} service", this.factories[factory_id].name(token) @@ -697,7 +697,10 @@ impl Future for ServerWorker { match ready!(this.conn_rx.poll_recv(cx)) { Some(msg) => { let guard = this.counter.guard(); - let _ = this.services[msg.token].service.call((guard, msg.io)); + let _ = this.services[msg.token] + .service + .call((guard, msg.io)) + .into_inner(); } None => return Poll::Ready(()), }; @@ -706,9 +709,7 @@ impl Future for ServerWorker { } } -fn wrap_worker_services( - services: Vec<(usize, usize, BoxedServerService)>, -) -> Vec { +fn wrap_worker_services(services: Vec<(usize, usize, BoxedServerService)>) -> Vec { services .into_iter() .fold(Vec::new(), |mut services, (idx, token, service)| { diff --git a/actix-service/CHANGES.md b/actix-service/CHANGES.md index 0640c1cd..ee549941 100644 --- a/actix-service/CHANGES.md +++ b/actix-service/CHANGES.md @@ -2,7 +2,7 @@ ## Unreleased - 2023-xx-xx -- Minimum supported Rust version (MSRV) is now 1.60. +- Minimum supported Rust version (MSRV) is now 1.65. ## 2.0.2 - 2021-12-18 diff --git a/actix-service/Cargo.toml b/actix-service/Cargo.toml index 74904634..dcb6652f 100644 --- a/actix-service/Cargo.toml +++ b/actix-service/Cargo.toml @@ -10,8 +10,8 @@ keywords = ["network", "framework", "async", "futures", "service"] categories = ["network-programming", "asynchronous", "no-std"] repository = "https://github.com/actix/actix-net" license = "MIT OR Apache-2.0" -edition = "2021" -rust-version = "1.60" +edition.workspace = true +rust-version.workspace = true [dependencies] futures-core = { version = "0.3.17", default-features = false } diff --git a/actix-service/src/and_then.rs b/actix-service/src/and_then.rs index 38980079..28a17044 100644 --- a/actix-service/src/and_then.rs +++ b/actix-service/src/and_then.rs @@ -121,12 +121,7 @@ pub struct AndThenServiceFactory where A: ServiceFactory, A::Config: Clone, - B: ServiceFactory< - A::Response, - Config = A::Config, - Error = A::Error, - InitError = A::InitError, - >, + B: ServiceFactory, { inner: Rc<(A, B)>, _phantom: PhantomData, @@ -136,12 +131,7 @@ impl AndThenServiceFactory where A: ServiceFactory, A::Config: Clone, - B: ServiceFactory< - A::Response, - Config = A::Config, - Error = A::Error, - InitError = A::InitError, - >, + B: ServiceFactory, { /// Create new `AndThenFactory` combinator pub(crate) fn new(a: A, b: B) -> Self { @@ -156,12 +146,7 @@ impl ServiceFactory for AndThenServiceFactory where A: ServiceFactory, A::Config: Clone, - B: ServiceFactory< - A::Response, - Config = A::Config, - Error = A::Error, - InitError = A::InitError, - >, + B: ServiceFactory, { type Response = B::Response; type Error = A::Error; @@ -184,12 +169,7 @@ impl Clone for AndThenServiceFactory where A: ServiceFactory, A::Config: Clone, - B: ServiceFactory< - A::Response, - Config = A::Config, - Error = A::Error, - InitError = A::InitError, - >, + B: ServiceFactory, { fn clone(&self) -> Self { Self { @@ -334,9 +314,8 @@ mod tests { async fn test_new_service() { let cnt = Rc::new(Cell::new(0)); let cnt2 = cnt.clone(); - let new_srv = - pipeline_factory(fn_factory(move || ready(Ok::<_, ()>(Srv1(cnt2.clone()))))) - .and_then(move || ready(Ok(Srv2(cnt.clone())))); + let new_srv = pipeline_factory(fn_factory(move || ready(Ok::<_, ()>(Srv1(cnt2.clone()))))) + .and_then(move || ready(Ok(Srv2(cnt.clone())))); let srv = new_srv.new_service(()).await.unwrap(); let res = srv.call("srv1").await; diff --git a/actix-service/src/apply.rs b/actix-service/src/apply.rs index c77f4242..d33bdcd8 100644 --- a/actix-service/src/apply.rs +++ b/actix-service/src/apply.rs @@ -140,8 +140,7 @@ where } } -impl ServiceFactory - for ApplyFactory +impl ServiceFactory for ApplyFactory where SF: ServiceFactory, F: Fn(Req, &SF::Service) -> Fut + Clone, diff --git a/actix-service/src/apply_cfg.rs b/actix-service/src/apply_cfg.rs index 25fc5fc2..028fb317 100644 --- a/actix-service/src/apply_cfg.rs +++ b/actix-service/src/apply_cfg.rs @@ -198,8 +198,7 @@ pin_project! { } } -impl Future - for ApplyConfigServiceFactoryResponse +impl Future for ApplyConfigServiceFactoryResponse where SF: ServiceFactory, SF::InitError: From, diff --git a/actix-service/src/boxed.rs b/actix-service/src/boxed.rs index 3141c5e4..cc9ad410 100644 --- a/actix-service/src/boxed.rs +++ b/actix-service/src/boxed.rs @@ -91,8 +91,7 @@ type Inner = Box< >, >; -impl ServiceFactory - for BoxServiceFactory +impl ServiceFactory for BoxServiceFactory where Req: 'static, Res: 'static, diff --git a/actix-service/src/fn_service.rs b/actix-service/src/fn_service.rs index a2379270..2dac8697 100644 --- a/actix-service/src/fn_service.rs +++ b/actix-service/src/fn_service.rs @@ -3,9 +3,7 @@ use core::{future::Future, marker::PhantomData}; use crate::{ok, IntoService, IntoServiceFactory, Ready, Service, ServiceFactory}; /// Create `ServiceFactory` for function that can act as a `Service` -pub fn fn_service( - f: F, -) -> FnServiceFactory +pub fn fn_service(f: F) -> FnServiceFactory where F: Fn(Req) -> Fut + Clone, Fut: Future>, @@ -48,9 +46,7 @@ where /// Ok(()) /// } /// ``` -pub fn fn_factory( - f: F, -) -> FnServiceNoConfig +pub fn fn_factory(f: F) -> FnServiceNoConfig where F: Fn() -> Fut, Fut: Future>, @@ -265,8 +261,7 @@ where } } -impl ServiceFactory - for FnServiceConfig +impl ServiceFactory for FnServiceConfig where F: Fn(Cfg) -> Fut, Fut: Future>, @@ -404,9 +399,8 @@ mod tests { ok::<_, Rc>(fn_service(|_: Rc| 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(|| ok::<_, Rc>(fn_service(|_: Rc| ok::<_, Rc>(Rc::new(0u8))))); fn is_send(_: &T) {} diff --git a/actix-service/src/lib.rs b/actix-service/src/lib.rs index 091a7fd7..fbbdfeb8 100644 --- a/actix-service/src/lib.rs +++ b/actix-service/src/lib.rs @@ -33,14 +33,16 @@ mod then; mod transform; mod transform_err; -pub use self::apply::{apply_fn, apply_fn_factory}; -pub use self::apply_cfg::{apply_cfg, apply_cfg_factory}; -pub use self::ext::{ServiceExt, ServiceFactoryExt, TransformExt}; -pub use self::fn_service::{fn_factory, fn_factory_with_config, fn_service}; -pub use self::map_config::{map_config, unit_config}; #[allow(unused_imports)] use self::ready::{err, ok, ready, Ready}; -pub use self::transform::{apply, ApplyTransform, Transform}; +pub use self::{ + apply::{apply_fn, apply_fn_factory}, + apply_cfg::{apply_cfg, apply_cfg_factory}, + ext::{ServiceExt, ServiceFactoryExt, TransformExt}, + fn_service::{fn_factory, fn_factory_with_config, fn_service}, + map_config::{map_config, unit_config}, + transform::{apply, ApplyTransform, Transform}, +}; /// An asynchronous operation from `Request` to a `Response`. /// diff --git a/actix-service/src/map_err.rs b/actix-service/src/map_err.rs index 3ce6f418..780a64c7 100644 --- a/actix-service/src/map_err.rs +++ b/actix-service/src/map_err.rs @@ -206,8 +206,7 @@ mod tests { use super::*; use crate::{ - err, ok, IntoServiceFactory, Ready, Service, ServiceExt, ServiceFactory, - ServiceFactoryExt, + err, ok, IntoServiceFactory, Ready, Service, ServiceExt, ServiceFactory, ServiceFactoryExt, }; struct Srv; diff --git a/actix-service/src/pipeline.rs b/actix-service/src/pipeline.rs index 2617d0ed..118f9797 100644 --- a/actix-service/src/pipeline.rs +++ b/actix-service/src/pipeline.rs @@ -6,12 +6,14 @@ use core::{ task::{Context, Poll}, }; -use crate::and_then::{AndThenService, AndThenServiceFactory}; -use crate::map::{Map, MapServiceFactory}; -use crate::map_err::{MapErr, MapErrServiceFactory}; -use crate::map_init_err::MapInitErr; -use crate::then::{ThenService, ThenServiceFactory}; -use crate::{IntoService, IntoServiceFactory, Service, ServiceFactory}; +use crate::{ + and_then::{AndThenService, AndThenServiceFactory}, + map::{Map, MapServiceFactory}, + map_err::{MapErr, MapErrServiceFactory}, + map_init_err::MapInitErr, + then::{ThenService, ThenServiceFactory}, + IntoService, IntoServiceFactory, Service, ServiceFactory, +}; /// Construct new pipeline with one service in pipeline chain. pub(crate) fn pipeline(service: I) -> Pipeline @@ -252,10 +254,7 @@ where } /// Map this service's error to a different error, returning a new service. - pub fn map_err( - self, - f: F, - ) -> PipelineFactory, Req> + pub fn map_err(self, f: F) -> PipelineFactory, Req> where Self: Sized, F: Fn(SF::Error) -> E + Clone, diff --git a/actix-tls/CHANGES.md b/actix-tls/CHANGES.md index f4f248b2..0381e6de 100644 --- a/actix-tls/CHANGES.md +++ b/actix-tls/CHANGES.md @@ -2,7 +2,7 @@ ## Unreleased - 2023-xx-xx -- Minimum supported Rust version (MSRV) is now 1.60. +- Minimum supported Rust version (MSRV) is now 1.65. ## 3.0.4 - 2022-03-15 diff --git a/actix-tls/Cargo.toml b/actix-tls/Cargo.toml index 9c463e2c..d65d675b 100755 --- a/actix-tls/Cargo.toml +++ b/actix-tls/Cargo.toml @@ -10,8 +10,8 @@ keywords = ["network", "tls", "ssl", "async", "transport"] repository = "https://github.com/actix/actix-net.git" categories = ["network-programming", "asynchronous", "cryptography"] license = "MIT OR Apache-2.0" -edition = "2021" -rust-version = "1.60" +edition.workspace = true +rust-version.workspace = true [package.metadata.docs.rs] all-features = true diff --git a/actix-tls/src/accept/mod.rs b/actix-tls/src/accept/mod.rs index 13c4db37..1eee6720 100644 --- a/actix-tls/src/accept/mod.rs +++ b/actix-tls/src/accept/mod.rs @@ -56,6 +56,25 @@ pub enum TlsError { Service(SvcErr), } +impl TlsError { + /// Casts the infallible service error type returned from acceptors into caller's type. + /// + /// # Examples + /// ``` + /// # use std::convert::Infallible; + /// # use actix_tls::accept::TlsError; + /// let a: TlsError = TlsError::Tls(42); + /// let _b: TlsError = a.into_service_error(); + /// ``` + pub fn into_service_error(self) -> TlsError { + match self { + Self::Timeout => TlsError::Timeout, + Self::Tls(err) => TlsError::Tls(err), + Self::Service(err) => match err {}, + } + } +} + impl fmt::Display for TlsError { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { match self { @@ -80,25 +99,6 @@ where } } -impl TlsError { - /// Casts the infallible service error type returned from acceptors into caller's type. - /// - /// # Examples - /// ``` - /// # use std::convert::Infallible; - /// # use actix_tls::accept::TlsError; - /// let a: TlsError = TlsError::Tls(42); - /// let _b: TlsError = a.into_service_error(); - /// ``` - pub fn into_service_error(self) -> TlsError { - match self { - Self::Timeout => TlsError::Timeout, - Self::Tls(err) => TlsError::Tls(err), - Self::Service(err) => match err {}, - } - } -} - #[cfg(test)] mod tests { use super::*; diff --git a/actix-tls/src/accept/rustls.rs b/actix-tls/src/accept/rustls.rs index bf324e3c..85cf5b00 100644 --- a/actix-tls/src/accept/rustls.rs +++ b/actix-tls/src/accept/rustls.rs @@ -23,8 +23,7 @@ use actix_utils::{ }; use pin_project_lite::pin_project; use tokio::io::{AsyncRead, AsyncWrite, ReadBuf}; -use tokio_rustls::rustls::ServerConfig; -use tokio_rustls::{Accept, TlsAcceptor}; +use tokio_rustls::{rustls::ServerConfig, Accept, TlsAcceptor}; use super::{TlsError, DEFAULT_TLS_HANDSHAKE_TIMEOUT, MAX_CONN_COUNTER}; diff --git a/actix-tls/src/connect/mod.rs b/actix-tls/src/connect/mod.rs index df002585..dae1f7b1 100644 --- a/actix-tls/src/connect/mod.rs +++ b/actix-tls/src/connect/mod.rs @@ -33,10 +33,12 @@ pub mod rustls; #[cfg(feature = "native-tls")] pub mod native_tls; -pub use self::connection::Connection; -pub use self::connector::{Connector, ConnectorService}; -pub use self::error::ConnectError; -pub use self::host::Host; -pub use self::info::ConnectInfo; -pub use self::resolve::Resolve; -pub use self::resolver::{Resolver, ResolverService}; +pub use self::{ + connection::Connection, + connector::{Connector, ConnectorService}, + error::ConnectError, + host::Host, + info::ConnectInfo, + resolve::Resolve, + resolver::{Resolver, ResolverService}, +}; diff --git a/actix-tls/src/connect/native_tls.rs b/actix-tls/src/connect/native_tls.rs index 37b9ffa4..16863ce0 100644 --- a/actix-tls/src/connect/native_tls.rs +++ b/actix-tls/src/connect/native_tls.rs @@ -19,8 +19,7 @@ use crate::connect::{Connection, Host}; pub mod reexports { //! Re-exports from `native-tls` and `tokio-native-tls` that are useful for connectors. - pub use tokio_native_tls::native_tls::TlsConnector; - pub use tokio_native_tls::TlsStream as AsyncTlsStream; + pub use tokio_native_tls::{native_tls::TlsConnector, TlsStream as AsyncTlsStream}; } /// Connector service and factory using `native-tls`. diff --git a/actix-tls/src/connect/openssl.rs b/actix-tls/src/connect/openssl.rs index caff4f0f..ab2841bb 100644 --- a/actix-tls/src/connect/openssl.rs +++ b/actix-tls/src/connect/openssl.rs @@ -22,9 +22,7 @@ use crate::connect::{Connection, Host}; pub mod reexports { //! Re-exports from `openssl` and `tokio-openssl` that are useful for connectors. - pub use openssl::ssl::{ - Error, HandshakeError, SslConnector, SslConnectorBuilder, SslMethod, - }; + pub use openssl::ssl::{Error, HandshakeError, SslConnector, SslConnectorBuilder, SslMethod}; pub use tokio_openssl::SslStream as AsyncSslStream; } diff --git a/actix-tls/src/connect/rustls.rs b/actix-tls/src/connect/rustls.rs index 0a44479a..5706047d 100644 --- a/actix-tls/src/connect/rustls.rs +++ b/actix-tls/src/connect/rustls.rs @@ -15,9 +15,11 @@ use actix_rt::net::ActixStream; use actix_service::{Service, ServiceFactory}; use actix_utils::future::{ok, Ready}; use futures_core::ready; -use tokio_rustls::rustls::{client::ServerName, OwnedTrustAnchor, RootCertStore}; -use tokio_rustls::{client::TlsStream as AsyncTlsStream, rustls::ClientConfig}; -use tokio_rustls::{Connect as RustlsConnect, TlsConnector as RustlsTlsConnector}; +use tokio_rustls::{ + client::TlsStream as AsyncTlsStream, + rustls::{client::ServerName, ClientConfig, OwnedTrustAnchor, RootCertStore}, + Connect as RustlsConnect, TlsConnector as RustlsTlsConnector, +}; use tracing::trace; use webpki_roots::TLS_SERVER_ROOTS; @@ -26,8 +28,7 @@ use crate::connect::{Connection, Host}; pub mod reexports { //! Re-exports from `rustls` and `webpki_roots` that are useful for connectors. - pub use tokio_rustls::client::TlsStream as AsyncTlsStream; - pub use tokio_rustls::rustls::ClientConfig; + pub use tokio_rustls::{client::TlsStream as AsyncTlsStream, rustls::ClientConfig}; pub use webpki_roots::TLS_SERVER_ROOTS; } diff --git a/actix-tls/tests/accept-openssl.rs b/actix-tls/tests/accept-openssl.rs index a4180f4d..ff707f65 100644 --- a/actix-tls/tests/accept-openssl.rs +++ b/actix-tls/tests/accept-openssl.rs @@ -17,11 +17,9 @@ use actix_utils::future::ok; use tokio_rustls::rustls::{Certificate, ClientConfig, RootCertStore, ServerName}; fn new_cert_and_key() -> (String, String) { - let cert = rcgen::generate_simple_self_signed(vec![ - "127.0.0.1".to_owned(), - "localhost".to_owned(), - ]) - .unwrap(); + let cert = + rcgen::generate_simple_self_signed(vec!["127.0.0.1".to_owned(), "localhost".to_owned()]) + .unwrap(); let key = cert.serialize_private_key_pem(); let cert = cert.serialize_pem().unwrap(); diff --git a/actix-tls/tests/accept-rustls.rs b/actix-tls/tests/accept-rustls.rs index 521af7f9..7955b36f 100644 --- a/actix-tls/tests/accept-rustls.rs +++ b/actix-tls/tests/accept-rustls.rs @@ -14,19 +14,19 @@ use std::io::{BufReader, Write}; use actix_rt::net::TcpStream; use actix_server::TestServer; use actix_service::ServiceFactoryExt as _; -use actix_tls::accept::rustls::{Acceptor, TlsStream}; -use actix_tls::connect::openssl::reexports::SslConnector; +use actix_tls::{ + accept::rustls::{Acceptor, TlsStream}, + connect::openssl::reexports::SslConnector, +}; use actix_utils::future::ok; use rustls_pemfile::{certs, pkcs8_private_keys}; use tls_openssl::ssl::SslVerifyMode; use tokio_rustls::rustls::{self, Certificate, PrivateKey, ServerConfig}; fn new_cert_and_key() -> (String, String) { - let cert = rcgen::generate_simple_self_signed(vec![ - "127.0.0.1".to_owned(), - "localhost".to_owned(), - ]) - .unwrap(); + let cert = + rcgen::generate_simple_self_signed(vec!["127.0.0.1".to_owned(), "localhost".to_owned()]) + .unwrap(); let key = cert.serialize_private_key_pem(); let cert = cert.serialize_pem().unwrap(); diff --git a/actix-tls/tests/test_resolvers.rs b/actix-tls/tests/test_resolvers.rs index f0674383..24f22732 100644 --- a/actix-tls/tests/test_resolvers.rs +++ b/actix-tls/tests/test_resolvers.rs @@ -51,8 +51,7 @@ async fn custom_resolver_connect() { use trust_dns_resolver::TokioAsyncResolver; - let srv = - TestServer::start(|| fn_service(|_io: TcpStream| async { Ok::<_, io::Error>(()) })); + let srv = TestServer::start(|| fn_service(|_io: TcpStream| async { Ok::<_, io::Error>(()) })); struct MyResolver { trust_dns: TokioAsyncResolver, diff --git a/actix-tracing/CHANGES.md b/actix-tracing/CHANGES.md index f672659a..f61d3f2b 100644 --- a/actix-tracing/CHANGES.md +++ b/actix-tracing/CHANGES.md @@ -2,7 +2,7 @@ ## Unreleased - 2023-xx-xx -- Minimum supported Rust version (MSRV) is now 1.60. +- Minimum supported Rust version (MSRV) is now 1.65. ## 0.1.0 - 2020-01-15 diff --git a/actix-tracing/Cargo.toml b/actix-tracing/Cargo.toml index 27dfbc22..829a4b85 100644 --- a/actix-tracing/Cargo.toml +++ b/actix-tracing/Cargo.toml @@ -9,8 +9,8 @@ repository = "https://github.com/actix/actix-net.git" documentation = "https://docs.rs/actix-tracing" categories = ["network-programming", "asynchronous"] license = "MIT OR Apache-2.0" -edition = "2021" -rust-version = "1.60" +edition.workspace = true +rust-version.workspace = true [dependencies] actix-service = "2" diff --git a/actix-tracing/src/lib.rs b/actix-tracing/src/lib.rs index f5b08927..b1b9061b 100644 --- a/actix-tracing/src/lib.rs +++ b/actix-tracing/src/lib.rs @@ -118,9 +118,11 @@ where #[cfg(test)] mod test { - use std::cell::RefCell; - use std::collections::{BTreeMap, BTreeSet}; - use std::sync::{Arc, RwLock}; + use std::{ + cell::RefCell, + collections::{BTreeMap, BTreeSet}, + sync::{Arc, RwLock}, + }; use actix_service::{fn_factory, fn_service}; use slab::Slab; diff --git a/actix-utils/CHANGES.md b/actix-utils/CHANGES.md index af6434ab..fc7df208 100644 --- a/actix-utils/CHANGES.md +++ b/actix-utils/CHANGES.md @@ -2,7 +2,7 @@ ## Unreleased - 2023-xx-xx -- Minimum supported Rust version (MSRV) is now 1.60. +- Minimum supported Rust version (MSRV) is now 1.65. ## 3.0.1 - 2022-10-21 diff --git a/actix-utils/Cargo.toml b/actix-utils/Cargo.toml index 38d8af5e..e3c2553f 100644 --- a/actix-utils/Cargo.toml +++ b/actix-utils/Cargo.toml @@ -10,8 +10,8 @@ keywords = ["network", "framework", "async", "futures"] categories = ["network-programming", "asynchronous"] repository = "https://github.com/actix/actix-net" license = "MIT OR Apache-2.0" -edition = "2021" -rust-version = "1.60" +edition.workspace = true +rust-version.workspace = true [dependencies] pin-project-lite = "0.2" diff --git a/actix-utils/src/future/mod.rs b/actix-utils/src/future/mod.rs index 399b54d2..ec87428d 100644 --- a/actix-utils/src/future/mod.rs +++ b/actix-utils/src/future/mod.rs @@ -4,6 +4,8 @@ mod either; mod poll_fn; mod ready; -pub use self::either::Either; -pub use self::poll_fn::{poll_fn, PollFn}; -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/bytestring/Cargo.toml b/bytestring/Cargo.toml index 21da5a95..ab0e43c6 100644 --- a/bytestring/Cargo.toml +++ b/bytestring/Cargo.toml @@ -11,8 +11,8 @@ categories = ["no-std", "web-programming"] homepage = "https://actix.rs" repository = "https://github.com/actix/actix-net.git" license = "MIT OR Apache-2.0" -edition = "2021" -rust-version = "1.60" +edition.workspace = true +rust-version.workspace = true [dependencies] bytes = { version = "1.2", default-features = false } diff --git a/bytestring/src/lib.rs b/bytestring/src/lib.rs index 3892d09e..9c0007a2 100644 --- a/bytestring/src/lib.rs +++ b/bytestring/src/lib.rs @@ -253,8 +253,10 @@ impl fmt::Display for ByteString { mod serde { use alloc::string::String; - use serde::de::{Deserialize, Deserializer}; - use serde::ser::{Serialize, Serializer}; + use serde::{ + de::{Deserialize, Deserializer}, + ser::{Serialize, Serializer}, + }; use super::ByteString; diff --git a/local-channel/CHANGES.md b/local-channel/CHANGES.md index b1bad2f5..957adfd9 100644 --- a/local-channel/CHANGES.md +++ b/local-channel/CHANGES.md @@ -2,7 +2,7 @@ ## Unreleased - 2023-xx-xx -- Minimum supported Rust version (MSRV) is now 1.60. +- Minimum supported Rust version (MSRV) is now 1.65. ## 0.1.3 - 2022-05-03 diff --git a/local-channel/Cargo.toml b/local-channel/Cargo.toml index 04a4b9b5..9e0f21b4 100644 --- a/local-channel/Cargo.toml +++ b/local-channel/Cargo.toml @@ -9,8 +9,8 @@ authors = [ repository = "https://github.com/actix/actix-net.git" keywords = ["channel", "local", "futures"] license = "MIT OR Apache-2.0" -edition = "2021" -rust-version = "1.60" +edition.workspace = true +rust-version.workspace = true [dependencies] futures-core = "0.3.17" diff --git a/local-waker/CHANGES.md b/local-waker/CHANGES.md index 68f4348b..f8aadaa6 100644 --- a/local-waker/CHANGES.md +++ b/local-waker/CHANGES.md @@ -2,7 +2,7 @@ ## Unreleased - 2023-xx-xx -- Minimum supported Rust version (MSRV) is now 1.60. +- Minimum supported Rust version (MSRV) is now 1.65. ## 0.1.3 - 2022-05-03 diff --git a/local-waker/Cargo.toml b/local-waker/Cargo.toml index 1baa08c0..640c47e1 100644 --- a/local-waker/Cargo.toml +++ b/local-waker/Cargo.toml @@ -10,7 +10,7 @@ repository = "https://github.com/actix/actix-net.git" keywords = ["waker", "local", "futures", "no-std"] categories = ["asynchronous", "no-std"] license = "MIT OR Apache-2.0" -edition = "2021" -rust-version = "1.60" +edition.workspace = true +rust-version.workspace = true [dependencies] diff --git a/rustfmt.toml b/rustfmt.toml deleted file mode 100644 index a8758a07..00000000 --- a/rustfmt.toml +++ /dev/null @@ -1,2 +0,0 @@ -max_width = 96 -group_imports = "StdExternalCrate" From 755b231e0049e31706141d4da2aeec6109f52555 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Andr=C3=A9?= Date: Mon, 17 Jul 2023 05:10:36 +0200 Subject: [PATCH 069/410] add MPTCP socket protocol (optional) (#466) Co-authored-by: Rob Ede --- actix-server/CHANGES.md | 1 + actix-server/src/builder.rs | 41 +++++++++++++++++++++++++++++++++++-- actix-server/src/lib.rs | 5 ++++- actix-server/src/socket.rs | 26 +++++++++++++++++++++-- 4 files changed, 68 insertions(+), 5 deletions(-) diff --git a/actix-server/CHANGES.md b/actix-server/CHANGES.md index e98f9d2b..1f9f7b3c 100644 --- a/actix-server/CHANGES.md +++ b/actix-server/CHANGES.md @@ -2,6 +2,7 @@ ## Unreleased - 2023-xx-xx +- Add support for MultiPath TCP (MPTCP) with `MpTcp` enum and `ServerBuilder::mptcp()` method. - Minimum supported Rust version (MSRV) is now 1.65. ## 2.2.0 - 2022-12-21 diff --git a/actix-server/src/builder.rs b/actix-server/src/builder.rs index badac77b..e1d3a2d3 100644 --- a/actix-server/src/builder.rs +++ b/actix-server/src/builder.rs @@ -12,6 +12,22 @@ use crate::{ Server, }; +/// Multipath TCP (MPTCP) preference. +/// +/// Also see [`ServerBuilder::mptcp()`]. +#[derive(Debug, Clone)] +pub enum MpTcp { + /// MPTCP will not be used when binding sockets. + Disabled, + + /// MPTCP will be attempted when binding sockets. If errors occur, regular TCP will be + /// attempted, too. + TcpFallback, + + /// MPTCP will be used when binding sockets (with no fallback). + NoFallback, +} + /// [Server] builder. pub struct ServerBuilder { pub(crate) threads: usize, @@ -19,6 +35,7 @@ pub struct ServerBuilder { pub(crate) backlog: u32, pub(crate) factories: Vec>, pub(crate) sockets: Vec<(usize, String, MioListener)>, + pub(crate) mptcp: MpTcp, pub(crate) exit: bool, pub(crate) listen_os_signals: bool, pub(crate) cmd_tx: UnboundedSender, @@ -43,6 +60,7 @@ impl ServerBuilder { factories: Vec::new(), sockets: Vec::new(), backlog: 2048, + mptcp: MpTcp::Disabled, exit: false, listen_os_signals: true, cmd_tx, @@ -96,6 +114,24 @@ impl ServerBuilder { self } + /// Sets MultiPath TCP (MPTCP) preference on bound sockets. + /// + /// Multipath TCP (MPTCP) builds on top of TCP to improve connection redundancy and performance + /// by sharing a network data stream across multiple underlying TCP sessions. See [mptcp.dev] + /// for more info about MPTCP itself. + /// + /// MPTCP is available on Linux kernel version 5.6 and higher. In addition, you'll also need to + /// ensure the kernel option is enabled using `sysctl net.mptcp.enabled=1`. + /// + /// This method will have no effect if called after a `bind()`. + /// + /// [mptcp.dev]: https://www.mptcp.dev + #[cfg(target_os = "linux")] + pub fn mptcp(mut self, mptcp_enabled: MpTcp) -> Self { + self.mptcp = mptcp_enabled; + self + } + /// Sets the maximum per-worker number of concurrent connections. /// /// All socket listeners will stop accepting connections when this limit is reached for @@ -144,7 +180,7 @@ impl ServerBuilder { U: ToSocketAddrs, N: AsRef, { - let sockets = bind_addr(addr, self.backlog)?; + let sockets = bind_addr(addr, self.backlog, &self.mptcp)?; trace!("binding server to: {:?}", &sockets); @@ -260,13 +296,14 @@ impl ServerBuilder { pub(super) fn bind_addr( addr: S, backlog: u32, + mptcp: &MpTcp, ) -> io::Result> { let mut opt_err = None; let mut success = false; let mut sockets = Vec::new(); for addr in addr.to_socket_addrs()? { - match create_mio_tcp_listener(addr, backlog) { + match create_mio_tcp_listener(addr, backlog, mptcp) { Ok(lst) => { success = true; sockets.push(lst); diff --git a/actix-server/src/lib.rs b/actix-server/src/lib.rs index 5e265d74..24adf8ff 100644 --- a/actix-server/src/lib.rs +++ b/actix-server/src/lib.rs @@ -21,7 +21,10 @@ mod worker; #[doc(hidden)] pub use self::socket::FromStream; pub use self::{ - builder::ServerBuilder, handle::ServerHandle, server::Server, service::ServerServiceFactory, + builder::{MpTcp, ServerBuilder}, + handle::ServerHandle, + server::Server, + service::ServerServiceFactory, test_server::TestServer, }; diff --git a/actix-server/src/socket.rs b/actix-server/src/socket.rs index f0942e38..486c0d46 100644 --- a/actix-server/src/socket.rs +++ b/actix-server/src/socket.rs @@ -11,6 +11,8 @@ pub(crate) use { mio::net::UnixListener as MioUnixListener, std::os::unix::net::UnixListener as StdUnixListener, }; +use crate::builder::MpTcp; + pub(crate) enum MioListener { Tcp(MioTcpListener), #[cfg(unix)] @@ -223,10 +225,30 @@ mod unix_impl { pub(crate) fn create_mio_tcp_listener( addr: StdSocketAddr, backlog: u32, + mptcp: &MpTcp, ) -> io::Result { use socket2::{Domain, Protocol, Socket, Type}; - let socket = Socket::new(Domain::for_address(addr), Type::STREAM, Some(Protocol::TCP))?; + #[cfg(not(target_os = "linux"))] + let protocol = Protocol::TCP; + #[cfg(target_os = "linux")] + let protocol = if matches!(mptcp, MpTcp::Disabled) { + Protocol::TCP + } else { + Protocol::MPTCP + }; + + let socket = match Socket::new(Domain::for_address(addr), Type::STREAM, Some(protocol)) { + Ok(sock) => sock, + + Err(err) if matches!(mptcp, MpTcp::TcpFallback) => { + tracing::warn!("binding socket as MPTCP failed: {err}"); + tracing::warn!("falling back to TCP"); + Socket::new(Domain::for_address(addr), Type::STREAM, Some(Protocol::TCP))? + } + + Err(err) => return Err(err), + }; socket.set_reuse_address(true)?; socket.set_nonblocking(true)?; @@ -247,7 +269,7 @@ mod tests { assert_eq!(format!("{}", addr), "127.0.0.1:8080"); let addr: StdSocketAddr = "127.0.0.1:0".parse().unwrap(); - let lst = create_mio_tcp_listener(addr, 128).unwrap(); + let lst = create_mio_tcp_listener(addr, 128, &MpTcp::Disabled).unwrap(); let lst = MioListener::Tcp(lst); assert!(format!("{:?}", lst).contains("TcpListener")); assert!(format!("{}", lst).contains("127.0.0.1")); From e539f83615b4cc853cd49c58be15c3bc25fec177 Mon Sep 17 00:00:00 2001 From: Rob Ede Date: Tue, 18 Jul 2023 01:47:37 +0100 Subject: [PATCH 070/410] attempt windows CI fix --- .github/workflows/ci.yml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index cd9c5848..ce5250c5 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -40,10 +40,12 @@ jobs: - name: Install OpenSSL if: matrix.target.os == 'windows-latest' - run: choco install openssl + run: choco install openssl -y --forcex64 --no-progress - name: Set OpenSSL dir in env if: matrix.target.os == 'windows-latest' - run: echo 'OPENSSL_DIR=C:\Program Files\OpenSSL-Win64' | Out-File -FilePath $env:GITHUB_ENV -Append + run: | + echo 'OPENSSL_DIR=C:\Program Files\OpenSSL-Win64' | Out-File -FilePath $env:GITHUB_ENV -Append + echo 'OPENSSL_DIR=C:\Program Files\OpenSSL' | Out-File -FilePath $env:GITHUB_ENV -Append - name: Install Rust (${{ matrix.version }}) uses: actions-rust-lang/setup-rust-toolchain@v1 From 462ab6a4f091f9b3468569e521240c2dcb4021bc Mon Sep 17 00:00:00 2001 From: Rob Ede Date: Tue, 18 Jul 2023 02:06:01 +0100 Subject: [PATCH 071/410] ci: try to fix master jobs on windows --- .github/workflows/ci-master.yml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci-master.yml b/.github/workflows/ci-master.yml index 66bc042e..1fae5c39 100644 --- a/.github/workflows/ci-master.yml +++ b/.github/workflows/ci-master.yml @@ -39,10 +39,12 @@ jobs: - name: Install OpenSSL if: matrix.target.os == 'windows-latest' - run: choco install openssl + run: choco install openssl -y --forcex64 --no-progress - name: Set OpenSSL dir in env if: matrix.target.os == 'windows-latest' - run: echo 'OPENSSL_DIR=C:\Program Files\OpenSSL-Win64' | Out-File -FilePath $env:GITHUB_ENV -Append + run: | + echo 'OPENSSL_DIR=C:\Program Files\OpenSSL-Win64' | Out-File -FilePath $env:GITHUB_ENV -Append + echo 'OPENSSL_DIR=C:\Program Files\OpenSSL' | Out-File -FilePath $env:GITHUB_ENV -Append - name: Install Rust (${{ matrix.version }}) uses: actions-rust-lang/setup-rust-toolchain@v1 From 3c4b0c275584f76acf5c0e12b3a4557dddf4c9a6 Mon Sep 17 00:00:00 2001 From: Rob Ede Date: Wed, 19 Jul 2023 23:49:31 +0100 Subject: [PATCH 072/410] ci: rename post-merge workflow --- .github/workflows/{ci-master.yml => ci-post-merge.yml} | 9 +++------ .github/workflows/ci.yml | 2 +- 2 files changed, 4 insertions(+), 7 deletions(-) rename .github/workflows/{ci-master.yml => ci-post-merge.yml} (94%) diff --git a/.github/workflows/ci-master.yml b/.github/workflows/ci-post-merge.yml similarity index 94% rename from .github/workflows/ci-master.yml rename to .github/workflows/ci-post-merge.yml index 1fae5c39..c107bb53 100644 --- a/.github/workflows/ci-master.yml +++ b/.github/workflows/ci-post-merge.yml @@ -51,7 +51,7 @@ jobs: with: toolchain: ${{ matrix.version }} - - uses: taiki-e/cache-cargo-install-action@v1 + - uses: taiki-e/install-action@v2 with: { tool: cargo-hack } - name: check lib @@ -121,11 +121,8 @@ jobs: uses: actions-rust-lang/setup-rust-toolchain@v1 with: { toolchain: nightly } - - uses: taiki-e/cache-cargo-install-action@v1 - with: { tool: cargo-minimal-versions } - - - uses: taiki-e/cache-cargo-install-action@v1 - with: { tool: cargo-hack } + - uses: taiki-e/install-action@v1 + with: { tool: cargo-hack, cargo-minimal-versions } - name: Check With Minimal Versions run: cargo minimal-versions check diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index ce5250c5..866ed107 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -52,7 +52,7 @@ jobs: with: toolchain: ${{ matrix.version }} - - uses: taiki-e/cache-cargo-install-action@v1 + - uses: taiki-e/install-action@v1 with: { tool: cargo-hack } - name: Generate Cargo.lock From 3eba5b152e889ab45e24fcabdc1ddb4f06799d6f Mon Sep 17 00:00:00 2001 From: Rob Ede Date: Wed, 19 Jul 2023 23:52:56 +0100 Subject: [PATCH 073/410] prepare actix-macros release 0.2.4 --- actix-macros/CHANGES.md | 18 ++++++++++-------- actix-macros/Cargo.toml | 2 +- 2 files changed, 11 insertions(+), 9 deletions(-) diff --git a/actix-macros/CHANGES.md b/actix-macros/CHANGES.md index 9385808c..570c4e1e 100644 --- a/actix-macros/CHANGES.md +++ b/actix-macros/CHANGES.md @@ -1,48 +1,50 @@ # Changes -## Unreleased - 2023-xx-xx +## Unreleased + +## 0.2.4 - Update `syn` dependency to `2`. - Minimum supported Rust version (MSRV) is now 1.65. -## 0.2.3 - 2021-10-19 +## 0.2.3 - Fix test macro in presence of other imports named "test". [#399] [#399]: https://github.com/actix/actix-net/pull/399 -## 0.2.2 - 2021-10-14 +## 0.2.2 - Improve error recovery potential when macro input is invalid. [#391] - Allow custom `System`s on test macro. [#391] [#391]: https://github.com/actix/actix-net/pull/391 -## 0.2.1 - 2021-02-02 +## 0.2.1 - Add optional argument `system` to `main` macro which can be used to specify the path to `actix_rt::System` (useful for re-exports). [#363] [#363]: https://github.com/actix/actix-net/pull/363 -## 0.2.0 - 2021-02-02 +## 0.2.0 - Update to latest `actix_rt::System::new` signature. [#261] [#261]: https://github.com/actix/actix-net/pull/261 -## 0.2.0-beta.1 - 2021-01-09 +## 0.2.0-beta.1 - Remove `actix-reexport` feature. [#218] [#218]: https://github.com/actix/actix-net/pull/218 -## 0.1.3 - 2020-12-03 +## 0.1.3 - Add `actix-reexport` feature. [#218] [#218]: https://github.com/actix/actix-net/pull/218 -## 0.1.2 - 2020-05-18 +## 0.1.2 - Forward actix_rt::test arguments to test function [#127] diff --git a/actix-macros/Cargo.toml b/actix-macros/Cargo.toml index 4aba5e53..4ec4867d 100644 --- a/actix-macros/Cargo.toml +++ b/actix-macros/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "actix-macros" -version = "0.2.3" +version = "0.2.4" authors = [ "Nikolay Kim ", "Ibraheem Ahmed ", From 9017de439f5c660ecd5710188d8646bb29510d9d Mon Sep 17 00:00:00 2001 From: Rob Ede Date: Thu, 20 Jul 2023 00:22:55 +0100 Subject: [PATCH 074/410] ci: fix post-merge tool installs --- .github/workflows/ci-post-merge.yml | 16 ++++++++++------ actix-macros/src/lib.rs | 4 ++-- 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/.github/workflows/ci-post-merge.yml b/.github/workflows/ci-post-merge.yml index c107bb53..27f541a3 100644 --- a/.github/workflows/ci-post-merge.yml +++ b/.github/workflows/ci-post-merge.yml @@ -101,11 +101,13 @@ jobs: uses: actions-rust-lang/setup-rust-toolchain@v1 with: { toolchain: nightly } + - name: Install cargo-tarpaulin + uses: taiki-e/install-action@v1 + with: { tool: cargo-tarpaulin } + - name: Generate coverage file if: github.ref == 'refs/heads/master' - run: | - cargo install cargo-tarpaulin - cargo tarpaulin --out Xml --verbose + run: cargo tarpaulin --out Xml --verbose - name: Upload to Codecov if: github.ref == 'refs/heads/master' uses: codecov/codecov-action@v3 @@ -121,8 +123,9 @@ jobs: uses: actions-rust-lang/setup-rust-toolchain@v1 with: { toolchain: nightly } - - uses: taiki-e/install-action@v1 - with: { tool: cargo-hack, cargo-minimal-versions } + - name: Install cargo-hack & cargo-minimal-versions + uses: taiki-e/install-action@v1 + with: { tool: 'cargo-hack,cargo-minimal-versions' } - name: Check With Minimal Versions run: cargo minimal-versions check @@ -137,7 +140,8 @@ jobs: uses: actions-rust-lang/setup-rust-toolchain@v1 - name: Install cargo-nextest - run: cargo install cargo-nextest + uses: taiki-e/install-action@v1 + with: { tool: cargo-nextest } - name: Test with cargo-nextest run: cargo nextest run diff --git a/actix-macros/src/lib.rs b/actix-macros/src/lib.rs index 020b16db..481d1145 100644 --- a/actix-macros/src/lib.rs +++ b/actix-macros/src/lib.rs @@ -28,8 +28,8 @@ type AttributeArgs = syn::punctuated::Punctuated; /// println!("Hello world"); /// } /// ``` -// #[allow(clippy::needless_doctest_main)] -// #[cfg(not(test))] // Work around for rust-lang/rust#62127 +#[allow(clippy::needless_doctest_main)] +#[cfg(not(test))] // Work around for rust-lang/rust#62127 #[proc_macro_attribute] pub fn main(args: TokenStream, item: TokenStream) -> TokenStream { let mut input = match syn::parse::(item.clone()) { From 9cb8a1fadcc5caf11243609f6da4f0cd57b0094d Mon Sep 17 00:00:00 2001 From: Rob Ede Date: Mon, 24 Jul 2023 03:27:44 +0100 Subject: [PATCH 075/410] remove lint exception --- actix-macros/src/lib.rs | 2 -- 1 file changed, 2 deletions(-) diff --git a/actix-macros/src/lib.rs b/actix-macros/src/lib.rs index 481d1145..cd546f0e 100644 --- a/actix-macros/src/lib.rs +++ b/actix-macros/src/lib.rs @@ -28,8 +28,6 @@ type AttributeArgs = syn::punctuated::Punctuated; /// println!("Hello world"); /// } /// ``` -#[allow(clippy::needless_doctest_main)] -#[cfg(not(test))] // Work around for rust-lang/rust#62127 #[proc_macro_attribute] pub fn main(args: TokenStream, item: TokenStream) -> TokenStream { let mut input = match syn::parse::(item.clone()) { From 6ce830706054700db778134e7daa4426d582891c Mon Sep 17 00:00:00 2001 From: Rob Ede Date: Thu, 24 Aug 2023 00:56:31 +0100 Subject: [PATCH 076/410] remove num_cpus dependency (#488) --- .github/workflows/ci.yml | 4 ++ actix-server/CHANGES.md | 88 ++++++++++++++++++------------------- actix-server/Cargo.toml | 1 - actix-server/src/builder.rs | 10 ++++- actix-server/src/worker.rs | 8 +++- scripts/free-disk-space.sh | 53 ++++++++++++++++++++++ 6 files changed, 115 insertions(+), 49 deletions(-) create mode 100755 scripts/free-disk-space.sh diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 866ed107..20632f63 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -37,6 +37,10 @@ jobs: run: sudo ifconfig lo0 alias 127.0.0.3 - uses: actions/checkout@v3 + + - name: Free Disk Space + if: matrix.target.os == 'ubuntu-latest' + run: ./scripts/free-disk-space.sh - name: Install OpenSSL if: matrix.target.os == 'windows-latest' diff --git a/actix-server/CHANGES.md b/actix-server/CHANGES.md index 1f9f7b3c..ffe3f2a1 100644 --- a/actix-server/CHANGES.md +++ b/actix-server/CHANGES.md @@ -1,22 +1,22 @@ # Changes -## Unreleased - 2023-xx-xx +## Unreleased - Add support for MultiPath TCP (MPTCP) with `MpTcp` enum and `ServerBuilder::mptcp()` method. - Minimum supported Rust version (MSRV) is now 1.65. -## 2.2.0 - 2022-12-21 +## 2.2.0 - Minimum supported Rust version (MSRV) is now 1.59. - Update `tokio-uring` dependency to `0.4`. [#473] [#473]: https://github.com/actix/actix-net/pull/473 -## 2.1.1 - 2022-03-09 +## 2.1.1 - No significant changes since `2.1.0`. -## 2.1.0 - 2022-03-08 +## 2.1.0 - Update `tokio-uring` dependency to `0.3`. [#448] - Logs emitted now use the `tracing` crate with `log` compatibility. [#448] @@ -25,27 +25,27 @@ [#443]: https://github.com/actix/actix-net/pull/443 [#448]: https://github.com/actix/actix-net/pull/448 -## 2.0.0 - 2022-01-19 +## 2.0.0 - No significant changes since `2.0.0-rc.4`. -## 2.0.0-rc.4 - 2022-01-12 +## 2.0.0-rc.4 - Update `tokio-uring` dependency to `0.2`. [#436] [#436]: https://github.com/actix/actix-net/pull/436 -## 2.0.0-rc.3 - 2021-12-31 +## 2.0.0-rc.3 - No significant changes since `2.0.0-rc.2`. -## 2.0.0-rc.2 - 2021-12-27 +## 2.0.0-rc.2 - Simplify `TestServer`. [#431] [#431]: https://github.com/actix/actix-net/pull/431 -## 2.0.0-rc.1 - 2021-12-05 +## 2.0.0-rc.1 - Hide implementation details of `Server`. [#424] - `Server` now runs only after awaiting it. [#425] @@ -53,19 +53,19 @@ [#424]: https://github.com/actix/actix-net/pull/424 [#425]: https://github.com/actix/actix-net/pull/425 -## 2.0.0-beta.9 - 2021-11-15 +## 2.0.0-beta.9 - Restore `Arbiter` support lost in `beta.8`. [#417] [#417]: https://github.com/actix/actix-net/pull/417 -## 2.0.0-beta.8 - 2021-11-05 _(YANKED)_ +## 2.0.0-beta.8 - Fix non-unix signal handler. [#410] [#410]: https://github.com/actix/actix-net/pull/410 -## 2.0.0-beta.7 - 2021-11-05 _(YANKED)_ +## 2.0.0-beta.7 - Server can be started in regular Tokio runtime. [#408] - Expose new `Server` type whose `Future` impl resolves when server stops. [#408] @@ -78,7 +78,7 @@ [#407]: https://github.com/actix/actix-net/pull/407 [#408]: https://github.com/actix/actix-net/pull/408 -## 2.0.0-beta.6 - 2021-10-11 +## 2.0.0-beta.6 - Add experimental (semver-exempt) `io-uring` feature for enabling async file I/O on linux. [#374] - Server no long listens to `SIGHUP` signal. Previously, the received was not used but did block subsequent exit signals from working. [#389] @@ -89,19 +89,19 @@ [#349]: https://github.com/actix/actix-net/pull/349 [#389]: https://github.com/actix/actix-net/pull/389 -## 2.0.0-beta.5 - 2021-04-20 +## 2.0.0-beta.5 - Server shutdown notifies all workers to exit regardless if shutdown is graceful. This causes all workers to shutdown immediately in force shutdown case. [#333] [#333]: https://github.com/actix/actix-net/pull/333 -## 2.0.0-beta.4 - 2021-04-01 +## 2.0.0-beta.4 - Prevent panic when `shutdown_timeout` is very large. [f9262db] [f9262db]: https://github.com/actix/actix-net/commit/f9262db -## 2.0.0-beta.3 - 2021-02-06 +## 2.0.0-beta.3 - Hidden `ServerBuilder::start` method has been removed. Use `ServerBuilder::run`. [#246] - Add retry for EINTR signal (`io::Interrupted`) in `Accept`'s poll loop. [#264] @@ -113,13 +113,13 @@ [#265]: https://github.com/actix/actix-net/pull/265 [#273]: https://github.com/actix/actix-net/pull/273 -## 2.0.0-beta.2 - 2021-01-03 +## 2.0.0-beta.2 - Merge `actix-testing` to `actix-server` as `test_server` mod. [#242] [#242]: https://github.com/actix/actix-net/pull/242 -## 2.0.0-beta.1 - 2020-12-28 +## 2.0.0-beta.1 - Added explicit info log message on accept queue pause. [#215] - Prevent double registration of sockets when back-pressure is resolved. [#223] @@ -134,127 +134,127 @@ [#223]: https://github.com/actix/actix-net/pull/223 [#239]: https://github.com/actix/actix-net/pull/239 -## 1.0.4 - 2020-09-12 +## 1.0.4 - Update actix-codec to 0.3.0. - Workers must be greater than 0. [#167] [#167]: https://github.com/actix/actix-net/pull/167 -## 1.0.3 - 2020-05-19 +## 1.0.3 - Replace deprecated `net2` crate with `socket2` [#140] [#140]: https://github.com/actix/actix-net/pull/140 -## 1.0.2 - 2020-02-26 +## 1.0.2 - Avoid error by calling `reregister()` on Windows [#103] [#103]: https://github.com/actix/actix-net/pull/103 -## 1.0.1 - 2019-12-29 +## 1.0.1 - Rename `.start()` method to `.run()` -## 1.0.0 - 2019-12-11 +## 1.0.0 - Use actix-net releases -## 1.0.0-alpha.4 - 2019-12-08 +## 1.0.0-alpha.4 - Use actix-service 1.0.0-alpha.4 -## 1.0.0-alpha.3 - 2019-12-07 +## 1.0.0-alpha.3 - Migrate to tokio 0.2 - Fix compilation on non-unix platforms - Better handling server configuration -## 1.0.0-alpha.2 - 2019-12-02 +## 1.0.0-alpha.2 - Simplify server service (remove actix-server-config) - Allow to wait on `Server` until server stops -## 0.8.0-alpha.1 - 2019-11-22 +## 0.8.0-alpha.1 - Migrate to `std::future` -## 0.7.0 - 2019-10-04 +## 0.7.0 - Update `rustls` to 0.16 - Minimum required Rust version upped to 1.37.0 -## 0.6.1 - 2019-09-25 +## 0.6.1 - Add UDS listening support to `ServerBuilder` -## 0.6.0 - 2019-07-18 +## 0.6.0 - Support Unix domain sockets #3 -## 0.5.1 - 2019-05-18 +## 0.5.1 - ServerBuilder::shutdown_timeout() accepts u64 -## 0.5.0 - 2019-05-12 +## 0.5.0 - Add `Debug` impl for `SslError` - Derive debug for `Server` and `ServerCommand` - Upgrade to actix-service 0.4 -## 0.4.3 - 2019-04-16 +## 0.4.3 - Re-export `IoStream` trait - Depend on `ssl` and `rust-tls` features from actix-server-config -## 0.4.2 - 2019-03-30 +## 0.4.2 - Fix SIGINT force shutdown -## 0.4.1 - 2019-03-14 +## 0.4.1 - `SystemRuntime::on_start()` - allow to run future before server service initialization -## 0.4.0 - 2019-03-12 +## 0.4.0 - Use `ServerConfig` for service factory - Wrap tcp socket to `Io` type - Upgrade actix-service -## 0.3.1 - 2019-03-04 +## 0.3.1 - Add `ServerBuilder::maxconnrate` sets the maximum per-worker number of concurrent connections - Add helper ssl error `SslError` - Rename `StreamServiceFactory` to `ServiceFactory` - Deprecate `StreamServiceFactory` -## 0.3.0 - 2019-03-02 +## 0.3.0 - Use new `NewService` trait -## 0.2.1 - 2019-02-09 +## 0.2.1 - Drop service response -## 0.2.0 - 2019-02-01 +## 0.2.0 - Migrate to actix-service 0.2 - Updated rustls dependency -## 0.1.3 - 2018-12-21 +## 0.1.3 - Fix max concurrent connections handling -## 0.1.2 - 2018-12-12 +## 0.1.2 - rename ServiceConfig::rt() to ServiceConfig::apply() - Fix back-pressure for concurrent ssl handshakes -## 0.1.1 - 2018-12-11 +## 0.1.1 - Fix signal handling on windows -## 0.1.0 - 2018-12-09 +## 0.1.0 - Move server to separate crate diff --git a/actix-server/Cargo.toml b/actix-server/Cargo.toml index 62f13107..53f54f79 100755 --- a/actix-server/Cargo.toml +++ b/actix-server/Cargo.toml @@ -27,7 +27,6 @@ actix-utils = "3" futures-core = { version = "0.3.17", default-features = false, features = ["alloc"] } futures-util = { version = "0.3.17", default-features = false, features = ["alloc"] } mio = { version = "0.8", features = ["os-poll", "net"] } -num_cpus = "1.13" socket2 = "0.5" tokio = { version = "1.23.1", features = ["sync"] } tracing = { version = "0.1.30", default-features = false, features = ["log"] } diff --git a/actix-server/src/builder.rs b/actix-server/src/builder.rs index e1d3a2d3..42addafc 100644 --- a/actix-server/src/builder.rs +++ b/actix-server/src/builder.rs @@ -1,4 +1,4 @@ -use std::{io, time::Duration}; +use std::{io, num::NonZeroUsize, time::Duration}; use actix_rt::net::TcpStream; use tokio::sync::mpsc::{unbounded_channel, UnboundedReceiver, UnboundedSender}; @@ -55,7 +55,7 @@ impl ServerBuilder { let (cmd_tx, cmd_rx) = unbounded_channel(); ServerBuilder { - threads: num_cpus::get_physical(), + threads: std::thread::available_parallelism().map_or(2, NonZeroUsize::get), token: 0, factories: Vec::new(), sockets: Vec::new(), @@ -76,6 +76,12 @@ impl ServerBuilder { /// The default worker count is the number of physical CPU cores available. If your benchmark /// testing indicates that simultaneous multi-threading is beneficial to your app, you can use /// the [`num_cpus`] crate to acquire the _logical_ core count instead. + /// + /// # Panics + /// + /// Panics if `num` is 0. + /// + /// [`num_cpus`]: https://docs.rs/num_cpus pub fn workers(mut self, num: usize) -> Self { assert_ne!(num, 0, "workers must be greater than 0"); self.threads = num; diff --git a/actix-server/src/worker.rs b/actix-server/src/worker.rs index a9ae97a0..d72cd2db 100644 --- a/actix-server/src/worker.rs +++ b/actix-server/src/worker.rs @@ -1,6 +1,7 @@ use std::{ future::Future, io, mem, + num::NonZeroUsize, pin::Pin, rc::Rc, sync::{ @@ -249,8 +250,11 @@ pub(crate) struct ServerWorkerConfig { impl Default for ServerWorkerConfig { fn default() -> Self { - // 512 is the default max blocking thread count of tokio runtime. - let max_blocking_threads = std::cmp::max(512 / num_cpus::get_physical(), 1); + let parallelism = std::thread::available_parallelism().map_or(2, NonZeroUsize::get); + + // 512 is the default max blocking thread count of a Tokio runtime. + let max_blocking_threads = std::cmp::max(512 / parallelism, 1); + Self { shutdown_timeout: Duration::from_secs(30), max_blocking_threads, diff --git a/scripts/free-disk-space.sh b/scripts/free-disk-space.sh new file mode 100755 index 00000000..2946cfcf --- /dev/null +++ b/scripts/free-disk-space.sh @@ -0,0 +1,53 @@ +#!/usr/bin/env bash + +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# The Azure provided machines typically have the following disk allocation: +# Total space: 85GB +# Allocated: 67 GB +# Free: 17 GB +# This script frees up 28 GB of disk space by deleting unneeded packages and +# large directories. +# The Flink end to end tests download and generate more than 17 GB of files, +# causing unpredictable behavior and build failures. + +echo "==============================================================================" +echo "Freeing up disk space on CI system" +echo "==============================================================================" + +echo "Listing 100 largest packages" +dpkg-query -Wf '${Installed-Size}\t${Package}\n' | sort -n | tail -n 100 +df -h + +echo "Removing large packages" +sudo apt-get remove -y '^dotnet-.*' +sudo apt-get remove -y 'php.*' +sudo apt-get remove -y '^mongodb-.*' +sudo apt-get remove -y '^mysql-.*' +sudo apt-get remove -y azure-cli google-cloud-sdk hhvm google-chrome-stable firefox powershell mono-devel libgl1-mesa-dri +sudo apt-get autoremove -y +sudo apt-get clean +df -h + +echo "Removing large directories" +sudo rm -rf /usr/share/dotnet/ +sudo rm -rf /usr/local/graalvm/ +sudo rm -rf /usr/local/.ghcup/ +sudo rm -rf /usr/local/share/powershell +sudo rm -rf /usr/local/share/chromium +sudo rm -rf /usr/local/lib/android +sudo rm -rf /usr/local/lib/node_modules +df -h From 0bc310a656160d8425764bbef46ff9afe92f28bc Mon Sep 17 00:00:00 2001 From: Rob Ede Date: Sat, 26 Aug 2023 14:59:51 +0100 Subject: [PATCH 077/410] Rustls v0.21 support (#480) --- .cargo/config.toml | 6 +- .github/workflows/ci-post-merge.yml | 16 +- .github/workflows/ci.yml | 16 +- Cargo.toml | 1 + actix-server/src/worker.rs | 3 + actix-tls/CHANGES.md | 49 +++-- actix-tls/Cargo.toml | 30 ++- actix-tls/examples/accept-rustls.rs | 20 +- actix-tls/src/accept/mod.rs | 18 +- .../src/accept/{rustls.rs => rustls_0_20.rs} | 5 +- actix-tls/src/accept/rustls_0_21.rs | 198 ++++++++++++++++++ actix-tls/src/connect/mod.rs | 11 +- .../src/connect/{rustls.rs => rustls_0_20.rs} | 33 +-- actix-tls/src/connect/rustls_0_21.rs | 154 ++++++++++++++ actix-tls/tests/accept-openssl.rs | 5 +- actix-tls/tests/accept-rustls.rs | 5 +- actix-tls/tests/test_connect.rs | 4 +- actix-utils/src/counter.rs | 4 +- actix-utils/src/future/poll_fn.rs | 1 + 19 files changed, 504 insertions(+), 75 deletions(-) rename actix-tls/src/accept/{rustls.rs => rustls_0_20.rs} (97%) create mode 100644 actix-tls/src/accept/rustls_0_21.rs rename actix-tls/src/connect/{rustls.rs => rustls_0_20.rs} (78%) create mode 100644 actix-tls/src/connect/rustls_0_21.rs diff --git a/.cargo/config.toml b/.cargo/config.toml index c4f6e3f6..a114083f 100644 --- a/.cargo/config.toml +++ b/.cargo/config.toml @@ -15,9 +15,11 @@ ci-check-linux = "hack --workspace --feature-powerset check --tests --examples" # tests avoiding io-uring feature ci-test = "hack --feature-powerset --exclude-features=io-uring test --lib --tests --no-fail-fast -- --nocapture" +ci-test-rustls-020 = "hack --feature-powerset --exclude-features=io-uring,rustls-0_21 test --lib --tests --no-fail-fast -- --nocapture" +ci-test-rustls-021 = "hack --feature-powerset --exclude-features=io-uring,rustls-0_20 test --lib --tests --no-fail-fast -- --nocapture" # tests avoiding io-uring feature on Windows -ci-test-win = "hack --feature-powerset --depth 2 --exclude-features=io-uring test --lib --tests --no-fail-fast -- --nocapture" +ci-test-win = "hack --feature-powerset --depth=2 --exclude-features=io-uring test --lib --tests --no-fail-fast -- --nocapture" # test with io-uring feature -ci-test-linux = "hack --feature-powerset test --lib --tests --no-fail-fast -- --nocapture" +ci-test-linux = "hack --feature-powerset --exclude-features=rustls-0_20 test --lib --tests --no-fail-fast -- --nocapture" diff --git a/.github/workflows/ci-post-merge.yml b/.github/workflows/ci-post-merge.yml index 27f541a3..30bca39e 100644 --- a/.github/workflows/ci-post-merge.yml +++ b/.github/workflows/ci-post-merge.yml @@ -16,6 +16,7 @@ jobs: strategy: fail-fast: false matrix: + # prettier-ignore target: - { name: Linux, os: ubuntu-latest, triple: x86_64-unknown-linux-gnu } - { name: macOS, os: macos-latest, triple: x86_64-apple-darwin } @@ -37,6 +38,10 @@ jobs: - uses: actions/checkout@v3 + - name: Free Disk Space + if: matrix.target.os == 'ubuntu-latest' + run: ./scripts/free-disk-space.sh + - name: Install OpenSSL if: matrix.target.os == 'windows-latest' run: choco install openssl -y --forcex64 --no-progress @@ -83,8 +88,15 @@ jobs: run: cargo ci-test - name: tests if: matrix.target.os == 'ubuntu-latest' - run: | - sudo bash -c "ulimit -Sl 512 && ulimit -Hl 512 && PATH=$PATH:/usr/share/rust/.cargo/bin && RUSTUP_TOOLCHAIN=${{ matrix.version }} cargo ci-test && RUSTUP_TOOLCHAIN=${{ matrix.version }} cargo ci-test-linux" + run: >- + sudo bash -c " + ulimit -Sl 512 + && ulimit -Hl 512 + && PATH=$PATH:/usr/share/rust/.cargo/bin + && RUSTUP_TOOLCHAIN=${{ matrix.version }} cargo ci-test-rustls-020 + && RUSTUP_TOOLCHAIN=${{ matrix.version }} cargo ci-test-rustls-021 + && RUSTUP_TOOLCHAIN=${{ matrix.version }} cargo ci-test-linux + " - name: Clear the cargo caches run: | diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 20632f63..74315e6a 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -1,6 +1,6 @@ name: CI -on: +on: pull_request: {} push: { branches: [master] } @@ -16,6 +16,7 @@ jobs: strategy: fail-fast: false matrix: + # prettier-ignore target: - { name: Linux, os: ubuntu-latest, triple: x86_64-unknown-linux-gnu } - { name: macOS, os: macos-latest, triple: x86_64-apple-darwin } @@ -37,7 +38,7 @@ jobs: run: sudo ifconfig lo0 alias 127.0.0.3 - uses: actions/checkout@v3 - + - name: Free Disk Space if: matrix.target.os == 'ubuntu-latest' run: ./scripts/free-disk-space.sh @@ -99,8 +100,15 @@ jobs: run: cargo ci-test-win - name: tests if: matrix.target.os == 'ubuntu-latest' - run: | - sudo bash -c "ulimit -Sl 512 && ulimit -Hl 512 && PATH=$PATH:/usr/share/rust/.cargo/bin && RUSTUP_TOOLCHAIN=${{ matrix.version }} cargo ci-test && RUSTUP_TOOLCHAIN=${{ matrix.version }} cargo ci-test-linux" + run: >- + sudo bash -c " + ulimit -Sl 512 + && ulimit -Hl 512 + && PATH=$PATH:/usr/share/rust/.cargo/bin + && RUSTUP_TOOLCHAIN=${{ matrix.version }} cargo ci-test-rustls-020 + && RUSTUP_TOOLCHAIN=${{ matrix.version }} cargo ci-test-rustls-021 + && RUSTUP_TOOLCHAIN=${{ matrix.version }} cargo ci-test-linux + " - name: Clear the cargo caches run: | diff --git a/Cargo.toml b/Cargo.toml index 62897764..696de4a5 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -15,6 +15,7 @@ members = [ resolver = "2" [workspace.package] +license = "MIT OR Apache-2.0" edition = "2021" rust-version = "1.65" diff --git a/actix-server/src/worker.rs b/actix-server/src/worker.rs index d72cd2db..7050fcd2 100644 --- a/actix-server/src/worker.rs +++ b/actix-server/src/worker.rs @@ -625,6 +625,7 @@ impl Future for ServerWorker { self.poll(cx) } }, + WorkerState::Restarting(ref mut restart) => { let factory_id = restart.factory_id; let token = restart.token; @@ -649,6 +650,7 @@ impl Future for ServerWorker { self.poll(cx) } + WorkerState::Shutdown(ref mut shutdown) => { // drop all pending connections in rx channel. while let Poll::Ready(Some(conn)) = this.conn_rx.poll_recv(cx) { @@ -682,6 +684,7 @@ impl Future for ServerWorker { shutdown.timer.as_mut().poll(cx) } } + // actively poll stream and handle worker command WorkerState::Available => loop { match this.check_readiness(cx) { diff --git a/actix-tls/CHANGES.md b/actix-tls/CHANGES.md index 0381e6de..556d498b 100644 --- a/actix-tls/CHANGES.md +++ b/actix-tls/CHANGES.md @@ -1,40 +1,43 @@ # Changes -## Unreleased - 2023-xx-xx +## Unreleased +- Support Rustls v0.21. +- Added `{accept, connect}::rustls_0_21` modules. +- Added `{accept, connect}::rustls_0_20` alias for `{accept, connect}::rustls` modules. - Minimum supported Rust version (MSRV) is now 1.65. -## 3.0.4 - 2022-03-15 +## 3.0.4 - Logs emitted now use the `tracing` crate with `log` compatibility. [#451] [#451]: https://github.com/actix/actix-net/pull/451 -## 3.0.3 - 2022-02-15 +## 3.0.3 - No significant changes since `3.0.2`. -## 3.0.2 - 2022-01-28 +## 3.0.2 - Expose `connect::Connection::new`. [#439] [#439]: https://github.com/actix/actix-net/pull/439 -## 3.0.1 - 2022-01-11 +## 3.0.1 - No significant changes since `3.0.0`. -## 3.0.0 - 2021-12-26 +## 3.0.0 - No significant changes since `3.0.0-rc.2`. -## 3.0.0-rc.2 - 2021-12-10 +## 3.0.0-rc.2 - Re-export `openssl::SslConnectorBuilder` in `connect::openssl::reexports`. [#429] [#429]: https://github.com/actix/actix-net/pull/429 -## 3.0.0-rc.1 - 2021-11-29 +## 3.0.0-rc.1 ### Added @@ -72,7 +75,7 @@ [#422]: https://github.com/actix/actix-net/pull/422 [#423]: https://github.com/actix/actix-net/pull/423 -## 3.0.0-beta.9 - 2021-11-22 +## 3.0.0-beta.9 - Add configurable timeout for accepting TLS connection. [#393] - Added `TlsError::Timeout` variant. [#393] @@ -82,20 +85,20 @@ [#393]: https://github.com/actix/actix-net/pull/393 [#420]: https://github.com/actix/actix-net/pull/420 -## 3.0.0-beta.8 - 2021-11-15 +## 3.0.0-beta.8 - Add `Connect::request` for getting a reference to the connection request. [#415] [#415]: https://github.com/actix/actix-net/pull/415 -## 3.0.0-beta.7 - 2021-10-20 +## 3.0.0-beta.7 - Add `webpki_roots_cert_store()` to get rustls compatible webpki roots cert store. [#401] - Alias `connect::ssl` to `connect::tls`. [#401] [#401]: https://github.com/actix/actix-net/pull/401 -## 3.0.0-beta.6 - 2021-10-19 +## 3.0.0-beta.6 - Update `tokio-rustls` to `0.23` which uses `rustls` `0.20`. [#396] - Removed a re-export of `Session` from `rustls` as it no longer exist. [#396] @@ -103,7 +106,7 @@ [#396]: https://github.com/actix/actix-net/pull/396 -## 3.0.0-beta.5 - 2021-03-29 +## 3.0.0-beta.5 - Changed `connect::ssl::rustls::RustlsConnectorService` to return error when `DNSNameRef` generation failed instead of panic. [#296] - Remove `connect::ssl::openssl::OpensslConnectServiceFactory`. [#297] @@ -117,7 +120,7 @@ [#297]: https://github.com/actix/actix-net/pull/297 [#299]: https://github.com/actix/actix-net/pull/299 -## 3.0.0-beta.4 - 2021-02-24 +## 3.0.0-beta.4 - Rename `accept::openssl::{SslStream => TlsStream}`. - Add `connect::Connect::set_local_addr` to attach local `IpAddr`. [#282] @@ -125,7 +128,7 @@ [#282]: https://github.com/actix/actix-net/pull/282 -## 3.0.0-beta.3 - 2021-02-06 +## 3.0.0-beta.3 - Remove `trust-dns-proto` and `trust-dns-resolver`. [#248] - Use `std::net::ToSocketAddrs` as simple and basic default resolver. [#248] @@ -139,13 +142,13 @@ [#248]: https://github.com/actix/actix-net/pull/248 [#273]: https://github.com/actix/actix-net/pull/273 -## 3.0.0-beta.2 - 2022-xx-xx +## 3.0.0-beta.2 - Depend on stable trust-dns packages. [#204] [#204]: https://github.com/actix/actix-net/pull/204 -## 3.0.0-beta.1 - 2020-12-29 +## 3.0.0-beta.1 - Move acceptors under `accept` module. [#238] - Merge `actix-connect` crate under `connect` module. [#238] @@ -153,7 +156,7 @@ [#238]: https://github.com/actix/actix-net/pull/238 -## 2.0.0 - 2020-09-03 +## 2.0.0 - `nativetls::NativeTlsAcceptor` is renamed to `nativetls::Acceptor`. - Where possible, "SSL" terminology is replaced with "TLS". @@ -161,28 +164,28 @@ - `TlsError::Ssl` enum variant is renamed to `TlsError::Tls`. - `max_concurrent_ssl_connect` is renamed to `max_concurrent_tls_connect`. -## 2.0.0-alpha.2 - 2020-08-17 +## 2.0.0-alpha.2 - Update `rustls` dependency to 0.18 - Update `tokio-rustls` dependency to 0.14 - Update `webpki-roots` dependency to 0.20 -## [2.0.0-alpha.1] - 2020-03-03 +## [2.0.0-alpha.1] - Update `rustls` dependency to 0.17 - Update `tokio-rustls` dependency to 0.13 - Update `webpki-roots` dependency to 0.19 -## [1.0.0] - 2019-12-11 +## [1.0.0] - 1.0.0 release -## [1.0.0-alpha.3] - 2019-12-07 +## [1.0.0-alpha.3] - Migrate to tokio 0.2 - Enable rustls acceptor service - Enable native-tls acceptor service -## [1.0.0-alpha.1] - 2019-12-02 +## [1.0.0-alpha.1] - Split openssl acceptor from actix-server package diff --git a/actix-tls/Cargo.toml b/actix-tls/Cargo.toml index d65d675b..0c5a148e 100755 --- a/actix-tls/Cargo.toml +++ b/actix-tls/Cargo.toml @@ -9,7 +9,7 @@ description = "TLS acceptor and connector services for Actix ecosystem" keywords = ["network", "tls", "ssl", "async", "transport"] repository = "https://github.com/actix/actix-net.git" categories = ["network-programming", "asynchronous", "cryptography"] -license = "MIT OR Apache-2.0" +license.workspace = true edition.workspace = true rust-version.workspace = true @@ -29,8 +29,14 @@ connect = [] # use openssl impls openssl = ["tls-openssl", "tokio-openssl"] -# use rustls impls -rustls = ["tokio-rustls", "webpki-roots"] +# alias for backwards compat +rustls = ["rustls-0_20"] + +# use rustls v0.20 impls +rustls-0_20 = ["tokio-rustls-023", "webpki-roots-022"] + +# use rustls v0.21 impls +rustls-0_21 = ["tokio-rustls-024", "webpki-roots-025"] # use native-tls impls native-tls = ["tokio-native-tls"] @@ -57,9 +63,13 @@ http = { version = "0.2.3", optional = true } tls-openssl = { package = "openssl", version = "0.10.48", optional = true } tokio-openssl = { version = "0.6", optional = true } -# rustls -tokio-rustls = { version = "0.23", optional = true } -webpki-roots = { version = "0.22", optional = true } +# rustls v0.20 +tokio-rustls-023 = { package = "tokio-rustls", version = "0.23", optional = true } +webpki-roots-022 = { package = "webpki-roots", version = "0.22", optional = true } + +# rustls v0.21 +tokio-rustls-024 = { package = "tokio-rustls", version = "0.24", optional = true } +webpki-roots-025 = { package = "webpki-roots", version = "0.25", optional = true } # native-tls tokio-native-tls = { version = "0.3", optional = true } @@ -72,11 +82,11 @@ bytes = "1" env_logger = "0.10" futures-util = { version = "0.3.17", default-features = false, features = ["sink"] } log = "0.4" -rcgen = "0.10" +rcgen = "0.11" rustls-pemfile = "1" -tokio-rustls = { version = "0.23", features = ["dangerous_configuration"] } -trust-dns-resolver = "0.22" +tokio-rustls-024 = { package = "tokio-rustls", version = "0.24", features = ["dangerous_configuration"] } +trust-dns-resolver = "0.23" [[example]] name = "accept-rustls" -required-features = ["accept", "rustls"] +required-features = ["accept", "rustls-0_21"] diff --git a/actix-tls/examples/accept-rustls.rs b/actix-tls/examples/accept-rustls.rs index 6424e64a..40f51753 100644 --- a/actix-tls/examples/accept-rustls.rs +++ b/actix-tls/examples/accept-rustls.rs @@ -17,12 +17,13 @@ #[rustfmt::skip] // this `use` is only exists because of how we have organised the crate -// it is not necessary for your actual code; you should import from `rustls` directly -use tokio_rustls::rustls; +// it is not necessary for your actual code; you should import from `rustls` normally +use tokio_rustls_024::rustls; use std::{ fs::File, io::{self, BufReader}, + path::PathBuf, sync::{ atomic::{AtomicUsize, Ordering}, Arc, @@ -32,7 +33,7 @@ use std::{ use actix_rt::net::TcpStream; use actix_server::Server; use actix_service::ServiceFactoryExt as _; -use actix_tls::accept::rustls::{Acceptor as RustlsAcceptor, TlsStream}; +use actix_tls::accept::rustls_0_21::{Acceptor as RustlsAcceptor, TlsStream}; use futures_util::future::ok; use rustls::{server::ServerConfig, Certificate, PrivateKey}; use rustls_pemfile::{certs, rsa_private_keys}; @@ -42,9 +43,16 @@ use tracing::info; async fn main() -> io::Result<()> { env_logger::init_from_env(env_logger::Env::default().default_filter_or("info")); + let root_path = env!("CARGO_MANIFEST_DIR") + .parse::() + .unwrap() + .join("examples"); + let cert_path = root_path.clone().join("cert.pem"); + let key_path = root_path.clone().join("key.pem"); + // Load TLS key and cert files - let cert_file = &mut BufReader::new(File::open("./examples/cert.pem").unwrap()); - let key_file = &mut BufReader::new(File::open("./examples/key.pem").unwrap()); + let cert_file = &mut BufReader::new(File::open(cert_path).unwrap()); + let key_file = &mut BufReader::new(File::open(key_path).unwrap()); let cert_chain = certs(cert_file) .unwrap() @@ -64,7 +72,7 @@ async fn main() -> io::Result<()> { let count = Arc::new(AtomicUsize::new(0)); let addr = ("127.0.0.1", 8443); - info!("starting server on port: {}", &addr.0); + info!("starting server at: {addr:?}"); Server::build() .bind("tls-example", addr, move || { diff --git a/actix-tls/src/accept/mod.rs b/actix-tls/src/accept/mod.rs index 1eee6720..18585970 100644 --- a/actix-tls/src/accept/mod.rs +++ b/actix-tls/src/accept/mod.rs @@ -12,15 +12,27 @@ use actix_utils::counter::Counter; #[cfg(feature = "openssl")] pub mod openssl; -#[cfg(feature = "rustls")] -pub mod rustls; +#[cfg(feature = "rustls-0_20")] +pub mod rustls_0_20; + +#[doc(hidden)] +#[cfg(feature = "rustls-0_20")] +pub use rustls_0_20 as rustls; + +#[cfg(feature = "rustls-0_21")] +pub mod rustls_0_21; #[cfg(feature = "native-tls")] pub mod native_tls; pub(crate) static MAX_CONN: AtomicUsize = AtomicUsize::new(256); -#[cfg(any(feature = "openssl", feature = "rustls", feature = "native-tls"))] +#[cfg(any( + feature = "openssl", + feature = "rustls-0_20", + feature = "rustls-0_21", + feature = "native-tls", +))] pub(crate) const DEFAULT_TLS_HANDSHAKE_TIMEOUT: std::time::Duration = std::time::Duration::from_secs(3); diff --git a/actix-tls/src/accept/rustls.rs b/actix-tls/src/accept/rustls_0_20.rs similarity index 97% rename from actix-tls/src/accept/rustls.rs rename to actix-tls/src/accept/rustls_0_20.rs index 85cf5b00..d06f1799 100644 --- a/actix-tls/src/accept/rustls.rs +++ b/actix-tls/src/accept/rustls_0_20.rs @@ -1,4 +1,4 @@ -//! `rustls` based TLS connection acceptor service. +//! `rustls` v0.20 based TLS connection acceptor service. //! //! See [`Acceptor`] for main service factory docs. @@ -24,13 +24,14 @@ use actix_utils::{ use pin_project_lite::pin_project; use tokio::io::{AsyncRead, AsyncWrite, ReadBuf}; use tokio_rustls::{rustls::ServerConfig, Accept, TlsAcceptor}; +use tokio_rustls_023 as tokio_rustls; use super::{TlsError, DEFAULT_TLS_HANDSHAKE_TIMEOUT, MAX_CONN_COUNTER}; pub mod reexports { //! Re-exports from `rustls` that are useful for acceptors. - pub use tokio_rustls::rustls::ServerConfig; + pub use tokio_rustls_023::rustls::ServerConfig; } /// Wraps a `rustls` based async TLS stream in order to implement [`ActixStream`]. diff --git a/actix-tls/src/accept/rustls_0_21.rs b/actix-tls/src/accept/rustls_0_21.rs new file mode 100644 index 00000000..27db8cdd --- /dev/null +++ b/actix-tls/src/accept/rustls_0_21.rs @@ -0,0 +1,198 @@ +//! `rustls` v0.21 based TLS connection acceptor service. +//! +//! See [`Acceptor`] for main service factory docs. + +use std::{ + convert::Infallible, + future::Future, + io::{self, IoSlice}, + pin::Pin, + sync::Arc, + task::{Context, Poll}, + time::Duration, +}; + +use actix_rt::{ + net::{ActixStream, Ready}, + time::{sleep, Sleep}, +}; +use actix_service::{Service, ServiceFactory}; +use actix_utils::{ + counter::{Counter, CounterGuard}, + future::{ready, Ready as FutReady}, +}; +use pin_project_lite::pin_project; +use tokio::io::{AsyncRead, AsyncWrite, ReadBuf}; +use tokio_rustls::{rustls::ServerConfig, Accept, TlsAcceptor}; +use tokio_rustls_024 as tokio_rustls; + +use super::{TlsError, DEFAULT_TLS_HANDSHAKE_TIMEOUT, MAX_CONN_COUNTER}; + +pub mod reexports { + //! Re-exports from `rustls` that are useful for acceptors. + + pub use tokio_rustls_024::rustls::ServerConfig; +} + +/// Wraps a `rustls` based async TLS stream in order to implement [`ActixStream`]. +pub struct TlsStream(tokio_rustls::server::TlsStream); + +impl_more::impl_from!( in tokio_rustls::server::TlsStream => TlsStream); +impl_more::impl_deref_and_mut!( in TlsStream => tokio_rustls::server::TlsStream); + +impl AsyncRead for TlsStream { + fn poll_read( + self: Pin<&mut Self>, + cx: &mut Context<'_>, + buf: &mut ReadBuf<'_>, + ) -> Poll> { + Pin::new(&mut **self.get_mut()).poll_read(cx, buf) + } +} + +impl AsyncWrite for TlsStream { + fn poll_write( + self: Pin<&mut Self>, + cx: &mut Context<'_>, + buf: &[u8], + ) -> Poll> { + Pin::new(&mut **self.get_mut()).poll_write(cx, buf) + } + + fn poll_flush(self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll> { + Pin::new(&mut **self.get_mut()).poll_flush(cx) + } + + fn poll_shutdown(self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll> { + Pin::new(&mut **self.get_mut()).poll_shutdown(cx) + } + + fn poll_write_vectored( + self: Pin<&mut Self>, + cx: &mut Context<'_>, + bufs: &[IoSlice<'_>], + ) -> Poll> { + Pin::new(&mut **self.get_mut()).poll_write_vectored(cx, bufs) + } + + fn is_write_vectored(&self) -> bool { + (**self).is_write_vectored() + } +} + +impl ActixStream for TlsStream { + fn poll_read_ready(&self, cx: &mut Context<'_>) -> Poll> { + IO::poll_read_ready((**self).get_ref().0, cx) + } + + fn poll_write_ready(&self, cx: &mut Context<'_>) -> Poll> { + IO::poll_write_ready((**self).get_ref().0, cx) + } +} + +/// Accept TLS connections via the `rustls` crate. +pub struct Acceptor { + config: Arc, + handshake_timeout: Duration, +} + +impl Acceptor { + /// Constructs `rustls` based acceptor service factory. + pub fn new(config: ServerConfig) -> Self { + Acceptor { + config: Arc::new(config), + handshake_timeout: DEFAULT_TLS_HANDSHAKE_TIMEOUT, + } + } + + /// Limit the amount of time that the acceptor will wait for a TLS handshake to complete. + /// + /// Default timeout is 3 seconds. + pub fn set_handshake_timeout(&mut self, handshake_timeout: Duration) -> &mut Self { + self.handshake_timeout = handshake_timeout; + self + } +} + +impl Clone for Acceptor { + fn clone(&self) -> Self { + Self { + config: self.config.clone(), + handshake_timeout: self.handshake_timeout, + } + } +} + +impl ServiceFactory for Acceptor { + type Response = TlsStream; + type Error = TlsError; + type Config = (); + type Service = AcceptorService; + type InitError = (); + type Future = FutReady>; + + fn new_service(&self, _: ()) -> Self::Future { + let res = MAX_CONN_COUNTER.with(|conns| { + Ok(AcceptorService { + acceptor: self.config.clone().into(), + conns: conns.clone(), + handshake_timeout: self.handshake_timeout, + }) + }); + + ready(res) + } +} + +/// Rustls based acceptor service. +pub struct AcceptorService { + acceptor: TlsAcceptor, + conns: Counter, + handshake_timeout: Duration, +} + +impl Service for AcceptorService { + type Response = TlsStream; + type Error = TlsError; + type Future = AcceptFut; + + fn poll_ready(&self, cx: &mut Context<'_>) -> Poll> { + if self.conns.available(cx) { + Poll::Ready(Ok(())) + } else { + Poll::Pending + } + } + + fn call(&self, req: IO) -> Self::Future { + AcceptFut { + fut: self.acceptor.accept(req), + timeout: sleep(self.handshake_timeout), + _guard: self.conns.get(), + } + } +} + +pin_project! { + /// Accept future for Rustls service. + #[doc(hidden)] + pub struct AcceptFut { + fut: Accept, + #[pin] + timeout: Sleep, + _guard: CounterGuard, + } +} + +impl Future for AcceptFut { + type Output = Result, TlsError>; + + fn poll(self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll { + let mut this = self.project(); + match Pin::new(&mut this.fut).poll(cx) { + Poll::Ready(Ok(stream)) => Poll::Ready(Ok(TlsStream(stream))), + Poll::Ready(Err(err)) => Poll::Ready(Err(TlsError::Tls(err))), + Poll::Pending => this.timeout.poll(cx).map(|_| Err(TlsError::Timeout)), + } + } +} diff --git a/actix-tls/src/connect/mod.rs b/actix-tls/src/connect/mod.rs index dae1f7b1..79cbb295 100644 --- a/actix-tls/src/connect/mod.rs +++ b/actix-tls/src/connect/mod.rs @@ -27,8 +27,15 @@ mod uri; #[cfg(feature = "openssl")] pub mod openssl; -#[cfg(feature = "rustls")] -pub mod rustls; +#[cfg(feature = "rustls-0_20")] +pub mod rustls_0_20; + +#[doc(hidden)] +#[cfg(feature = "rustls-0_20")] +pub use rustls_0_20 as rustls; + +#[cfg(feature = "rustls-0_21")] +pub mod rustls_0_21; #[cfg(feature = "native-tls")] pub mod native_tls; diff --git a/actix-tls/src/connect/rustls.rs b/actix-tls/src/connect/rustls_0_20.rs similarity index 78% rename from actix-tls/src/connect/rustls.rs rename to actix-tls/src/connect/rustls_0_20.rs index 5706047d..4547854e 100644 --- a/actix-tls/src/connect/rustls.rs +++ b/actix-tls/src/connect/rustls_0_20.rs @@ -20,22 +20,21 @@ use tokio_rustls::{ rustls::{client::ServerName, ClientConfig, OwnedTrustAnchor, RootCertStore}, Connect as RustlsConnect, TlsConnector as RustlsTlsConnector, }; -use tracing::trace; -use webpki_roots::TLS_SERVER_ROOTS; +use tokio_rustls_023 as tokio_rustls; use crate::connect::{Connection, Host}; pub mod reexports { //! Re-exports from `rustls` and `webpki_roots` that are useful for connectors. - pub use tokio_rustls::{client::TlsStream as AsyncTlsStream, rustls::ClientConfig}; - pub use webpki_roots::TLS_SERVER_ROOTS; + pub use tokio_rustls_023::{client::TlsStream as AsyncTlsStream, rustls::ClientConfig}; + pub use webpki_roots_022::TLS_SERVER_ROOTS; } /// Returns standard root certificates from `webpki-roots` crate as a rustls certificate store. pub fn webpki_roots_cert_store() -> RootCertStore { let mut root_certs = RootCertStore::empty(); - for cert in TLS_SERVER_ROOTS.0 { + for cert in webpki_roots_022::TLS_SERVER_ROOTS.0 { let cert = OwnedTrustAnchor::from_subject_spki_name_constraints( cert.subject, cert.spki, @@ -102,12 +101,13 @@ where actix_service::always_ready!(); fn call(&self, connection: Connection) -> Self::Future { - trace!("TLS handshake start for: {:?}", connection.hostname()); + tracing::trace!("TLS handshake start for: {:?}", connection.hostname()); let (stream, connection) = connection.replace_io(()); match ServerName::try_from(connection.hostname()) { Ok(host) => ConnectFut::Future { - connect: RustlsTlsConnector::from(self.connector.clone()).connect(host, stream), + connect: RustlsTlsConnector::from(Arc::clone(&self.connector)) + .connect(host, stream), connection: Some(connection), }, Err(_) => ConnectFut::InvalidDns, @@ -117,6 +117,7 @@ where /// Connect future for Rustls service. #[doc(hidden)] +#[allow(clippy::large_enum_variant)] pub enum ConnectFut { /// See issue InvalidDns, @@ -131,17 +132,23 @@ where R: Host, IO: ActixStream, { - type Output = Result>, io::Error>; + type Output = io::Result>>; fn poll(self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll { match self.get_mut() { - Self::InvalidDns => Poll::Ready(Err( - io::Error::new(io::ErrorKind::Other, "rustls currently only handles hostname-based connections. See https://github.com/briansmith/webpki/issues/54") - )), - Self::Future { connect, connection } => { + Self::InvalidDns => Poll::Ready(Err(io::Error::new( + io::ErrorKind::Other, + "Rustls v0.20 can only handle hostname-based connections. Enable the `rustls-0_21` \ + feature and use the Rustls v0.21 utilities to gain this feature.", + ))), + + Self::Future { + connect, + connection, + } => { let stream = ready!(Pin::new(connect).poll(cx))?; let connection = connection.take().unwrap(); - trace!("TLS handshake success: {:?}", connection.hostname()); + tracing::trace!("TLS handshake success: {:?}", connection.hostname()); Poll::Ready(Ok(connection.replace_io(stream).1)) } } diff --git a/actix-tls/src/connect/rustls_0_21.rs b/actix-tls/src/connect/rustls_0_21.rs new file mode 100644 index 00000000..cc0d6de3 --- /dev/null +++ b/actix-tls/src/connect/rustls_0_21.rs @@ -0,0 +1,154 @@ +//! Rustls based connector service. +//! +//! See [`TlsConnector`] for main connector service factory docs. + +use std::{ + convert::TryFrom, + future::Future, + io, + pin::Pin, + sync::Arc, + task::{Context, Poll}, +}; + +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, + rustls::{client::ServerName, ClientConfig, OwnedTrustAnchor, RootCertStore}, + Connect as RustlsConnect, TlsConnector as RustlsTlsConnector, +}; +use tokio_rustls_024 as tokio_rustls; + +use crate::connect::{Connection, Host}; + +pub mod reexports { + //! Re-exports from `rustls` and `webpki_roots` that are useful for connectors. + + pub use tokio_rustls_024::{client::TlsStream as AsyncTlsStream, rustls::ClientConfig}; + pub use webpki_roots_025::TLS_SERVER_ROOTS; +} + +/// Returns standard root certificates from `webpki-roots` crate as a rustls certificate store. +pub fn webpki_roots_cert_store() -> RootCertStore { + let mut root_certs = RootCertStore::empty(); + for cert in webpki_roots_025::TLS_SERVER_ROOTS { + let cert = OwnedTrustAnchor::from_subject_spki_name_constraints( + cert.subject, + cert.spki, + cert.name_constraints, + ); + let certs = vec![cert].into_iter(); + root_certs.add_trust_anchors(certs); + } + root_certs +} + +/// Connector service factory using `rustls`. +#[derive(Clone)] +pub struct TlsConnector { + connector: Arc, +} + +impl TlsConnector { + /// Constructs new connector service factory from a `rustls` client configuration. + pub fn new(connector: Arc) -> Self { + TlsConnector { connector } + } + + /// Constructs new connector service from a `rustls` client configuration. + pub fn service(connector: Arc) -> TlsConnectorService { + TlsConnectorService { connector } + } +} + +impl ServiceFactory> for TlsConnector +where + R: Host, + IO: ActixStream + 'static, +{ + type Response = Connection>; + type Error = io::Error; + type Config = (); + type Service = TlsConnectorService; + type InitError = (); + type Future = Ready>; + + fn new_service(&self, _: ()) -> Self::Future { + ok(TlsConnectorService { + connector: self.connector.clone(), + }) + } +} + +/// Connector service using `rustls`. +#[derive(Clone)] +pub struct TlsConnectorService { + connector: Arc, +} + +impl Service> for TlsConnectorService +where + R: Host, + IO: ActixStream, +{ + type Response = Connection>; + type Error = io::Error; + type Future = ConnectFut; + + actix_service::always_ready!(); + + fn call(&self, connection: Connection) -> Self::Future { + tracing::trace!("TLS handshake start for: {:?}", connection.hostname()); + let (stream, connection) = connection.replace_io(()); + + match ServerName::try_from(connection.hostname()) { + Ok(host) => ConnectFut::Future { + connect: RustlsTlsConnector::from(Arc::clone(&self.connector)) + .connect(host, stream), + connection: Some(connection), + }, + Err(_) => ConnectFut::InvalidServerName, + } + } +} + +/// Connect future for Rustls service. +#[doc(hidden)] +#[allow(clippy::large_enum_variant)] +pub enum ConnectFut { + InvalidServerName, + Future { + connect: RustlsConnect, + connection: Option>, + }, +} + +impl Future for ConnectFut +where + R: Host, + IO: ActixStream, +{ + type Output = io::Result>>; + + fn poll(self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll { + match self.get_mut() { + Self::InvalidServerName => Poll::Ready(Err(io::Error::new( + io::ErrorKind::InvalidInput, + "connection parameters specified invalid server name", + ))), + + Self::Future { + connect, + connection, + } => { + let stream = ready!(Pin::new(connect).poll(cx))?; + let connection = connection.take().unwrap(); + tracing::trace!("TLS handshake success: {:?}", connection.hostname()); + Poll::Ready(Ok(connection.replace_io(stream).1)) + } + } + } +} diff --git a/actix-tls/tests/accept-openssl.rs b/actix-tls/tests/accept-openssl.rs index ff707f65..ca57e17d 100644 --- a/actix-tls/tests/accept-openssl.rs +++ b/actix-tls/tests/accept-openssl.rs @@ -3,7 +3,7 @@ #![cfg(all( feature = "accept", feature = "connect", - feature = "rustls", + feature = "rustls-0_21", feature = "openssl" ))] @@ -15,6 +15,7 @@ use actix_service::ServiceFactoryExt as _; use actix_tls::accept::openssl::{Acceptor, TlsStream}; use actix_utils::future::ok; use tokio_rustls::rustls::{Certificate, ClientConfig, RootCertStore, ServerName}; +use tokio_rustls_024 as tokio_rustls; fn new_cert_and_key() -> (String, String) { let cert = @@ -49,7 +50,7 @@ fn openssl_acceptor(cert: String, key: String) -> tls_openssl::ssl::SslAcceptor mod danger { use std::time::SystemTime; - use tokio_rustls::rustls::{ + use tokio_rustls_024::rustls::{ self, client::{ServerCertVerified, ServerCertVerifier}, }; diff --git a/actix-tls/tests/accept-rustls.rs b/actix-tls/tests/accept-rustls.rs index 7955b36f..40d38b7d 100644 --- a/actix-tls/tests/accept-rustls.rs +++ b/actix-tls/tests/accept-rustls.rs @@ -3,7 +3,7 @@ #![cfg(all( feature = "accept", feature = "connect", - feature = "rustls", + feature = "rustls-0_21", feature = "openssl" ))] @@ -15,13 +15,14 @@ use actix_rt::net::TcpStream; use actix_server::TestServer; use actix_service::ServiceFactoryExt as _; use actix_tls::{ - accept::rustls::{Acceptor, TlsStream}, + accept::rustls_0_21::{Acceptor, TlsStream}, connect::openssl::reexports::SslConnector, }; use actix_utils::future::ok; use rustls_pemfile::{certs, pkcs8_private_keys}; use tls_openssl::ssl::SslVerifyMode; use tokio_rustls::rustls::{self, Certificate, PrivateKey, ServerConfig}; +use tokio_rustls_024 as tokio_rustls; fn new_cert_and_key() -> (String, String) { let cert = diff --git a/actix-tls/tests/test_connect.rs b/actix-tls/tests/test_connect.rs index 5e73fd2d..1c969fec 100644 --- a/actix-tls/tests/test_connect.rs +++ b/actix-tls/tests/test_connect.rs @@ -30,7 +30,7 @@ async fn test_string() { assert_eq!(con.peer_addr().unwrap(), srv.addr()); } -#[cfg(feature = "rustls")] +#[cfg(feature = "rustls-0_21")] #[actix_rt::test] async fn test_rustls_string() { let srv = TestServer::start(|| { @@ -114,7 +114,7 @@ async fn test_openssl_uri() { assert_eq!(con.peer_addr().unwrap(), srv.addr()); } -#[cfg(all(feature = "rustls", feature = "uri"))] +#[cfg(all(feature = "rustls-0_21", feature = "uri"))] #[actix_rt::test] async fn test_rustls_uri() { use std::convert::TryFrom; diff --git a/actix-utils/src/counter.rs b/actix-utils/src/counter.rs index a61ef90e..4259fd6d 100644 --- a/actix-utils/src/counter.rs +++ b/actix-utils/src/counter.rs @@ -29,7 +29,7 @@ impl Counter { /// Returns true if counter is below capacity. Otherwise, register to wake task when it is. #[inline] - pub fn available(&self, cx: &mut task::Context<'_>) -> bool { + pub fn available(&self, cx: &task::Context<'_>) -> bool { self.0.available(cx) } @@ -59,7 +59,7 @@ impl CounterInner { } } - fn available(&self, cx: &mut task::Context<'_>) -> bool { + fn available(&self, cx: &task::Context<'_>) -> bool { if self.count.get() < self.capacity { true } else { diff --git a/actix-utils/src/future/poll_fn.rs b/actix-utils/src/future/poll_fn.rs index 15d93dbd..0c798f46 100644 --- a/actix-utils/src/future/poll_fn.rs +++ b/actix-utils/src/future/poll_fn.rs @@ -62,6 +62,7 @@ where fn poll(self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll { // SAFETY: we are not moving out of the pinned field // see https://github.com/rust-lang/rust/pull/102737 + #[allow(clippy::needless_borrow)] (unsafe { &mut self.get_unchecked_mut().f })(cx) } } From 3b5716c23e70d5427032244cb0ce4aaf543b72ac Mon Sep 17 00:00:00 2001 From: Alik Aslanyan Date: Sat, 26 Aug 2023 19:04:08 +0400 Subject: [PATCH 078/410] Add getter methods for actix_rt::Runtime and tokio::runtime::Runtime (#484) Co-authored-by: Alik Aslanyan Co-authored-by: Rob Ede --- actix-rt/CHANGES.md | 2 ++ actix-rt/src/runtime.rs | 56 +++++++++++++++++++++++++++++++++++++++++ actix-rt/src/system.rs | 35 ++++++++++++++++++++++++++ 3 files changed, 93 insertions(+) diff --git a/actix-rt/CHANGES.md b/actix-rt/CHANGES.md index 0cedbaa6..ccd8a23e 100644 --- a/actix-rt/CHANGES.md +++ b/actix-rt/CHANGES.md @@ -2,6 +2,8 @@ ## Unreleased - 2023-xx-xx +- Add `actix_rt::System::runtime()` method to retrieve the underlying `actix_rt::Runtime` runtime. +- Add `actix_rt::Runtime::tokio_runtime()` method to retrieve the underlying Tokio runtime. - Minimum supported Rust version (MSRV) is now 1.65. ## 2.8.0 - 2022-12-21 diff --git a/actix-rt/src/runtime.rs b/actix-rt/src/runtime.rs index 557dfcfe..55e29a77 100644 --- a/actix-rt/src/runtime.rs +++ b/actix-rt/src/runtime.rs @@ -61,6 +61,62 @@ impl Runtime { self.local.spawn_local(future) } + /// Retrieves a reference to the underlying Tokio runtime associated with this instance. + /// + /// The Tokio runtime is responsible for executing asynchronous tasks and managing + /// the event loop for an asynchronous Rust program. This method allows accessing + /// the runtime to interact with its features directly. + /// + /// In a typical use case, you might need to share the same runtime between different + /// modules of your project. For example, a module might require a `tokio::runtime::Handle` + /// to spawn tasks on the same runtime, or the runtime itself to configure more complex + /// behaviours. + /// + /// # Example + /// + /// ``` + /// use actix_rt::Runtime; + /// + /// mod module_a { + /// pub fn do_something(handle: tokio::runtime::Handle) { + /// handle.spawn(async { + /// // Some asynchronous task here + /// }); + /// } + /// } + /// + /// mod module_b { + /// pub fn do_something_else(rt: &tokio::runtime::Runtime) { + /// rt.spawn(async { + /// // Another asynchronous task here + /// }); + /// } + /// } + /// + /// let actix_runtime = actix_rt::Runtime::new().unwrap(); + /// let tokio_runtime = actix_runtime.tokio_runtime(); + /// + /// let handle = tokio_runtime.handle().clone(); + /// + /// module_a::do_something(handle); + /// module_b::do_something_else(tokio_runtime); + /// ``` + /// + /// # Returns + /// + /// An immutable reference to the `tokio::runtime::Runtime` instance associated with this + /// `Runtime` instance. + /// + /// # Note + /// + /// While this method provides an immutable reference to the Tokio runtime, which is safe to share across threads, + /// be aware that spawning blocking tasks on the Tokio runtime could potentially impact the execution + /// of the Actix runtime. This is because Tokio is responsible for driving the Actix system, + /// and blocking tasks could delay or deadlock other tasks in run loop. + pub fn tokio_runtime(&self) -> &tokio::runtime::Runtime { + &self.rt + } + /// Runs the provided future, blocking the current thread until the future completes. /// /// This function can be used to synchronously block the current thread until the provided diff --git a/actix-rt/src/system.rs b/actix-rt/src/system.rs index 7423a01e..8ff02c83 100644 --- a/actix-rt/src/system.rs +++ b/actix-rt/src/system.rs @@ -203,6 +203,41 @@ impl SystemRunner { .map_err(|err| io::Error::new(io::ErrorKind::Other, err)) } + /// Retrieves a reference to the underlying Actix runtime associated with this SystemRunner instance. + /// + /// The Actix runtime is responsible for managing the event loop for an Actix system and executing asynchronous tasks. + /// This method provides access to the runtime, allowing direct interaction with its features. + /// + /// In a typical use case, you might need to share the same runtime between different + /// parts of your project. For example, some components might require a [`actix_rt::Runtime`] to spawn tasks on + /// the same runtime. + /// + /// # Example + /// + /// ``` + /// let system_runner = actix_rt::System::new(); + /// let actix_runtime = system_runner.runtime(); + /// + /// // Use the runtime to spawn an async task or perform other operations + /// ``` + /// + /// Read more in the documentation for [`actix_rt::Runtime`] + /// + /// # Returns + /// + /// An immutable reference to the [`actix_rt::Runtime`] instance associated with this + /// [`actix_rt::SystemRunner`] instance. + /// + /// # Note + /// + /// While this method provides an immutable reference to the Actix runtime, which is safe to share across threads, + /// be aware that spawning blocking tasks on the Actix runtime could potentially impact system performance. + /// This is because the Actix runtime is responsible for driving the system, + /// and blocking tasks could delay other tasks in the run loop. + pub fn runtime(&self) -> &crate::runtime::Runtime { + &self.rt + } + /// Runs the provided future, blocking the current thread until the future completes. #[track_caller] #[inline] From 150d2c05d3a07b382d88b59e6fd17ec55a34cda3 Mon Sep 17 00:00:00 2001 From: Rob Ede Date: Sat, 26 Aug 2023 18:02:48 +0100 Subject: [PATCH 079/410] prepare actix-rt release 2.9.0 --- actix-rt/CHANGES.md | 2 ++ actix-rt/Cargo.toml | 2 +- actix-rt/README.md | 4 ++-- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/actix-rt/CHANGES.md b/actix-rt/CHANGES.md index ccd8a23e..5c78df97 100644 --- a/actix-rt/CHANGES.md +++ b/actix-rt/CHANGES.md @@ -2,6 +2,8 @@ ## Unreleased - 2023-xx-xx +## 2.9.0 + - Add `actix_rt::System::runtime()` method to retrieve the underlying `actix_rt::Runtime` runtime. - Add `actix_rt::Runtime::tokio_runtime()` method to retrieve the underlying Tokio runtime. - Minimum supported Rust version (MSRV) is now 1.65. diff --git a/actix-rt/Cargo.toml b/actix-rt/Cargo.toml index 1256eefd..dd460033 100644 --- a/actix-rt/Cargo.toml +++ b/actix-rt/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "actix-rt" -version = "2.8.0" +version = "2.9.0" authors = [ "Nikolay Kim ", "Rob Ede ", diff --git a/actix-rt/README.md b/actix-rt/README.md index d4e0da89..ee206b03 100644 --- a/actix-rt/README.md +++ b/actix-rt/README.md @@ -3,11 +3,11 @@ > Tokio-based single-threaded async runtime for the Actix ecosystem. [![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.8.0)](https://docs.rs/actix-rt/2.8.0) +[![Documentation](https://docs.rs/actix-rt/badge.svg?version=2.9.0)](https://docs.rs/actix-rt/2.9.0) [![Version](https://img.shields.io/badge/rustc-1.46+-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.8.0/status.svg)](https://deps.rs/crate/actix-rt/2.8.0) +[![dependency status](https://deps.rs/crate/actix-rt/2.9.0/status.svg)](https://deps.rs/crate/actix-rt/2.9.0) ![Download](https://img.shields.io/crates/d/actix-rt.svg) [![Chat on Discord](https://img.shields.io/discord/771444961383153695?label=chat&logo=discord)](https://discord.gg/WghFtEH6Hb) From 910c181251251da38948b9297464aab84edcd719 Mon Sep 17 00:00:00 2001 From: Rob Ede Date: Sat, 26 Aug 2023 18:04:22 +0100 Subject: [PATCH 080/410] prepare actix-server release 2.3.0 --- actix-server/CHANGES.md | 2 ++ actix-server/Cargo.toml | 2 +- actix-server/README.md | 4 ++-- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/actix-server/CHANGES.md b/actix-server/CHANGES.md index ffe3f2a1..9150031e 100644 --- a/actix-server/CHANGES.md +++ b/actix-server/CHANGES.md @@ -2,6 +2,8 @@ ## Unreleased +## 2.3.0 + - Add support for MultiPath TCP (MPTCP) with `MpTcp` enum and `ServerBuilder::mptcp()` method. - Minimum supported Rust version (MSRV) is now 1.65. diff --git a/actix-server/Cargo.toml b/actix-server/Cargo.toml index 53f54f79..8f0e8982 100755 --- a/actix-server/Cargo.toml +++ b/actix-server/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "actix-server" -version = "2.2.0" +version = "2.3.0" authors = [ "Nikolay Kim ", "Rob Ede ", diff --git a/actix-server/README.md b/actix-server/README.md index 9b500765..68f2a1ec 100644 --- a/actix-server/README.md +++ b/actix-server/README.md @@ -3,10 +3,10 @@ > General purpose TCP server built for the Actix ecosystem. [![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.2.0)](https://docs.rs/actix-server/2.2.0) +[![Documentation](https://docs.rs/actix-server/badge.svg?version=2.3.0)](https://docs.rs/actix-server/2.3.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) ![License](https://img.shields.io/crates/l/actix-server.svg) -[![Dependency Status](https://deps.rs/crate/actix-server/2.2.0/status.svg)](https://deps.rs/crate/actix-server/2.2.0) +[![Dependency Status](https://deps.rs/crate/actix-server/2.3.0/status.svg)](https://deps.rs/crate/actix-server/2.3.0) ![Download](https://img.shields.io/crates/d/actix-server.svg) [![Chat on Discord](https://img.shields.io/discord/771444961383153695?label=chat&logo=discord)](https://discord.gg/NWpN5mmg3x) From 5029beb8667b186da0dcca4a44a9026b6e7c1e74 Mon Sep 17 00:00:00 2001 From: Rob Ede Date: Sat, 26 Aug 2023 18:05:39 +0100 Subject: [PATCH 081/410] prepare actix-tls release 3.1.0 --- actix-tls/CHANGES.md | 2 ++ actix-tls/Cargo.toml | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/actix-tls/CHANGES.md b/actix-tls/CHANGES.md index 556d498b..21739e89 100644 --- a/actix-tls/CHANGES.md +++ b/actix-tls/CHANGES.md @@ -2,6 +2,8 @@ ## Unreleased +## 3.1.0 + - Support Rustls v0.21. - Added `{accept, connect}::rustls_0_21` modules. - Added `{accept, connect}::rustls_0_20` alias for `{accept, connect}::rustls` modules. diff --git a/actix-tls/Cargo.toml b/actix-tls/Cargo.toml index 0c5a148e..f1c40332 100755 --- a/actix-tls/Cargo.toml +++ b/actix-tls/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "actix-tls" -version = "3.0.4" +version = "3.1.0" authors = [ "Nikolay Kim ", "Rob Ede ", From 45a7dcba90cf97dbd90f6a6ed1b6e7d35e4dd2e5 Mon Sep 17 00:00:00 2001 From: Rob Ede Date: Tue, 29 Aug 2023 18:40:55 +0100 Subject: [PATCH 082/410] chore(tls): fix min rustls version --- actix-tls/Cargo.toml | 7 ++++++- bytestring/Cargo.toml | 1 - 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/actix-tls/Cargo.toml b/actix-tls/Cargo.toml index f1c40332..82799450 100755 --- a/actix-tls/Cargo.toml +++ b/actix-tls/Cargo.toml @@ -17,6 +17,11 @@ rust-version.workspace = true all-features = true rustdoc-args = ["--cfg", "docsrs"] +[package.metadata.cargo-machete] +ignored = [ + "rustls_021", # specified to force version with add_trust_anchors method +] + [features] default = ["accept", "connect"] @@ -68,6 +73,7 @@ tokio-rustls-023 = { package = "tokio-rustls", version = "0.23", optional = true webpki-roots-022 = { package = "webpki-roots", version = "0.22", optional = true } # rustls v0.21 +rustls-021 = { package = "rustls", version = "0.21.6" } tokio-rustls-024 = { package = "tokio-rustls", version = "0.24", optional = true } webpki-roots-025 = { package = "webpki-roots", version = "0.25", optional = true } @@ -81,7 +87,6 @@ actix-server = "2" bytes = "1" env_logger = "0.10" futures-util = { version = "0.3.17", default-features = false, features = ["sink"] } -log = "0.4" rcgen = "0.11" rustls-pemfile = "1" tokio-rustls-024 = { package = "tokio-rustls", version = "0.24", features = ["dangerous_configuration"] } diff --git a/bytestring/Cargo.toml b/bytestring/Cargo.toml index ab0e43c6..f3efdbab 100644 --- a/bytestring/Cargo.toml +++ b/bytestring/Cargo.toml @@ -22,4 +22,3 @@ serde = { version = "1.0", optional = true } ahash = { version = "0.8", default-features = false } serde_json = "1.0" static_assertions = "1.1" -rustversion = "1" From 7e043048a085dcd2ce36d65823a02ef44bf15a6e Mon Sep 17 00:00:00 2001 From: Rob Ede Date: Tue, 29 Aug 2023 18:41:48 +0100 Subject: [PATCH 083/410] chore(actix-tls): prepare release 3.1.1 --- actix-tls/CHANGES.md | 4 ++++ actix-tls/Cargo.toml | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/actix-tls/CHANGES.md b/actix-tls/CHANGES.md index 21739e89..317284dc 100644 --- a/actix-tls/CHANGES.md +++ b/actix-tls/CHANGES.md @@ -2,6 +2,10 @@ ## Unreleased +## 3.1.1 + +- Fix minimum `rustls` v0.21 version requirement. + ## 3.1.0 - Support Rustls v0.21. diff --git a/actix-tls/Cargo.toml b/actix-tls/Cargo.toml index 82799450..a228ab30 100755 --- a/actix-tls/Cargo.toml +++ b/actix-tls/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "actix-tls" -version = "3.1.0" +version = "3.1.1" authors = [ "Nikolay Kim ", "Rob Ede ", From 14272a1762680aec65b59ac084819e4bd0d4e4a6 Mon Sep 17 00:00:00 2001 From: Rob Ede Date: Tue, 29 Aug 2023 18:45:11 +0100 Subject: [PATCH 084/410] chore: force secure rustls-webpki --- actix-tls/CHANGES.md | 2 +- actix-tls/Cargo.toml | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/actix-tls/CHANGES.md b/actix-tls/CHANGES.md index 317284dc..295d150b 100644 --- a/actix-tls/CHANGES.md +++ b/actix-tls/CHANGES.md @@ -4,7 +4,7 @@ ## 3.1.1 -- Fix minimum `rustls` v0.21 version requirement. +- Fix `rustls` v0.21 version requirement. ## 3.1.0 diff --git a/actix-tls/Cargo.toml b/actix-tls/Cargo.toml index a228ab30..e023c984 100755 --- a/actix-tls/Cargo.toml +++ b/actix-tls/Cargo.toml @@ -20,6 +20,7 @@ rustdoc-args = ["--cfg", "docsrs"] [package.metadata.cargo-machete] ignored = [ "rustls_021", # specified to force version with add_trust_anchors method + "rustls_webpki_0101", # specified to force secure version ] [features] @@ -65,7 +66,7 @@ tracing = { version = "0.1.30", default-features = false, features = ["log"] } http = { version = "0.2.3", optional = true } # openssl -tls-openssl = { package = "openssl", version = "0.10.48", optional = true } +tls-openssl = { package = "openssl", version = "0.10.55", optional = true } tokio-openssl = { version = "0.6", optional = true } # rustls v0.20 @@ -74,6 +75,7 @@ webpki-roots-022 = { package = "webpki-roots", version = "0.22", optional = true # rustls v0.21 rustls-021 = { package = "rustls", version = "0.21.6" } +rustls-webpki-0101 = { package = "rustls-webpki", version = "0.101.4" } tokio-rustls-024 = { package = "tokio-rustls", version = "0.24", optional = true } webpki-roots-025 = { package = "webpki-roots", version = "0.25", optional = true } From bfeb4cd9e79c09ecece3c595f889f35ebcba586a Mon Sep 17 00:00:00 2001 From: Paolo Barbolini Date: Sun, 17 Sep 2023 13:45:55 +0200 Subject: [PATCH 085/410] local-channel: drop futures-util by using future::poll_fn from std (#490) --- local-channel/Cargo.toml | 2 +- local-channel/src/mpsc.rs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/local-channel/Cargo.toml b/local-channel/Cargo.toml index 9e0f21b4..fcc7ae96 100644 --- a/local-channel/Cargo.toml +++ b/local-channel/Cargo.toml @@ -15,8 +15,8 @@ rust-version.workspace = true [dependencies] futures-core = "0.3.17" futures-sink = "0.3.17" -futures-util = { version = "0.3.17", default-features = false } local-waker = "0.1" [dev-dependencies] +futures-util = { version = "0.3.17", default-features = false } tokio = { version = "1.23.1", features = ["rt", "macros"] } diff --git a/local-channel/src/mpsc.rs b/local-channel/src/mpsc.rs index c75d03bb..7fec5611 100644 --- a/local-channel/src/mpsc.rs +++ b/local-channel/src/mpsc.rs @@ -4,6 +4,7 @@ use alloc::{collections::VecDeque, rc::Rc}; use core::{ cell::RefCell, fmt, + future::poll_fn, pin::Pin, task::{Context, Poll}, }; @@ -11,7 +12,6 @@ use std::error::Error; use futures_core::stream::Stream; use futures_sink::Sink; -use futures_util::future::poll_fn; use local_waker::LocalWaker; /// Creates a unbounded in-memory channel with buffered storage. From 9f59093adcde0083b3faa5ad400e6cc302e1aca6 Mon Sep 17 00:00:00 2001 From: Rob Ede Date: Sun, 17 Sep 2023 19:32:01 +0100 Subject: [PATCH 086/410] chore(local-channel): prepare release 0.1.4 --- local-channel/CHANGES.md | 12 +++++++----- local-channel/Cargo.toml | 6 +++--- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/local-channel/CHANGES.md b/local-channel/CHANGES.md index 957adfd9..9e7a01e4 100644 --- a/local-channel/CHANGES.md +++ b/local-channel/CHANGES.md @@ -1,17 +1,19 @@ # Changes -## Unreleased - 2023-xx-xx +## Unreleased + +## 0.1.4 - Minimum supported Rust version (MSRV) is now 1.65. -## 0.1.3 - 2022-05-03 +## 0.1.3 - Minimum supported Rust version (MSRV) is now 1.49. -## 0.1.2 - 2021-04-01 +## 0.1.2 - No significant changes from `0.1.1`. -## 0.1.1 - 2021-03-29 +## 0.1.1 -- Move local mpsc channel to it's own crate. +- Move local MPSC channel to it's own crate. diff --git a/local-channel/Cargo.toml b/local-channel/Cargo.toml index fcc7ae96..45ee0179 100644 --- a/local-channel/Cargo.toml +++ b/local-channel/Cargo.toml @@ -1,14 +1,14 @@ [package] name = "local-channel" -version = "0.1.3" +version = "0.1.4" description = "A non-threadsafe multi-producer, single-consumer, futures-aware, FIFO queue" authors = [ "Nikolay Kim ", "Rob Ede ", ] -repository = "https://github.com/actix/actix-net.git" +repository = "https://github.com/actix/actix-net" keywords = ["channel", "local", "futures"] -license = "MIT OR Apache-2.0" +license.workspace = true edition.workspace = true rust-version.workspace = true From c69b8e9ade865ca3956932e90c60b00dd650e653 Mon Sep 17 00:00:00 2001 From: Rob Ede Date: Sun, 17 Sep 2023 20:11:05 +0100 Subject: [PATCH 087/410] ci: move coverage to own workflow --- .github/workflows/ci-post-merge.yml | 22 ----------------- .github/workflows/coverage.yml | 37 +++++++++++++++++++++++++++++ 2 files changed, 37 insertions(+), 22 deletions(-) create mode 100644 .github/workflows/coverage.yml diff --git a/.github/workflows/ci-post-merge.yml b/.github/workflows/ci-post-merge.yml index 30bca39e..a19fa865 100644 --- a/.github/workflows/ci-post-merge.yml +++ b/.github/workflows/ci-post-merge.yml @@ -103,28 +103,6 @@ jobs: cargo install cargo-cache --version 0.6.2 --no-default-features --features ci-autoclean cargo-cache - coverage: - name: coverage - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - - - name: Install Rust (nightly) - uses: actions-rust-lang/setup-rust-toolchain@v1 - with: { toolchain: nightly } - - - name: Install cargo-tarpaulin - uses: taiki-e/install-action@v1 - with: { tool: cargo-tarpaulin } - - - name: Generate coverage file - if: github.ref == 'refs/heads/master' - run: cargo tarpaulin --out Xml --verbose - - name: Upload to Codecov - if: github.ref == 'refs/heads/master' - uses: codecov/codecov-action@v3 - with: { files: cobertura.xml } - minimal-versions: name: minimal versions runs-on: ubuntu-latest diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml new file mode 100644 index 00000000..a516f1c2 --- /dev/null +++ b/.github/workflows/coverage.yml @@ -0,0 +1,37 @@ +name: Coverage + +on: + push: + branches: [master] + +permissions: + contents: read + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +jobs: + coverage: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - name: Install Rust + uses: actions-rust-lang/setup-rust-toolchain@v1.5.0 + with: + components: llvm-tools-preview + + - name: Install cargo-llvm-cov + uses: taiki-e/install-action@v2.18.9 + with: + tool: cargo-llvm-cov + + - name: Generate code coverage + run: cargo llvm-cov --workspace --all-features --codecov --output-path codecov.json + + - name: Upload coverage to Codecov + uses: codecov/codecov-action@v3.1.4 + with: + files: codecov.json + fail_ci_if_error: true From 4a7f2c95af7c22f66f5e6822fd9877232ce036a2 Mon Sep 17 00:00:00 2001 From: Rob Ede Date: Sun, 17 Sep 2023 20:25:58 +0100 Subject: [PATCH 088/410] chore: remove dates from changelogs --- .github/workflows/ci-post-merge.yml | 6 ++- actix-codec/CHANGES.md | 28 +++++----- actix-macros/Cargo.toml | 12 ++++- actix-rt/CHANGES.md | 60 +++++++++++----------- actix-service/CHANGES.md | 80 ++++++++++++++--------------- actix-tracing/CHANGES.md | 4 +- actix-utils/CHANGES.md | 76 +++++++++++++-------------- bytestring/CHANGES.md | 24 ++++----- local-waker/CHANGES.md | 8 +-- 9 files changed, 154 insertions(+), 144 deletions(-) diff --git a/.github/workflows/ci-post-merge.yml b/.github/workflows/ci-post-merge.yml index a19fa865..d9680fc3 100644 --- a/.github/workflows/ci-post-merge.yml +++ b/.github/workflows/ci-post-merge.yml @@ -111,11 +111,13 @@ jobs: - name: Install Rust (nightly) uses: actions-rust-lang/setup-rust-toolchain@v1 - with: { toolchain: nightly } + with: + toolchain: nightly - name: Install cargo-hack & cargo-minimal-versions uses: taiki-e/install-action@v1 - with: { tool: 'cargo-hack,cargo-minimal-versions' } + with: + tool: cargo-hack,cargo-minimal-versions - name: Check With Minimal Versions run: cargo minimal-versions check diff --git a/actix-codec/CHANGES.md b/actix-codec/CHANGES.md index 14dc78c5..ec54e407 100644 --- a/actix-codec/CHANGES.md +++ b/actix-codec/CHANGES.md @@ -1,27 +1,27 @@ # Changes -## Unreleased - 2023-xx-xx +## Unreleased - Minimum supported Rust version (MSRV) is now 1.65. -## 0.5.1 - 2022-03-15 +## 0.5.1 - Logs emitted now use the `tracing` crate with `log` compatibility. [#451] - Minimum supported Rust version (MSRV) is now 1.49. [#451]: https://github.com/actix/actix-net/pull/451 -## 0.5.0 - 2022-02-15 +## 0.5.0 - Updated `tokio-util` dependency to `0.7.0`. [#446] [#446]: https://github.com/actix/actix-net/pull/446 -## 0.4.2 - 2021-12-31 +## 0.4.2 - No significant changes since `0.4.1`. -## 0.4.1 - 2021-11-05 +## 0.4.1 - Added `LinesCodec.` [#338] - `Framed::poll_ready` flushes when the buffer is full. [#409] @@ -29,11 +29,11 @@ [#338]: https://github.com/actix/actix-net/pull/338 [#409]: https://github.com/actix/actix-net/pull/409 -## 0.4.0 - 2021-04-20 +## 0.4.0 - No significant changes since v0.4.0-beta.1. -## 0.4.0-beta.1 - 2020-12-28 +## 0.4.0-beta.1 - Replace `pin-project` with `pin-project-lite`. [#237] - Upgrade `tokio` dependency to `1`. [#237] @@ -42,15 +42,15 @@ [#237]: https://github.com/actix/actix-net/pull/237 -## 0.3.0 - 2020-08-23 +## 0.3.0 - No changes from beta 2. -## 0.3.0-beta.2 - 2020-08-19 +## 0.3.0-beta.2 - Remove unused type parameter from `Framed::replace_codec`. -## 0.3.0-beta.1 - 2020-08-19 +## 0.3.0-beta.1 - Use `.advance()` instead of `.split_to()`. - Upgrade `tokio-util` to `0.3`. @@ -60,7 +60,7 @@ - Add method on `Framed` to get a pinned reference to the underlying I/O. - Add method on `Framed` check emptiness of read buffer. -## 0.2.0 - 2019-12-10 +## 0.2.0 - Use specific futures dependencies. @@ -77,14 +77,14 @@ - Migrated to `std::future`. -## 0.1.2 - 2019-03-27 +## 0.1.2 - Added `Framed::map_io()` method. -## 0.1.1 - 2019-03-06 +## 0.1.1 - Added `FramedParts::with_read_buffer()` method. -## 0.1.0 - 2018-12-09 +## 0.1.0 - Move codec to separate crate. diff --git a/actix-macros/Cargo.toml b/actix-macros/Cargo.toml index 4ec4867d..39f021e7 100644 --- a/actix-macros/Cargo.toml +++ b/actix-macros/Cargo.toml @@ -7,12 +7,17 @@ authors = [ "Rob Ede ", ] description = "Macros for Actix system and runtime" -repository = "https://github.com/actix/actix-net.git" +repository = "https://github.com/actix/actix-net" categories = ["network-programming", "asynchronous"] -license = "MIT OR Apache-2.0" +license.workspace = true edition.workspace = true rust-version.workspace = true +[package.metadata.cargo-machete] +ignored = [ + "proc_macro2", # specified for minimal versions compat +] + [lib] proc-macro = true @@ -20,6 +25,9 @@ proc-macro = true quote = "1" syn = { version = "2", features = ["full"] } +# minimal versions compat +proc-macro2 = "1.0.60" + [dev-dependencies] actix-rt = "2" diff --git a/actix-rt/CHANGES.md b/actix-rt/CHANGES.md index 5c78df97..dc2d0fc3 100644 --- a/actix-rt/CHANGES.md +++ b/actix-rt/CHANGES.md @@ -1,6 +1,6 @@ # Changes -## Unreleased - 2023-xx-xx +## Unreleased ## 2.9.0 @@ -8,7 +8,7 @@ - Add `actix_rt::Runtime::tokio_runtime()` method to retrieve the underlying Tokio runtime. - Minimum supported Rust version (MSRV) is now 1.65. -## 2.8.0 - 2022-12-21 +## 2.8.0 - Add `#[track_caller]` attribute to `spawn` functions and methods. [#454] - Update `tokio-uring` dependency to `0.4`. [#473] @@ -17,32 +17,32 @@ [#454]: https://github.com/actix/actix-net/pull/454 [#473]: https://github.com/actix/actix-net/pull/473 -## 2.7.0 - 2022-03-08 +## 2.7.0 - Update `tokio-uring` dependency to `0.3`. [#448] - Minimum supported Rust version (MSRV) is now 1.49. [#448]: https://github.com/actix/actix-net/pull/448 -## 2.6.0 - 2022-01-12 +## 2.6.0 - Update `tokio-uring` dependency to `0.2`. [#436] [#436]: https://github.com/actix/actix-net/pull/436 -## 2.5.1 - 2021-12-31 +## 2.5.1 - Expose `System::with_tokio_rt` and `Arbiter::with_tokio_rt`. [#430] [#430]: https://github.com/actix/actix-net/pull/430 -## 2.5.0 - 2021-11-22 +## 2.5.0 - Add `System::run_with_code` to allow retrieving the exit code on stop. [#411] [#411]: https://github.com/actix/actix-net/pull/411 -## 2.4.0 - 2021-11-05 +## 2.4.0 - Add `Arbiter::try_current` for situations where thread may or may not have Arbiter context. [#408] - Start io-uring with `System::new` when feature is enabled. [#395] @@ -50,7 +50,7 @@ [#395]: https://github.com/actix/actix-net/pull/395 [#408]: https://github.com/actix/actix-net/pull/408 -## 2.3.0 - 2021-10-11 +## 2.3.0 - The `spawn` method can now resolve with non-unit outputs. [#369] - Add experimental (semver-exempt) `io-uring` feature for enabling async file I/O on linux. [#374] @@ -58,14 +58,14 @@ [#369]: https://github.com/actix/actix-net/pull/369 [#374]: https://github.com/actix/actix-net/pull/374 -## 2.2.0 - 2021-03-29 +## 2.2.0 - **BREAKING** `ActixStream::{poll_read_ready, poll_write_ready}` methods now return `Ready` object in ok variant. [#293] - Breakage is acceptable since `ActixStream` was not intended to be public. [#293]: https://github.com/actix/actix-net/pull/293 -## 2.1.0 - 2021-02-24 +## 2.1.0 - Add `ActixStream` extension trait to include readiness methods. [#276] - Re-export `tokio::net::TcpSocket` in `net` module [#282] @@ -73,7 +73,7 @@ [#276]: https://github.com/actix/actix-net/pull/276 [#282]: https://github.com/actix/actix-net/pull/282 -## 2.0.2 - 2021-02-06 +## 2.0.2 - Add `Arbiter::handle` to get a handle of an owned Arbiter. [#274] - Add `System::try_current` for situations where actix may or may not be running a System. [#275] @@ -81,20 +81,20 @@ [#274]: https://github.com/actix/actix-net/pull/274 [#275]: https://github.com/actix/actix-net/pull/275 -## 2.0.1 - 2021-02-06 +## 2.0.1 - Expose `JoinError` from Tokio. [#271] [#271]: https://github.com/actix/actix-net/pull/271 -## 2.0.0 - 2021-02-02 +## 2.0.0 - Remove all Arbiter-local storage methods. [#262] - Re-export `tokio::pin`. [#262] [#262]: https://github.com/actix/actix-net/pull/262 -## 2.0.0-beta.3 - 2021-01-31 +## 2.0.0-beta.3 - Remove `run_in_tokio`, `attach_to_tokio` and `AsyncSystemRunner`. [#253] - Return `JoinHandle` from `actix_rt::spawn`. [#253] @@ -118,14 +118,14 @@ [#256]: https://github.com/actix/actix-net/pull/256 [#257]: https://github.com/actix/actix-net/pull/257 -## 2.0.0-beta.2 - 2021-01-09 +## 2.0.0-beta.2 - Add `task` mod with re-export of `tokio::task::{spawn_blocking, yield_now, JoinHandle}` [#245] - Add default "macros" feature to allow faster compile times when using `default-features=false`. [#245]: https://github.com/actix/actix-net/pull/245 -## 2.0.0-beta.1 - 2020-12-28 +## 2.0.0-beta.1 - Add `System::attach_to_tokio` method. [#173] - Update `tokio` dependency to `1.0`. [#236] @@ -139,13 +139,13 @@ [#207]: https://github.com/actix/actix-net/pull/207 [#236]: https://github.com/actix/actix-net/pull/236 -## 1.1.1 - 2020-04-30 +## 1.1.1 - Fix memory leak due to [#94] (see [#129] for more detail) [#129]: https://github.com/actix/actix-net/issues/129 -## 1.1.0 - 2020-04-08 _(YANKED)_ +## 1.1.0 _(YANKED)_ - Expose `System::is_set` to check if current system has ben started [#99] - Add `Arbiter::is_running` to check if event loop is running [#124] @@ -155,57 +155,57 @@ [#99]: https://github.com/actix/actix-net/pull/99 [#124]: https://github.com/actix/actix-net/pull/124 -## 1.0.0 - 2019-12-11 +## 1.0.0 - Update dependencies -## 1.0.0-alpha.3 - 2019-12-07 +## 1.0.0-alpha.3 - Migrate to tokio 0.2 - Fix compilation on non-unix platforms -## 1.0.0-alpha.2 - 2019-12-02 +## 1.0.0-alpha.2 - Export `main` and `test` attribute macros - Export `time` module (re-export of tokio-timer) - Export `net` module (re-export of tokio-net) -## 1.0.0-alpha.1 - 2019-11-22 +## 1.0.0-alpha.1 - Migrate to std::future and tokio 0.2 -## 0.2.6 - 2019-11-14 +## 0.2.6 - Allow to join arbiter's thread. #60 - Fix arbiter's thread panic message. -## 0.2.5 - 2019-09-02 +## 0.2.5 - Add arbiter specific storage -## 0.2.4 - 2019-07-17 +## 0.2.4 - Avoid a copy of the Future when initializing the Box. #29 -## 0.2.3 - 2019-06-22 +## 0.2.3 - Allow to start System using existing CurrentThread Handle #22 -## 0.2.2 - 2019-03-28 +## 0.2.2 - Moved `blocking` module to `actix-threadpool` crate -## 0.2.1 - 2019-03-11 +## 0.2.1 - Added `blocking` module - Added `Arbiter::exec_fn` - execute fn on the arbiter's thread - Added `Arbiter::exec` - execute fn on the arbiter's thread and wait result -## 0.2.0 - 2019-03-06 +## 0.2.0 - `run` method returns `io::Result<()>` - Removed `Handle` -## 0.1.0 - 2018-12-09 +## 0.1.0 - Initial release diff --git a/actix-service/CHANGES.md b/actix-service/CHANGES.md index ee549941..9a3b70a3 100644 --- a/actix-service/CHANGES.md +++ b/actix-service/CHANGES.md @@ -1,28 +1,28 @@ # Changes -## Unreleased - 2023-xx-xx +## Unreleased - Minimum supported Rust version (MSRV) is now 1.65. -## 2.0.2 - 2021-12-18 +## 2.0.2 - Service types can now be `Send` and `'static` regardless of request, response, and config types, etc. [#397] [#397]: https://github.com/actix/actix-net/pull/397 -## 2.0.1 - 2021-10-11 +## 2.0.1 - Documentation fix. [#388] [#388]: https://github.com/actix/actix-net/pull/388 -## 2.0.0 - 2021-04-16 +## 2.0.0 - Removed pipeline and related structs/functions. [#335] [#335]: https://github.com/actix/actix-net/pull/335 -## 2.0.0-beta.5 - 2021-03-15 +## 2.0.0-beta.5 - Add default `Service` trait impl for `Rc` and `&S: Service`. [#288] - Add `boxed::rc_service` function for constructing `boxed::RcService` type [#290] @@ -30,7 +30,7 @@ [#288]: https://github.com/actix/actix-net/pull/288 [#290]: https://github.com/actix/actix-net/pull/290 -## 2.0.0-beta.4 - 2021-02-04 +## 2.0.0-beta.4 - `Service::poll_ready` and `Service::call` receive `&self`. [#247] - `apply_fn` and `apply_fn_factory` now receive `Fn(Req, &Service)` function type. [#247] @@ -39,17 +39,17 @@ [#247]: https://github.com/actix/actix-net/pull/247 -## 2.0.0-beta.3 - 2021-01-09 +## 2.0.0-beta.3 - The `forward_ready!` macro converts errors. [#246] [#246]: https://github.com/actix/actix-net/pull/246 -## 2.0.0-beta.2 - 2021-01-03 +## 2.0.0-beta.2 - Remove redundant type parameter from `map_config`. -## 2.0.0-beta.1 - 2020-12-28 +## 2.0.0-beta.1 - `Service`, other traits, and many type signatures now take the the request type as a type parameter instead of an associated type. [#232] - Add `always_ready!` and `forward_ready!` macros. [#233] @@ -62,82 +62,82 @@ [#233]: https://github.com/actix/actix-net/pull/233 [#235]: https://github.com/actix/actix-net/pull/235 -## 1.0.6 - 2020-08-09 +## 1.0.6 - Removed unsound custom Cell implementation that allowed obtaining several mutable references to the same data, which is undefined behavior in Rust and could lead to violations of memory safety. External code could obtain several mutable references to the same data through service combinators. Attempts to acquire several mutable references to the same data will instead result in a panic. -## 1.0.5 - 2020-01-16 +## 1.0.5 - Fixed unsoundness in .and_then()/.then() service combinators. -## 1.0.4 - 2020-01-15 +## 1.0.4 - Revert 1.0.3 change -## 1.0.3 - 2020-01-15 +## 1.0.3 - Fixed unsoundness in `AndThenService` impl. -## 1.0.2 - 2020-01-08 +## 1.0.2 - Add `into_service` helper function. -## 1.0.1 - 2019-12-22 +## 1.0.1 - `map_config()` and `unit_config()` now accept `IntoServiceFactory` type. -## 1.0.0 - 2019-12-11 +## 1.0.0 - Add Clone impl for Apply service -## 1.0.0-alpha.4 - 2019-12-08 +## 1.0.0-alpha.4 - Renamed `service_fn` to `fn_service` - Renamed `factory_fn` to `fn_factory` - Renamed `factory_fn_cfg` to `fn_factory_with_config` -## 1.0.0-alpha.3 - 2019-12-06 +## 1.0.0-alpha.3 - Add missing Clone impls - Restore `Transform::map_init_err()` combinator - Restore `Service/Factory::apply_fn()` in form of `Pipeline/Factory::and_then_apply_fn()` - Optimize service combinators and futures memory layout -## 1.0.0-alpha.2 - 2019-12-02 +## 1.0.0-alpha.2 - Use owned config value for service factory - Renamed BoxedNewService/BoxedService to BoxServiceFactory/BoxService -## 1.0.0-alpha.1 - 2019-11-25 +## 1.0.0-alpha.1 - Migrated to `std::future` - `NewService` renamed to `ServiceFactory` - Added `pipeline` and `pipeline_factory` function -## 0.4.2 - 2019-08-27 +## 0.4.2 - Check service readiness for `new_apply_cfg` combinator -## 0.4.1 - 2019-06-06 +## 0.4.1 - Add `new_apply_cfg` function -## 0.4.0 - 2019-05-12 +## 0.4.0 - Add `NewService::map_config` and `NewService::unit_config` combinators. - Use associated type for `NewService` config. - Change `apply_cfg` function. - Renamed helper functions. -## 0.3.6 - 2019-04-07 +## 0.3.6 - Poll boxed service call result immediately -## 0.3.5 - 2019-03-29 +## 0.3.5 - Add `impl Service for Rc>`. -## 0.3.4 - 2019-03-12 +## 0.3.4 - Add `Transform::from_err()` combinator - Add `apply_fn` helper @@ -145,37 +145,37 @@ - Add `apply_transform` helper - Add `apply_cfg` helper -## 0.3.3 - 2019-03-09 +## 0.3.3 - Add `ApplyTransform` new service for transform and new service. - Add `NewService::apply_cfg()` combinator, allows to use nested `NewService` with different config parameter. - Revert IntoFuture change -## 0.3.2 - 2019-03-04 +## 0.3.2 - Change `NewService::Future` and `Transform::Future` to the `IntoFuture` trait. - Export `AndThenTransform` type -## 0.3.1 - 2019-03-04 +## 0.3.1 - Simplify Transform trait -## 0.3.0 - 2019-03-02 +## 0.3.0 - Added boxed NewService and Service. - Added `Config` parameter to `NewService` trait. - Added `Config` parameter to `NewTransform` trait. -## 0.2.2 - 2019-02-19 +## 0.2.2 - Added `NewService` impl for `Rc where S: NewService` - Added `NewService` impl for `Arc where S: NewService` -## 0.2.1 - 2019-02-03 +## 0.2.1 - Generalize `.apply` combinator with Transform trait -## 0.2.0 - 2019-02-01 +## 0.2.0 - Use associated type instead of generic for Service definition. - Before: @@ -194,31 +194,31 @@ } ``` -## 0.1.6 - 2019-01-24 +## 0.1.6 - Use `FnMut` instead of `Fn` for .apply() and .map() combinators and `FnService` type - Change `.apply()` error semantic, new service's error is `From` -## 0.1.5 - 2019-01-13 +## 0.1.5 - Make `Out::Error` convertible from `T::Error` for apply combinator -## 0.1.4 - 2019-01-11 +## 0.1.4 - Use `FnMut` instead of `Fn` for `FnService` -## 0.1.3 - 2018-12-12 +## 0.1.3 - Split service combinators to separate trait -## 0.1.2 - 2018-12-12 +## 0.1.2 - Release future early for `.and_then()` and `.then()` combinators -## 0.1.1 - 2018-12-09 +## 0.1.1 - Added Service impl for `Box` -## 0.1.0 - 2018-12-09 +## 0.1.0 - Initial import diff --git a/actix-tracing/CHANGES.md b/actix-tracing/CHANGES.md index f61d3f2b..2e90e25c 100644 --- a/actix-tracing/CHANGES.md +++ b/actix-tracing/CHANGES.md @@ -1,9 +1,9 @@ # Changes -## Unreleased - 2023-xx-xx +## Unreleased - Minimum supported Rust version (MSRV) is now 1.65. -## 0.1.0 - 2020-01-15 +## 0.1.0 - Initial release diff --git a/actix-utils/CHANGES.md b/actix-utils/CHANGES.md index fc7df208..c68c3171 100644 --- a/actix-utils/CHANGES.md +++ b/actix-utils/CHANGES.md @@ -1,24 +1,24 @@ # Changes -## Unreleased - 2023-xx-xx +## Unreleased - Minimum supported Rust version (MSRV) is now 1.65. -## 3.0.1 - 2022-10-21 +## 3.0.1 - Minimum supported Rust version (MSRV) is now 1.57. -## 3.0.0 - 2021-04-16 +## 3.0.0 - No significant changes from `3.0.0-beta.4`. -## 3.0.0-beta.4 - 2021-04-01 +## 3.0.0-beta.4 - Add `future::Either` type. [#305] [#305]: https://github.com/actix/actix-net/pull/305 -## 3.0.0-beta.3 - 2021-04-01 +## 3.0.0-beta.3 - Moved `mpsc` to own crate `local-channel`. [#301] - Moved `task::LocalWaker` to own crate `local-waker`. [#301] @@ -28,13 +28,13 @@ [#301]: https://github.com/actix/actix-net/pull/301 -## 3.0.0-beta.2 - 2021-02-06 +## 3.0.0-beta.2 - Update `actix-rt` to `2.0.0`. [#273] [#273]: https://github.com/actix/actix-net/pull/273 -## 3.0.0-beta.1 - 2020-12-28 +## 3.0.0-beta.1 - Update `bytes` dependency to `1`. [#237] - Use `pin-project-lite` to replace `pin-project`. [#229] @@ -43,139 +43,139 @@ [#229]: https://github.com/actix/actix-net/pull/229 [#237]: https://github.com/actix/actix-net/pull/237 -## 2.0.0 - 2020-08-23 +## 2.0.0 - No changes from beta 1. -## 2.0.0-beta.1 - 2020-08-19 +## 2.0.0-beta.1 - Upgrade `tokio-util` to `0.3`. - Remove unsound custom Cell and use `std::cell::RefCell` instead, as well as `actix-service`. - Rename method to correctly spelled `LocalWaker::is_registered`. -## 1.0.6 - 2020-01-08 +## 1.0.6 - Add `Clone` impl for `condition::Waiter`. -## 1.0.5 - 2020-01-08 +## 1.0.5 - Add `Condition` type. - Add `Pool` of one-shot's. -## 1.0.4 - 2019-12-20 +## 1.0.4 - Add methods to check `LocalWaker` registration state. -## 1.0.3 - 2019-12-11 +## 1.0.3 - Revert InOrder service changes -## 1.0.2 - 2019-12-11 +## 1.0.2 - Allow to create `framed::Dispatcher` with custom `mpsc::Receiver`. - Add `oneshot::Sender::is_canceled()` method. -## 1.0.1 - 2019-12-11 +## 1.0.1 - Optimize InOrder service. -## 1.0.0 - 2019-12-11 +## 1.0.0 - Simplify oneshot and mpsc implementations. -## 1.0.0-alpha.3 - 2019-12-07 +## 1.0.0-alpha.3 - Migrate to tokio 0.2. - Fix oneshot. -## 1.0.0-alpha.2 - 2019-12-02 +## 1.0.0-alpha.2 - Migrate to `std::future`. -## 0.4.7 - 2019-10-14 +## 0.4.7 - Re-register task on every framed transport poll. -## 0.4.6 - 2019-10-08 +## 0.4.6 - Refactor `Counter` type. register current task in available method. -## 0.4.5 - 2019-07-19 +## 0.4.5 - Deprecated `CloneableService` as it is not safe. -## 0.4.4 - 2019-07-17 +## 0.4.4 - Undeprecate `FramedTransport` as it is actually useful. -## 0.4.3 - 2019-07-17 +## 0.4.3 - Deprecate `CloneableService` as it is not safe and in general not very useful. - Deprecate `FramedTransport` in favor of `actix-ioframe`. -## 0.4.2 - 2019-06-26 +## 0.4.2 - Do not block on sink drop for FramedTransport. -## 0.4.1 - 2019-05-15 +## 0.4.1 - Change `Either` constructor. -## 0.4.0 - 2019-05-11 +## 0.4.0 - Change `Either` to handle two nexted services. - Upgrade actix-service 0.4. - Removed framed related services. - Removed stream related services. -## 0.3.5 - 2019-04-04 +## 0.3.5 - Allow to send messages to `FramedTransport` via mpsc channel. - Remove `'static` constraint from Clonable service. -## 0.3.4 - 2019-03-12 +## 0.3.4 - `TimeoutService`, `InOrderService`, `InFlightService` accepts generic IntoService services. - Fix `InFlightService::poll_ready()` nested service readiness check. - Fix `InOrderService::poll_ready()` nested service readiness check. -## 0.3.3 - 2019-03-09 +## 0.3.3 - Revert IntoFuture change. - Add generic config param for IntoFramed and TakeOne new services. -## 0.3.2 - 2019-03-04 +## 0.3.2 - Use IntoFuture for new services. -## 0.3.1 - 2019-03-04 +## 0.3.1 - Use new type of transform trait. -## 0.3.0 - 2019-03-02 +## 0.3.0 - Use new `NewService` trait - BoxedNewService`and`BoxedService` types moved to actix-service crate. -## 0.2.4 - 2019-02-21 +## 0.2.4 - Custom `BoxedNewService` implementation. -## 0.2.3 - 2019-02-21 +## 0.2.3 - Add `BoxedNewService` and `BoxedService`. -## 0.2.2 - 2019-02-11 +## 0.2.2 - Add `Display` impl for `TimeoutError`. - Add `Display` impl for `InOrderError`. -## 0.2.1 - 2019-02-06 +## 0.2.1 - Add `InOrder` service. the service yields responses as they become available, in the order that their originating requests were submitted to the service. - Convert `Timeout` and `InFlight` services to a transforms. -## 0.2.0 - 2019-02-01 +## 0.2.0 - Fix framed transport error handling. - Added Clone impl for Either service. @@ -183,6 +183,6 @@ - Added Service and NewService for Stream dispatcher. - Switch to actix-service 0.2. -## 0.1.0 - 2018-12-09 +## 0.1.0 - Move utils services to separate crate. diff --git a/bytestring/CHANGES.md b/bytestring/CHANGES.md index a66b9e12..270dae14 100644 --- a/bytestring/CHANGES.md +++ b/bytestring/CHANGES.md @@ -1,25 +1,25 @@ # Changes -## Unreleased - 2023-xx-xx +## Unreleased -## 1.3.0 - 2023-03-03 +## 1.3.0 - Implement `AsRef` for `ByteString`. -## 1.2.1 - 2022-11-12 +## 1.2.1 - Fix `#[no_std]` compatibility. [#471] [#471]: https://github.com/actix/actix-net/pull/471 -## 1.2.0 - 2022-11-07 +## 1.2.0 - Add `ByteString::slice_ref` which can safely slice a `ByteString` into a new one with zero copy. [#470] - Minimum supported Rust version (MSRV) is now 1.57. [#470]: https://github.com/actix/actix-net/pull/470 -## 1.1.0 - 2022-06-11 +## 1.1.0 - Implement `From>` for `ByteString`. [#458] - Implement `Into` for `ByteString`. [#458] @@ -27,7 +27,7 @@ [#458]: https://github.com/actix/actix-net/pull/458 -## 1.0.0 - 2020-12-31 +## 1.0.0 - Update `bytes` dependency to `1`. - Add array and slice of `u8` impls of `TryFrom` up to 32 in length. @@ -35,27 +35,27 @@ - `ByteString::new` is now a `const fn`. - Crate is now `#[no_std]` compatible. -## 0.1.5 - 2020-03-30 +## 0.1.5 - Serde support -## 0.1.4 - 2020-01-14 +## 0.1.4 - Fix `AsRef` impl -## 0.1.3 - 2020-01-13 +## 0.1.3 - Add `PartialEq>`, `AsRef<[u8]>` impls -## 0.1.2 - 2019-12-22 +## 0.1.2 - Fix `new()` method - Make `ByteString::from_static()` and `ByteString::from_bytes_unchecked()` methods const. -## 0.1.1 - 2019-12-07 +## 0.1.1 - Fix hash impl -## 0.1.0 - 2019-12-07 +## 0.1.0 - Initial release diff --git a/local-waker/CHANGES.md b/local-waker/CHANGES.md index f8aadaa6..02112c90 100644 --- a/local-waker/CHANGES.md +++ b/local-waker/CHANGES.md @@ -1,17 +1,17 @@ # Changes -## Unreleased - 2023-xx-xx +## Unreleased - Minimum supported Rust version (MSRV) is now 1.65. -## 0.1.3 - 2022-05-03 +## 0.1.3 - Minimum supported Rust version (MSRV) is now 1.49. -## 0.1.2 - 2021-12-18 +## 0.1.2 - Fix crate metadata. -## 0.1.1 - 2021-03-29 +## 0.1.1 - Move `LocalWaker` to it's own crate. From 17409cd203e29ddac60fa185beee595c145d5627 Mon Sep 17 00:00:00 2001 From: Rob Ede Date: Sun, 17 Sep 2023 20:33:36 +0100 Subject: [PATCH 089/410] docs: add bytestring readme --- actix-server/README.md | 8 +++++++- actix-service/README.md | 2 +- bytestring/README.md | 16 ++++++++++++++++ 3 files changed, 24 insertions(+), 2 deletions(-) create mode 100644 bytestring/README.md diff --git a/actix-server/README.md b/actix-server/README.md index 68f2a1ec..eb9a0bd7 100644 --- a/actix-server/README.md +++ b/actix-server/README.md @@ -2,14 +2,20 @@ > General purpose TCP server built for the Actix ecosystem. + + [![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.3.0)](https://docs.rs/actix-server/2.3.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) -![License](https://img.shields.io/crates/l/actix-server.svg) +![MIT or Apache 2.0 licensed](https://img.shields.io/crates/l/actix-server.svg) +
[![Dependency Status](https://deps.rs/crate/actix-server/2.3.0/status.svg)](https://deps.rs/crate/actix-server/2.3.0) ![Download](https://img.shields.io/crates/d/actix-server.svg) [![Chat on Discord](https://img.shields.io/discord/771444961383153695?label=chat&logo=discord)](https://discord.gg/NWpN5mmg3x) + + ## Resources + - [Library Documentation](https://docs.rs/actix-server) - [Examples](/actix-server/examples) diff --git a/actix-service/README.md b/actix-service/README.md index 62f9fe1c..79bf3028 100644 --- a/actix-service/README.md +++ b/actix-service/README.md @@ -5,7 +5,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.2)](https://docs.rs/actix-service/2.0.2) [![Version](https://img.shields.io/badge/rustc-1.46+-ab6000.svg)](https://blog.rust-lang.org/2020/03/12/Rust-1.46.html) -![License](https://img.shields.io/crates/l/actix-service.svg) +![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.2/status.svg)](https://deps.rs/crate/actix-service/2.0.2) ![Download](https://img.shields.io/crates/d/actix-service.svg) [![Chat on Discord](https://img.shields.io/discord/771444961383153695?label=chat&logo=discord)](https://discord.gg/NWpN5mmg3x) diff --git a/bytestring/README.md b/bytestring/README.md new file mode 100644 index 00000000..9a53272d --- /dev/null +++ b/bytestring/README.md @@ -0,0 +1,16 @@ +# `bytestring` + +> A UTF-8 encoded read-only string using Bytes as storage. + + + +[![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.3.0)](https://docs.rs/bytestring/1.3.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) +![MIT or Apache 2.0 licensed](https://img.shields.io/crates/l/bytestring.svg) +
+[![Dependency Status](https://deps.rs/crate/bytestring/1.3.0/status.svg)](https://deps.rs/crate/bytestring/1.3.0) +![Download](https://img.shields.io/crates/d/bytestring.svg) +[![Chat on Discord](https://img.shields.io/discord/771444961383153695?label=chat&logo=discord)](https://discord.gg/NWpN5mmg3x) + + From 69e50b5e6656b4762f86409a196b86a1fd297bfd Mon Sep 17 00:00:00 2001 From: Rob Ede Date: Sun, 29 Oct 2023 01:35:12 +0000 Subject: [PATCH 090/410] add dependabot updater for actions and cargo --- .github/dependabot.yml | 10 ++++++++++ justfile | 2 ++ 2 files changed, 12 insertions(+) create mode 100644 .github/dependabot.yml create mode 100644 justfile diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 00000000..b3eb7c8b --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,10 @@ +version: 2 +updates: + - package-ecosystem: github-actions + directory: / + schedule: + interval: weekly + - package-ecosystem: cargo + directory: / + schedule: + interval: weekly diff --git a/justfile b/justfile new file mode 100644 index 00000000..05c641c2 --- /dev/null +++ b/justfile @@ -0,0 +1,2 @@ +_list: + @just --list From 6d9eb7e1622f89b27cad05730aa821548337d04e Mon Sep 17 00:00:00 2001 From: Rob Ede Date: Sun, 29 Oct 2023 01:55:34 +0000 Subject: [PATCH 091/410] ci: specify full action versions --- .github/workflows/ci-post-merge.yml | 18 ++++++++++-------- .github/workflows/ci.yml | 12 +++++++----- .github/workflows/clippy-fmt.yml | 8 ++++---- .github/workflows/upload-doc.yml | 5 +++-- 4 files changed, 24 insertions(+), 19 deletions(-) diff --git a/.github/workflows/ci-post-merge.yml b/.github/workflows/ci-post-merge.yml index d9680fc3..7c9de532 100644 --- a/.github/workflows/ci-post-merge.yml +++ b/.github/workflows/ci-post-merge.yml @@ -52,12 +52,13 @@ jobs: echo 'OPENSSL_DIR=C:\Program Files\OpenSSL' | Out-File -FilePath $env:GITHUB_ENV -Append - name: Install Rust (${{ matrix.version }}) - uses: actions-rust-lang/setup-rust-toolchain@v1 + uses: actions-rust-lang/setup-rust-toolchain@v1.5.0 with: toolchain: ${{ matrix.version }} - - uses: taiki-e/install-action@v2 - with: { tool: cargo-hack } + - uses: taiki-e/install-action@v2.20.14 + with: + tool: cargo-hack - name: check lib if: > @@ -110,12 +111,12 @@ jobs: - uses: actions/checkout@v3 - name: Install Rust (nightly) - uses: actions-rust-lang/setup-rust-toolchain@v1 + uses: actions-rust-lang/setup-rust-toolchain@v1.5.0 with: toolchain: nightly - name: Install cargo-hack & cargo-minimal-versions - uses: taiki-e/install-action@v1 + uses: taiki-e/install-action@v2.20.14 with: tool: cargo-hack,cargo-minimal-versions @@ -129,11 +130,12 @@ jobs: - uses: actions/checkout@v3 - name: Install Rust - uses: actions-rust-lang/setup-rust-toolchain@v1 + uses: actions-rust-lang/setup-rust-toolchain@v1.5.0 - name: Install cargo-nextest - uses: taiki-e/install-action@v1 - with: { tool: cargo-nextest } + uses: taiki-e/install-action@v2.20.14 + with: + tool: cargo-nextest - name: Test with cargo-nextest run: cargo nextest run diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 74315e6a..d69f0929 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -53,12 +53,13 @@ jobs: echo 'OPENSSL_DIR=C:\Program Files\OpenSSL' | Out-File -FilePath $env:GITHUB_ENV -Append - name: Install Rust (${{ matrix.version }}) - uses: actions-rust-lang/setup-rust-toolchain@v1 + uses: actions-rust-lang/setup-rust-toolchain@v1.5.0 with: toolchain: ${{ matrix.version }} - - uses: taiki-e/install-action@v1 - with: { tool: cargo-hack } + - uses: taiki-e/install-action@v2.20.14 + with: + tool: cargo-hack - name: Generate Cargo.lock run: cargo generate-lockfile @@ -123,8 +124,9 @@ jobs: - uses: actions/checkout@v3 - name: Install Rust (nightly) - uses: actions-rust-lang/setup-rust-toolchain@v1 - with: { toolchain: nightly } + uses: actions-rust-lang/setup-rust-toolchain@v1.5.0 + with: + toolchain: nightly - name: doc tests io-uring run: | diff --git a/.github/workflows/clippy-fmt.yml b/.github/workflows/clippy-fmt.yml index b26b1282..f50aeee1 100644 --- a/.github/workflows/clippy-fmt.yml +++ b/.github/workflows/clippy-fmt.yml @@ -16,7 +16,7 @@ jobs: steps: - uses: actions/checkout@v3 - - uses: actions-rust-lang/setup-rust-toolchain@v1 + - uses: actions-rust-lang/setup-rust-toolchain@v1.5.0 with: toolchain: nightly components: rustfmt @@ -33,11 +33,11 @@ jobs: steps: - uses: actions/checkout@v3 - - uses: actions-rust-lang/setup-rust-toolchain@v1 + - uses: actions-rust-lang/setup-rust-toolchain@v1.5.0 with: { components: clippy } - - uses: giraffate/clippy-action@v1 + - uses: giraffate/clippy-action@v1.0.1 with: reporter: 'github-pr-check' github_token: ${{ secrets.GITHUB_TOKEN }} - clippy_flags: --workspace --all-features --tests --examples --bins -- -Dclippy::todo + clippy_flags: --workspace --all-features --tests --examples --bins -- -Dclippy::todo -Aunknown_lints diff --git a/.github/workflows/upload-doc.yml b/.github/workflows/upload-doc.yml index 66147949..6858ec56 100644 --- a/.github/workflows/upload-doc.yml +++ b/.github/workflows/upload-doc.yml @@ -20,7 +20,7 @@ jobs: steps: - uses: actions/checkout@v3 - - uses: actions-rust-lang/setup-rust-toolchain@v1 + - uses: actions-rust-lang/setup-rust-toolchain@v1.5.0 with: { toolchain: nightly } - name: Build Docs @@ -30,6 +30,7 @@ jobs: run: echo '' > target/doc/index.html - name: Deploy to GitHub Pages - uses: JamesIves/github-pages-deploy-action@v4 + uses: JamesIves/github-pages-deploy-action@v4.4.3 with: folder: target/doc + single-commit: true From db54639f0fe62717679949ec598011eb4e64bcf0 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 29 Oct 2023 03:30:20 +0000 Subject: [PATCH 092/410] Bump taiki-e/install-action from 2.18.9 to 2.21.2 (#497) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/ci-post-merge.yml | 6 +++--- .github/workflows/ci.yml | 2 +- .github/workflows/coverage.yml | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/ci-post-merge.yml b/.github/workflows/ci-post-merge.yml index 7c9de532..7aa9ff8a 100644 --- a/.github/workflows/ci-post-merge.yml +++ b/.github/workflows/ci-post-merge.yml @@ -56,7 +56,7 @@ jobs: with: toolchain: ${{ matrix.version }} - - uses: taiki-e/install-action@v2.20.14 + - uses: taiki-e/install-action@v2.21.2 with: tool: cargo-hack @@ -116,7 +116,7 @@ jobs: toolchain: nightly - name: Install cargo-hack & cargo-minimal-versions - uses: taiki-e/install-action@v2.20.14 + uses: taiki-e/install-action@v2.21.2 with: tool: cargo-hack,cargo-minimal-versions @@ -133,7 +133,7 @@ jobs: uses: actions-rust-lang/setup-rust-toolchain@v1.5.0 - name: Install cargo-nextest - uses: taiki-e/install-action@v2.20.14 + uses: taiki-e/install-action@v2.21.2 with: tool: cargo-nextest diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index d69f0929..6566aa14 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -57,7 +57,7 @@ jobs: with: toolchain: ${{ matrix.version }} - - uses: taiki-e/install-action@v2.20.14 + - uses: taiki-e/install-action@v2.21.2 with: tool: cargo-hack diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml index a516f1c2..b07658df 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.18.9 + uses: taiki-e/install-action@v2.21.2 with: tool: cargo-llvm-cov From 580af3dec4e0ba552c88c73d7f8239ebb5e561c9 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 29 Oct 2023 04:17:06 +0000 Subject: [PATCH 093/410] Bump actions/checkout from 3 to 4 (#494) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/ci-post-merge.yml | 6 +++--- .github/workflows/ci.yml | 4 ++-- .github/workflows/clippy-fmt.yml | 4 ++-- .github/workflows/upload-doc.yml | 2 +- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/.github/workflows/ci-post-merge.yml b/.github/workflows/ci-post-merge.yml index 7aa9ff8a..c6b46ea1 100644 --- a/.github/workflows/ci-post-merge.yml +++ b/.github/workflows/ci-post-merge.yml @@ -36,7 +36,7 @@ jobs: if: matrix.target.os == 'macos-latest' run: sudo ifconfig lo0 alias 127.0.0.3 - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Free Disk Space if: matrix.target.os == 'ubuntu-latest' @@ -108,7 +108,7 @@ jobs: name: minimal versions runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Install Rust (nightly) uses: actions-rust-lang/setup-rust-toolchain@v1.5.0 @@ -127,7 +127,7 @@ jobs: name: nextest runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Install Rust uses: actions-rust-lang/setup-rust-toolchain@v1.5.0 diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 6566aa14..356a950d 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -37,7 +37,7 @@ jobs: if: matrix.target.os == 'macos-latest' run: sudo ifconfig lo0 alias 127.0.0.3 - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Free Disk Space if: matrix.target.os == 'ubuntu-latest' @@ -121,7 +121,7 @@ jobs: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Install Rust (nightly) uses: actions-rust-lang/setup-rust-toolchain@v1.5.0 diff --git a/.github/workflows/clippy-fmt.yml b/.github/workflows/clippy-fmt.yml index f50aeee1..dab27736 100644 --- a/.github/workflows/clippy-fmt.yml +++ b/.github/workflows/clippy-fmt.yml @@ -14,7 +14,7 @@ jobs: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - uses: actions-rust-lang/setup-rust-toolchain@v1.5.0 with: @@ -31,7 +31,7 @@ jobs: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - uses: actions-rust-lang/setup-rust-toolchain@v1.5.0 with: { components: clippy } diff --git a/.github/workflows/upload-doc.yml b/.github/workflows/upload-doc.yml index 6858ec56..f54fdf6a 100644 --- a/.github/workflows/upload-doc.yml +++ b/.github/workflows/upload-doc.yml @@ -18,7 +18,7 @@ jobs: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - uses: actions-rust-lang/setup-rust-toolchain@v1.5.0 with: { toolchain: nightly } From b9b628c47b4c0b35655590e3f418ee26cc5a1be8 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 29 Oct 2023 05:08:55 +0000 Subject: [PATCH 094/410] Update criterion requirement from 0.4 to 0.5 (#495) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/ci.yml | 23 +++++++++++++---------- actix-codec/Cargo.toml | 2 +- 2 files changed, 14 insertions(+), 11 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 356a950d..855420e2 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -24,10 +24,10 @@ jobs: - { name: Windows (MinGW), os: windows-latest, triple: x86_64-pc-windows-gnu } - { name: Windows (32-bit), os: windows-latest, triple: i686-pc-windows-msvc } version: - - 1.65.0 # MSRV - - stable + - { name: msrv, version: 1.65.0 } + - { name: stable, version: stable } - name: ${{ matrix.target.name }} / ${{ matrix.version }} + name: ${{ matrix.target.name }} / ${{ matrix.version.name }} runs-on: ${{ matrix.target.os }} env: {} @@ -52,10 +52,10 @@ jobs: echo 'OPENSSL_DIR=C:\Program Files\OpenSSL-Win64' | Out-File -FilePath $env:GITHUB_ENV -Append echo 'OPENSSL_DIR=C:\Program Files\OpenSSL' | Out-File -FilePath $env:GITHUB_ENV -Append - - name: Install Rust (${{ matrix.version }}) + - name: Install Rust (${{ matrix.version.name }}) uses: actions-rust-lang/setup-rust-toolchain@v1.5.0 with: - toolchain: ${{ matrix.version }} + toolchain: ${{ matrix.version.version }} - uses: taiki-e/install-action@v2.21.2 with: @@ -65,9 +65,12 @@ jobs: run: cargo generate-lockfile - name: workaround MSRV issues - if: matrix.version != 'stable' + if: matrix.version.name == 'msrv' run: | - cargo update -p=time --precise=0.3.16 # time is only a dev dep so shouldn't affect msrv + cargo update -p=time --precise=0.3.16 + cargo update -p=clap --precise=4.3.24 + cargo update -p=clap_lex --precise=0.5.0 + cargo update -p=anstyle --precise=1.0.2 - name: check lib if: > @@ -106,9 +109,9 @@ jobs: ulimit -Sl 512 && ulimit -Hl 512 && PATH=$PATH:/usr/share/rust/.cargo/bin - && RUSTUP_TOOLCHAIN=${{ matrix.version }} cargo ci-test-rustls-020 - && RUSTUP_TOOLCHAIN=${{ matrix.version }} cargo ci-test-rustls-021 - && RUSTUP_TOOLCHAIN=${{ matrix.version }} cargo ci-test-linux + && RUSTUP_TOOLCHAIN=${{ matrix.version.version }} cargo ci-test-rustls-020 + && RUSTUP_TOOLCHAIN=${{ matrix.version.version }} cargo ci-test-rustls-021 + && RUSTUP_TOOLCHAIN=${{ matrix.version.version }} cargo ci-test-linux " - name: Clear the cargo caches diff --git a/actix-codec/Cargo.toml b/actix-codec/Cargo.toml index d8f072df..f2261827 100644 --- a/actix-codec/Cargo.toml +++ b/actix-codec/Cargo.toml @@ -25,7 +25,7 @@ tokio-util = { version = "0.7", features = ["codec", "io"] } tracing = { version = "0.1.30", default-features = false, features = ["log"] } [dev-dependencies] -criterion = { version = "0.4", features = ["html_reports"] } +criterion = { version = "0.5", features = ["html_reports"] } tokio-test = "0.4.2" [[bench]] From 17fd135349967597fc35e066d0d32078259fd0d4 Mon Sep 17 00:00:00 2001 From: Rob Ede Date: Sun, 29 Oct 2023 18:37:29 +0000 Subject: [PATCH 095/410] docs: improve docs on ServerBuilder::{bind, workers} --- actix-server/src/builder.rs | 78 +++++++++++++++++++++++++++++-------- justfile | 9 +++++ 2 files changed, 70 insertions(+), 17 deletions(-) diff --git a/actix-server/src/builder.rs b/actix-server/src/builder.rs index 42addafc..33da31c5 100644 --- a/actix-server/src/builder.rs +++ b/actix-server/src/builder.rs @@ -2,7 +2,6 @@ use std::{io, num::NonZeroUsize, time::Duration}; use actix_rt::net::TcpStream; use tokio::sync::mpsc::{unbounded_channel, UnboundedReceiver, UnboundedSender}; -use tracing::{info, trace}; use crate::{ server::ServerCommand, @@ -69,19 +68,18 @@ impl ServerBuilder { } } - /// Set number of workers to start. + /// Sets number of workers to start. /// /// `num` must be greater than 0. /// - /// The default worker count is the number of physical CPU cores available. If your benchmark - /// testing indicates that simultaneous multi-threading is beneficial to your app, you can use - /// the [`num_cpus`] crate to acquire the _logical_ core count instead. + /// Note that the factory + /// + /// The default worker count is the determined by [`std::thread::available_parallelism()`]. See + /// its documentation to determine what behavior you should expect when server is run. /// /// # Panics /// /// Panics if `num` is 0. - /// - /// [`num_cpus`]: https://docs.rs/num_cpus pub fn workers(mut self, num: usize) -> Self { assert_ne!(num, 0, "workers must be greater than 0"); self.threads = num; @@ -155,13 +153,15 @@ impl ServerBuilder { self.max_concurrent_connections(num) } - /// Stop Actix `System` after server shutdown. + /// Sets flag to stop Actix `System` after server shutdown. + /// + /// This has no effect when server is running in a Tokio-only runtime. pub fn system_exit(mut self) -> Self { self.exit = true; self } - /// Disable OS signal handling. + /// Disables OS signal handling. pub fn disable_signals(mut self) -> Self { self.listen_os_signals = false; self @@ -179,25 +179,49 @@ impl ServerBuilder { self } - /// Add new service to the server. - pub fn bind(mut self, name: N, addr: U, factory: F) -> io::Result + /// Adds new service to the server. + /// + /// Note that, if a DNS lookup is required, resolving hostnames is a blocking operation. + /// + /// # Worker Count + /// + /// The `factory` will be instantiated multiple times in most scenarios. The number of + /// instantiations is number of [`workers`](Self::workers()) × number of sockets resolved by + /// `addrs`. + /// + /// For example, if you've manually set [`workers`](Self::workers()) to 2, and use `127.0.0.1` + /// as the bind `addrs`, then `factory` will be instantiated twice. However, using `localhost` + /// as the bind `addrs` can often resolve to both `127.0.0.1` (IPv4) _and_ `::1` (IPv6), causing + /// the `factory` to be instantiated 4 times (2 workers × 2 bind addresses). + /// + /// Using a bind address of `0.0.0.0`, which signals to use all interfaces, may also multiple + /// the number of instantiations in a similar way. + /// + /// # Errors + /// + /// Returns an `io::Error` if: + /// - `addrs` cannot be resolved into one or more socket addresses; + /// - all the resolved socket addresses are already bound. + pub fn bind(mut self, name: N, addrs: U, factory: F) -> io::Result where F: ServerServiceFactory, U: ToSocketAddrs, N: AsRef, { - let sockets = bind_addr(addr, self.backlog, &self.mptcp)?; + let sockets = bind_addr(addrs, self.backlog, &self.mptcp)?; - trace!("binding server to: {:?}", &sockets); + tracing::trace!("binding server to: {sockets:?}"); for lst in sockets { let token = self.next_token(); + self.factories.push(StreamNewService::create( name.as_ref().to_string(), token, factory.clone(), lst.local_addr()?, )); + self.sockets .push((token, name.as_ref().to_string(), MioListener::Tcp(lst))); } @@ -205,7 +229,12 @@ impl ServerBuilder { Ok(self) } - /// Add new service to the server. + /// Adds service to the server using a socket listener already bound. + /// + /// # Worker Count + /// + /// The `factory` will be instantiated multiple times in most scenarios. The number of + /// instantiations is: number of [`workers`](Self::workers()). pub fn listen>( mut self, name: N, @@ -237,7 +266,7 @@ impl ServerBuilder { if self.sockets.is_empty() { panic!("Server should have at least one bound socket"); } else { - info!("starting {} workers", self.threads); + tracing::info!("starting {} workers", self.threads); Server::new(self) } } @@ -251,7 +280,12 @@ impl ServerBuilder { #[cfg(unix)] impl ServerBuilder { - /// Add new unix domain service to the server. + /// Adds new service to the server using a UDS (unix domain socket) address. + /// + /// # Worker Count + /// + /// The `factory` will be instantiated multiple times in most scenarios. The number of + /// instantiations is: number of [`workers`](Self::workers()). pub fn bind_uds(self, name: N, addr: U, factory: F) -> io::Result where F: ServerServiceFactory, @@ -271,9 +305,14 @@ impl ServerBuilder { self.listen_uds(name, lst, factory) } - /// Add new unix domain service to the server. + /// Adds new service to the server using a UDS (unix domain socket) listener already bound. /// /// Useful when running as a systemd service and a socket FD is acquired externally. + /// + /// # Worker Count + /// + /// The `factory` will be instantiated multiple times in most scenarios. The number of + /// instantiations is: number of [`workers`](Self::workers()). pub fn listen_uds>( mut self, name: N, @@ -284,17 +323,22 @@ impl ServerBuilder { F: ServerServiceFactory, { use std::net::{IpAddr, Ipv4Addr}; + lst.set_nonblocking(true)?; + let token = self.next_token(); let addr = crate::socket::StdSocketAddr::new(IpAddr::V4(Ipv4Addr::new(127, 0, 0, 1)), 8080); + self.factories.push(StreamNewService::create( name.as_ref().to_string(), token, factory, addr, )); + self.sockets .push((token, name.as_ref().to_string(), MioListener::from(lst))); + Ok(self) } } diff --git a/justfile b/justfile index 05c641c2..f2e449d8 100644 --- a/justfile +++ b/justfile @@ -1,2 +1,11 @@ _list: @just --list + +# Document crates in workspace. +doc: + RUSTDOCFLAGS="--cfg=docsrs" cargo +nightly doc --no-deps --workspace --features=rustls,openssl + +# Document crates in workspace and watch for changes. +doc-watch: + RUSTDOCFLAGS="--cfg=docsrs" cargo +nightly doc --no-deps --workspace --features=rustls,openssl --open + cargo watch -- RUSTDOCFLAGS="--cfg=docsrs" cargo +nightly doc --no-deps --workspace --features=rustls,openssl From 09548c96b045227290d3494ca3fe3863912adfad Mon Sep 17 00:00:00 2001 From: Rob Ede Date: Sun, 29 Oct 2023 18:45:12 +0000 Subject: [PATCH 096/410] doc: fix doc references --- actix-rt/src/system.rs | 33 ++++++++++++++++----------------- actix-server/src/builder.rs | 4 +++- 2 files changed, 19 insertions(+), 18 deletions(-) diff --git a/actix-rt/src/system.rs b/actix-rt/src/system.rs index 8ff02c83..4c276beb 100644 --- a/actix-rt/src/system.rs +++ b/actix-rt/src/system.rs @@ -203,16 +203,20 @@ impl SystemRunner { .map_err(|err| io::Error::new(io::ErrorKind::Other, err)) } - /// Retrieves a reference to the underlying Actix runtime associated with this SystemRunner instance. + /// Retrieves a reference to the underlying [Actix runtime](crate::Runtime) associated with this + /// `SystemRunner` instance. /// - /// The Actix runtime is responsible for managing the event loop for an Actix system and executing asynchronous tasks. - /// This method provides access to the runtime, allowing direct interaction with its features. + /// The Actix runtime is responsible for managing the event loop for an Actix system and + /// executing asynchronous tasks. This method provides access to the runtime, allowing direct + /// interaction with its features. /// /// In a typical use case, you might need to share the same runtime between different - /// parts of your project. For example, some components might require a [`actix_rt::Runtime`] to spawn tasks on - /// the same runtime. + /// parts of your project. For example, some components might require a [`Runtime`] to spawn + /// tasks on the same runtime. /// - /// # Example + /// Read more in the documentation for [`Runtime`]. + /// + /// # Examples /// /// ``` /// let system_runner = actix_rt::System::new(); @@ -221,19 +225,14 @@ impl SystemRunner { /// // Use the runtime to spawn an async task or perform other operations /// ``` /// - /// Read more in the documentation for [`actix_rt::Runtime`] - /// - /// # Returns - /// - /// An immutable reference to the [`actix_rt::Runtime`] instance associated with this - /// [`actix_rt::SystemRunner`] instance. - /// /// # Note /// - /// While this method provides an immutable reference to the Actix runtime, which is safe to share across threads, - /// be aware that spawning blocking tasks on the Actix runtime could potentially impact system performance. - /// This is because the Actix runtime is responsible for driving the system, - /// and blocking tasks could delay other tasks in the run loop. + /// While this method provides an immutable reference to the Actix runtime, which is safe to + /// share across threads, be aware that spawning blocking tasks on the Actix runtime could + /// potentially impact system performance. This is because the Actix runtime is responsible for + /// driving the system, and blocking tasks could delay other tasks in the run loop. + /// + /// [`Runtime`]: crate::Runtime pub fn runtime(&self) -> &crate::runtime::Runtime { &self.rt } diff --git a/actix-server/src/builder.rs b/actix-server/src/builder.rs index 33da31c5..dcb05d44 100644 --- a/actix-server/src/builder.rs +++ b/actix-server/src/builder.rs @@ -13,7 +13,9 @@ use crate::{ /// Multipath TCP (MPTCP) preference. /// -/// Also see [`ServerBuilder::mptcp()`]. +/// Currently only useful on Linux. +/// +#[cfg_attr(target_os = "linux", doc = "Also see [`ServerBuilder::mptcp()`].")] #[derive(Debug, Clone)] pub enum MpTcp { /// MPTCP will not be used when binding sockets. From 3cd5d8b07af7341a466e10527bdabff1b300001e Mon Sep 17 00:00:00 2001 From: Rob Ede Date: Sun, 29 Oct 2023 18:47:38 +0000 Subject: [PATCH 097/410] doc: complete ServerBuilder::workers docs --- actix-server/src/builder.rs | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/actix-server/src/builder.rs b/actix-server/src/builder.rs index dcb05d44..bd5418c1 100644 --- a/actix-server/src/builder.rs +++ b/actix-server/src/builder.rs @@ -72,13 +72,14 @@ impl ServerBuilder { /// Sets number of workers to start. /// - /// `num` must be greater than 0. - /// - /// Note that the factory + /// See [`bind()`](Self::bind()) for more details on how worker count affects the number of + /// server factory instantiations. /// /// The default worker count is the determined by [`std::thread::available_parallelism()`]. See /// its documentation to determine what behavior you should expect when server is run. /// + /// `num` must be greater than 0. + /// /// # Panics /// /// Panics if `num` is 0. From 7d138f0c317ac652de0f1ec819909a4647982c0f Mon Sep 17 00:00:00 2001 From: Rob Ede Date: Sun, 29 Oct 2023 21:15:40 +0000 Subject: [PATCH 098/410] build: fix min version compat (#498) --- actix-macros/Cargo.toml | 1 + 1 file changed, 1 insertion(+) diff --git a/actix-macros/Cargo.toml b/actix-macros/Cargo.toml index 39f021e7..b96daeb9 100644 --- a/actix-macros/Cargo.toml +++ b/actix-macros/Cargo.toml @@ -26,6 +26,7 @@ quote = "1" syn = { version = "2", features = ["full"] } # minimal versions compat +[target.'cfg(any())'.dependencies] proc-macro2 = "1.0.60" [dev-dependencies] From 665dec456f14d9aff5014a88593fd6af782fdd28 Mon Sep 17 00:00:00 2001 From: Rob Ede Date: Sun, 29 Oct 2023 23:14:14 +0000 Subject: [PATCH 099/410] chore(local-waker): prepare release 0.1.4 --- local-waker/CHANGES.md | 2 ++ local-waker/Cargo.toml | 6 +++--- local-waker/README.md | 16 ++++++++++++++++ 3 files changed, 21 insertions(+), 3 deletions(-) create mode 100644 local-waker/README.md diff --git a/local-waker/CHANGES.md b/local-waker/CHANGES.md index 02112c90..c83d06d4 100644 --- a/local-waker/CHANGES.md +++ b/local-waker/CHANGES.md @@ -2,6 +2,8 @@ ## Unreleased +## 0.1.4 + - Minimum supported Rust version (MSRV) is now 1.65. ## 0.1.3 diff --git a/local-waker/Cargo.toml b/local-waker/Cargo.toml index 640c47e1..d6f25051 100644 --- a/local-waker/Cargo.toml +++ b/local-waker/Cargo.toml @@ -1,15 +1,15 @@ [package] name = "local-waker" -version = "0.1.3" +version = "0.1.4" description = "A synchronization primitive for thread-local task wakeup" authors = [ "Nikolay Kim ", "Rob Ede ", ] -repository = "https://github.com/actix/actix-net.git" +repository = "https://github.com/actix/actix-net" keywords = ["waker", "local", "futures", "no-std"] categories = ["asynchronous", "no-std"] -license = "MIT OR Apache-2.0" +license.workspace = true edition.workspace = true rust-version.workspace = true diff --git a/local-waker/README.md b/local-waker/README.md new file mode 100644 index 00000000..f82ca84b --- /dev/null +++ b/local-waker/README.md @@ -0,0 +1,16 @@ +# `local-waker` + +> A synchronization primitive for thread-local task wakeup. + + + +[![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) +![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) +![Download](https://img.shields.io/crates/d/local-waker.svg) +[![Chat on Discord](https://img.shields.io/discord/771444961383153695?label=chat&logo=discord)](https://discord.gg/NWpN5mmg3x) + + From 87440e5734ba148abb958b3014ab3e9446e6d8a9 Mon Sep 17 00:00:00 2001 From: Rob Ede Date: Sun, 29 Oct 2023 23:15:19 +0000 Subject: [PATCH 100/410] chore(local-channel): prepare release 0.1.5 --- local-channel/CHANGES.md | 4 ++++ local-channel/Cargo.toml | 2 +- local-channel/README.md | 16 ++++++++++++++++ 3 files changed, 21 insertions(+), 1 deletion(-) create mode 100644 local-channel/README.md diff --git a/local-channel/CHANGES.md b/local-channel/CHANGES.md index 9e7a01e4..3244f033 100644 --- a/local-channel/CHANGES.md +++ b/local-channel/CHANGES.md @@ -2,6 +2,10 @@ ## Unreleased +## 0.1.5 + +- No significant changes since `0.1.4`. + ## 0.1.4 - Minimum supported Rust version (MSRV) is now 1.65. diff --git a/local-channel/Cargo.toml b/local-channel/Cargo.toml index 45ee0179..613908e6 100644 --- a/local-channel/Cargo.toml +++ b/local-channel/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "local-channel" -version = "0.1.4" +version = "0.1.5" description = "A non-threadsafe multi-producer, single-consumer, futures-aware, FIFO queue" authors = [ "Nikolay Kim ", diff --git a/local-channel/README.md b/local-channel/README.md new file mode 100644 index 00000000..5a320383 --- /dev/null +++ b/local-channel/README.md @@ -0,0 +1,16 @@ +# `local-channel` + +> A non-threadsafe multi-producer, single-consumer, futures-aware, FIFO queue. + + + +[![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) +![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) +![Download](https://img.shields.io/crates/d/local-channel.svg) +[![Chat on Discord](https://img.shields.io/discord/771444961383153695?label=chat&logo=discord)](https://discord.gg/NWpN5mmg3x) + + From 392e5918208dbe3b864b919594b4e92008d0d9d0 Mon Sep 17 00:00:00 2001 From: Rob Ede Date: Sun, 29 Oct 2023 23:16:53 +0000 Subject: [PATCH 101/410] chore(local-channel): prepare release 0.1.5 --- bytestring/Cargo.toml | 2 +- bytestring/README.md | 2 +- bytestring/src/lib.rs | 4 +++- local-channel/src/lib.rs | 2 ++ 4 files changed, 7 insertions(+), 3 deletions(-) diff --git a/bytestring/Cargo.toml b/bytestring/Cargo.toml index f3efdbab..796e3cb3 100644 --- a/bytestring/Cargo.toml +++ b/bytestring/Cargo.toml @@ -1,11 +1,11 @@ [package] name = "bytestring" version = "1.3.0" +description = "A UTF-8 encoded read-only string using `Bytes` as storage" authors = [ "Nikolay Kim ", "Rob Ede ", ] -description = "An immutable UTF-8 encoded string using Bytes as storage" keywords = ["string", "bytes", "utf8", "web", "actix"] categories = ["no-std", "web-programming"] homepage = "https://actix.rs" diff --git a/bytestring/README.md b/bytestring/README.md index 9a53272d..dfc445d0 100644 --- a/bytestring/README.md +++ b/bytestring/README.md @@ -1,6 +1,6 @@ # `bytestring` -> A UTF-8 encoded read-only string using Bytes as storage. +> A UTF-8 encoded read-only string using `Bytes` as storage. diff --git a/bytestring/src/lib.rs b/bytestring/src/lib.rs index 9c0007a2..80ab085e 100644 --- a/bytestring/src/lib.rs +++ b/bytestring/src/lib.rs @@ -1,4 +1,6 @@ -//! A UTF-8 encoded read-only string using Bytes as storage. +//! A UTF-8 encoded read-only string using `Bytes` as storage. +//! +//! See docs for [`ByteString`]. #![no_std] #![deny(rust_2018_idioms, nonstandard_style)] diff --git a/local-channel/src/lib.rs b/local-channel/src/lib.rs index e3f493ad..f89bfdb4 100644 --- a/local-channel/src/lib.rs +++ b/local-channel/src/lib.rs @@ -1,4 +1,6 @@ //! Non-thread-safe channels. +//! +//! See docs for [`mpsc::channel()`]. #![deny(rust_2018_idioms, nonstandard_style)] #![warn(future_incompatible, missing_docs)] From 61b6e01b0224ef2eb6b96b6b8c1766bfbcac1787 Mon Sep 17 00:00:00 2001 From: Rob Ede Date: Sun, 29 Oct 2023 23:17:28 +0000 Subject: [PATCH 102/410] chore(bytestring): prepare release 1.3.1 --- bytestring/CHANGES.md | 4 ++++ bytestring/Cargo.toml | 2 +- bytestring/README.md | 4 ++-- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/bytestring/CHANGES.md b/bytestring/CHANGES.md index 270dae14..368ead4d 100644 --- a/bytestring/CHANGES.md +++ b/bytestring/CHANGES.md @@ -2,6 +2,10 @@ ## Unreleased +## 1.3.1 + +- No significant changes since `1.3.0`. + ## 1.3.0 - Implement `AsRef` for `ByteString`. diff --git a/bytestring/Cargo.toml b/bytestring/Cargo.toml index 796e3cb3..a328e5d7 100644 --- a/bytestring/Cargo.toml +++ b/bytestring/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "bytestring" -version = "1.3.0" +version = "1.3.1" description = "A UTF-8 encoded read-only string using `Bytes` as storage" authors = [ "Nikolay Kim ", diff --git a/bytestring/README.md b/bytestring/README.md index dfc445d0..2bfd3083 100644 --- a/bytestring/README.md +++ b/bytestring/README.md @@ -5,11 +5,11 @@ [![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.3.0)](https://docs.rs/bytestring/1.3.0) +[![Documentation](https://docs.rs/bytestring/badge.svg?version=1.3.1)](https://docs.rs/bytestring/1.3.1) [![Version](https://img.shields.io/badge/rustc-1.52+-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.3.0/status.svg)](https://deps.rs/crate/bytestring/1.3.0) +[![Dependency Status](https://deps.rs/crate/bytestring/1.3.1/status.svg)](https://deps.rs/crate/bytestring/1.3.1) ![Download](https://img.shields.io/crates/d/bytestring.svg) [![Chat on Discord](https://img.shields.io/discord/771444961383153695?label=chat&logo=discord)](https://discord.gg/NWpN5mmg3x) From f967562ac4f0173057b16320badb84b61450c353 Mon Sep 17 00:00:00 2001 From: Rob Ede Date: Mon, 30 Oct 2023 00:07:28 +0000 Subject: [PATCH 103/410] chore: specify external types for each crate (#496) --- .../workflows/{clippy-fmt.yml => lint.yml} | 23 +++++++++++++++++ actix-codec/Cargo.toml | 9 +++++++ actix-rt/Cargo.toml | 5 ++++ actix-server/Cargo.toml | 5 ++++ actix-tls/Cargo.toml | 8 ++++++ actix-tracing/Cargo.toml | 8 ++++++ bytestring/Cargo.toml | 8 +++++- justfile | 25 +++++++++++++++++++ local-channel/Cargo.toml | 6 +++++ 9 files changed, 96 insertions(+), 1 deletion(-) rename .github/workflows/{clippy-fmt.yml => lint.yml} (60%) diff --git a/.github/workflows/clippy-fmt.yml b/.github/workflows/lint.yml similarity index 60% rename from .github/workflows/clippy-fmt.yml rename to .github/workflows/lint.yml index dab27736..3f75d624 100644 --- a/.github/workflows/clippy-fmt.yml +++ b/.github/workflows/lint.yml @@ -41,3 +41,26 @@ jobs: reporter: 'github-pr-check' github_token: ${{ secrets.GITHUB_TOKEN }} clippy_flags: --workspace --all-features --tests --examples --bins -- -Dclippy::todo -Aunknown_lints + + check-external-types: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - name: Install Rust (nightly-2023-10-10) + uses: actions-rust-lang/setup-rust-toolchain@v1.5.0 + with: + toolchain: nightly-2023-10-10 + + - name: Install just + uses: taiki-e/install-action@v2.20.2 + with: + tool: just + + - name: Install cargo-check-external-types + uses: taiki-e/cache-cargo-install-action@v1.2.2 + with: + tool: cargo-check-external-types@0.1.10 + + - name: check external types + run: just check-external-types-all diff --git a/actix-codec/Cargo.toml b/actix-codec/Cargo.toml index f2261827..91fefc7c 100644 --- a/actix-codec/Cargo.toml +++ b/actix-codec/Cargo.toml @@ -13,6 +13,15 @@ license = "MIT OR Apache-2.0" edition.workspace = true rust-version.workspace = true +[package.metadata.cargo_check_external_types] +allowed_external_types = [ + "bytes::*", + "futures_core::*", + "futures_sink::*", + "tokio::*", + "tokio_util::*", +] + [dependencies] bitflags = "2" bytes = "1" diff --git a/actix-rt/Cargo.toml b/actix-rt/Cargo.toml index dd460033..4e55eb1b 100644 --- a/actix-rt/Cargo.toml +++ b/actix-rt/Cargo.toml @@ -14,6 +14,11 @@ license = "MIT OR Apache-2.0" edition.workspace = true rust-version.workspace = true +[package.metadata.cargo_check_external_types] +allowed_external_types = [ + "tokio::*", +] + [features] default = ["macros"] macros = ["actix-macros"] diff --git a/actix-server/Cargo.toml b/actix-server/Cargo.toml index 8f0e8982..3a939218 100755 --- a/actix-server/Cargo.toml +++ b/actix-server/Cargo.toml @@ -15,6 +15,11 @@ license = "MIT OR Apache-2.0" edition.workspace = true rust-version.workspace = true +[package.metadata.cargo_check_external_types] +allowed_external_types = [ + "tokio::*", +] + [features] default = [] io-uring = ["tokio-uring", "actix-rt/io-uring"] diff --git a/actix-tls/Cargo.toml b/actix-tls/Cargo.toml index e023c984..7d0ebfa5 100755 --- a/actix-tls/Cargo.toml +++ b/actix-tls/Cargo.toml @@ -17,6 +17,14 @@ rust-version.workspace = true all-features = true rustdoc-args = ["--cfg", "docsrs"] +[package.metadata.cargo_check_external_types] +allowed_external_types = [ + "actix_service::*", + "actix_utils::*", + "futures_core::*", + "tokio::*", +] + [package.metadata.cargo-machete] ignored = [ "rustls_021", # specified to force version with add_trust_anchors method diff --git a/actix-tracing/Cargo.toml b/actix-tracing/Cargo.toml index 829a4b85..0c64e9ab 100644 --- a/actix-tracing/Cargo.toml +++ b/actix-tracing/Cargo.toml @@ -12,6 +12,14 @@ license = "MIT OR Apache-2.0" edition.workspace = true rust-version.workspace = true +[package.metadata.cargo_check_external_types] +allowed_external_types = [ + "actix_service::*", + "actix_utils::*", + "tracing::*", + "tracing_futures::*", +] + [dependencies] actix-service = "2" actix-utils = "3" diff --git a/bytestring/Cargo.toml b/bytestring/Cargo.toml index a328e5d7..dabfb74d 100644 --- a/bytestring/Cargo.toml +++ b/bytestring/Cargo.toml @@ -9,11 +9,17 @@ authors = [ keywords = ["string", "bytes", "utf8", "web", "actix"] categories = ["no-std", "web-programming"] homepage = "https://actix.rs" -repository = "https://github.com/actix/actix-net.git" +repository = "https://github.com/actix/actix-net" license = "MIT OR Apache-2.0" edition.workspace = true rust-version.workspace = true +[package.metadata.cargo_check_external_types] +allowed_external_types = [ + "bytes::*", + "serde::*", +] + [dependencies] bytes = { version = "1.2", default-features = false } serde = { version = "1.0", optional = true } diff --git a/justfile b/justfile index f2e449d8..1dbc0b89 100644 --- a/justfile +++ b/justfile @@ -9,3 +9,28 @@ doc: doc-watch: RUSTDOCFLAGS="--cfg=docsrs" cargo +nightly doc --no-deps --workspace --features=rustls,openssl --open cargo watch -- RUSTDOCFLAGS="--cfg=docsrs" cargo +nightly doc --no-deps --workspace --features=rustls,openssl + +# Check for unintentional external type exposure on all crates in workspace. +check-external-types-all: + #!/usr/bin/env bash + set -euo pipefail + for f in $(find . -mindepth 2 -maxdepth 2 -name Cargo.toml); do + echo "Checking for $f" + just check-external-types-manifest "$f" || true + echo + echo + done + +# Check for unintentional external type exposure on all crates in workspace. +check-external-types-all-table: + #!/usr/bin/env bash + set -euo pipefail + for f in $(find . -mindepth 2 -maxdepth 2 -name Cargo.toml); do + echo + echo "Checking for $f" + just check-external-types-manifest "$f" --output-format=markdown-table + done + +# Check for unintentional external type exposure on a crate. +check-external-types-manifest manifest_path *extra_args: + cargo +nightly check-external-types --manifest-path "{{manifest_path}}" {{extra_args}} diff --git a/local-channel/Cargo.toml b/local-channel/Cargo.toml index 613908e6..9577fc2f 100644 --- a/local-channel/Cargo.toml +++ b/local-channel/Cargo.toml @@ -12,6 +12,12 @@ license.workspace = true edition.workspace = true rust-version.workspace = true +[package.metadata.cargo_check_external_types] +allowed_external_types = [ + "futures_core::*", + "futures_sink::*", +] + [dependencies] futures-core = "0.3.17" futures-sink = "0.3.17" From e9c2a0c318e0baca2723f79ef70ad6652f68c8c6 Mon Sep 17 00:00:00 2001 From: Rob Ede Date: Mon, 30 Oct 2023 00:26:39 +0000 Subject: [PATCH 104/410] ci: fix check-external-types recipe --- justfile | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/justfile b/justfile index 1dbc0b89..3895e03d 100644 --- a/justfile +++ b/justfile @@ -14,18 +14,19 @@ doc-watch: check-external-types-all: #!/usr/bin/env bash set -euo pipefail - for f in $(find . -mindepth 2 -maxdepth 2 -name Cargo.toml); do - echo "Checking for $f" - just check-external-types-manifest "$f" || true + exit=0 + for f in $(find . -mindepth 2 -maxdepth 2 -name Cargo.toml | grep -vE "\-codegen/|\-derive/|\-macros/"); do + if ! just check-external-types-manifest "$f"; then exit=1; fi echo echo done + exit $exit # Check for unintentional external type exposure on all crates in workspace. check-external-types-all-table: #!/usr/bin/env bash set -euo pipefail - for f in $(find . -mindepth 2 -maxdepth 2 -name Cargo.toml); do + for f in $(find . -mindepth 2 -maxdepth 2 -name Cargo.toml | grep -vE "\-codegen/|\-derive/|\-macros/"); do echo echo "Checking for $f" just check-external-types-manifest "$f" --output-format=markdown-table From 19d03f0454ef9d17f79c9edd98413e01677aad76 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 30 Oct 2023 19:03:12 +0000 Subject: [PATCH 105/410] Bump taiki-e/install-action from 2.20.2 to 2.21.3 (#500) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/ci-post-merge.yml | 6 +++--- .github/workflows/ci.yml | 2 +- .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 c6b46ea1..4e17d88c 100644 --- a/.github/workflows/ci-post-merge.yml +++ b/.github/workflows/ci-post-merge.yml @@ -56,7 +56,7 @@ jobs: with: toolchain: ${{ matrix.version }} - - uses: taiki-e/install-action@v2.21.2 + - uses: taiki-e/install-action@v2.21.3 with: tool: cargo-hack @@ -116,7 +116,7 @@ jobs: toolchain: nightly - name: Install cargo-hack & cargo-minimal-versions - uses: taiki-e/install-action@v2.21.2 + uses: taiki-e/install-action@v2.21.3 with: tool: cargo-hack,cargo-minimal-versions @@ -133,7 +133,7 @@ jobs: uses: actions-rust-lang/setup-rust-toolchain@v1.5.0 - name: Install cargo-nextest - uses: taiki-e/install-action@v2.21.2 + uses: taiki-e/install-action@v2.21.3 with: tool: cargo-nextest diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 855420e2..6a1ccaf5 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -57,7 +57,7 @@ jobs: with: toolchain: ${{ matrix.version.version }} - - uses: taiki-e/install-action@v2.21.2 + - uses: taiki-e/install-action@v2.21.3 with: tool: cargo-hack diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml index b07658df..73931c23 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.21.2 + uses: taiki-e/install-action@v2.21.3 with: tool: cargo-llvm-cov diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 3f75d624..8492e746 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -53,7 +53,7 @@ jobs: toolchain: nightly-2023-10-10 - name: Install just - uses: taiki-e/install-action@v2.20.2 + uses: taiki-e/install-action@v2.21.3 with: tool: just From f632ef2ba8184149e9fa73cbd4b4be4a14642032 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 30 Oct 2023 19:50:39 +0000 Subject: [PATCH 106/410] Bump taiki-e/cache-cargo-install-action from 1.2.2 to 1.3.0 (#499) 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 8492e746..e7bfb3d5 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -58,7 +58,7 @@ jobs: tool: just - name: Install cargo-check-external-types - uses: taiki-e/cache-cargo-install-action@v1.2.2 + uses: taiki-e/cache-cargo-install-action@v1.3.0 with: tool: cargo-check-external-types@0.1.10 From df12c10a3f8b3c82a11b31278bc717d54da2bf74 Mon Sep 17 00:00:00 2001 From: Rob Ede Date: Mon, 6 Nov 2023 22:12:58 +0000 Subject: [PATCH 107/410] fix check external types --- .github/workflows/lint.yml | 2 +- justfile | 12 ++++++------ 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index e7bfb3d5..af2ded71 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -63,4 +63,4 @@ jobs: tool: cargo-check-external-types@0.1.10 - name: check external types - run: just check-external-types-all + run: just check-external-types-all +nightly-2023-10-10 diff --git a/justfile b/justfile index 3895e03d..72331f9e 100644 --- a/justfile +++ b/justfile @@ -11,27 +11,27 @@ doc-watch: cargo watch -- RUSTDOCFLAGS="--cfg=docsrs" cargo +nightly doc --no-deps --workspace --features=rustls,openssl # Check for unintentional external type exposure on all crates in workspace. -check-external-types-all: +check-external-types-all toolchain="+nightly": #!/usr/bin/env bash set -euo pipefail exit=0 for f in $(find . -mindepth 2 -maxdepth 2 -name Cargo.toml | grep -vE "\-codegen/|\-derive/|\-macros/"); do - if ! just check-external-types-manifest "$f"; then exit=1; fi + if ! just check-external-types-manifest "$f" {{toolchain}}; then exit=1; fi echo echo done exit $exit # Check for unintentional external type exposure on all crates in workspace. -check-external-types-all-table: +check-external-types-all-table toolchain="+nightly": #!/usr/bin/env bash set -euo pipefail for f in $(find . -mindepth 2 -maxdepth 2 -name Cargo.toml | grep -vE "\-codegen/|\-derive/|\-macros/"); do echo echo "Checking for $f" - just check-external-types-manifest "$f" --output-format=markdown-table + just check-external-types-manifest "$f" {{toolchain}} --output-format=markdown-table done # Check for unintentional external type exposure on a crate. -check-external-types-manifest manifest_path *extra_args: - cargo +nightly check-external-types --manifest-path "{{manifest_path}}" {{extra_args}} +check-external-types-manifest manifest_path toolchain="+nightly" *extra_args="": + cargo {{toolchain}} check-external-types --manifest-path "{{manifest_path}}" {{extra_args}} From 01f9910e7c7d8953f767fa14edad2f232f0c877f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 6 Nov 2023 22:19:09 +0000 Subject: [PATCH 108/410] Bump taiki-e/install-action from 2.21.3 to 2.21.7 (#501) Bumps [taiki-e/install-action](https://github.com/taiki-e/install-action) from 2.21.3 to 2.21.7. - [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.21.3...v2.21.7) --- updated-dependencies: - dependency-name: taiki-e/install-action 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/ci-post-merge.yml | 6 +++--- .github/workflows/ci.yml | 2 +- .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 4e17d88c..259ae003 100644 --- a/.github/workflows/ci-post-merge.yml +++ b/.github/workflows/ci-post-merge.yml @@ -56,7 +56,7 @@ jobs: with: toolchain: ${{ matrix.version }} - - uses: taiki-e/install-action@v2.21.3 + - uses: taiki-e/install-action@v2.21.7 with: tool: cargo-hack @@ -116,7 +116,7 @@ jobs: toolchain: nightly - name: Install cargo-hack & cargo-minimal-versions - uses: taiki-e/install-action@v2.21.3 + uses: taiki-e/install-action@v2.21.7 with: tool: cargo-hack,cargo-minimal-versions @@ -133,7 +133,7 @@ jobs: uses: actions-rust-lang/setup-rust-toolchain@v1.5.0 - name: Install cargo-nextest - uses: taiki-e/install-action@v2.21.3 + uses: taiki-e/install-action@v2.21.7 with: tool: cargo-nextest diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 6a1ccaf5..18724a2d 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -57,7 +57,7 @@ jobs: with: toolchain: ${{ matrix.version.version }} - - uses: taiki-e/install-action@v2.21.3 + - uses: taiki-e/install-action@v2.21.7 with: tool: cargo-hack diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml index 73931c23..ed2ef99a 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.21.3 + uses: taiki-e/install-action@v2.21.7 with: tool: cargo-llvm-cov diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index af2ded71..32d9d4ea 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -53,7 +53,7 @@ jobs: toolchain: nightly-2023-10-10 - name: Install just - uses: taiki-e/install-action@v2.21.3 + uses: taiki-e/install-action@v2.21.7 with: tool: just From 4067fbe8f018eae1eeb0ef13ca95bfb05c57b9d2 Mon Sep 17 00:00:00 2001 From: Rob Ede Date: Mon, 6 Nov 2023 22:19:01 +0000 Subject: [PATCH 109/410] chore: fix check-external-types for rt --- actix-rt/Cargo.toml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/actix-rt/Cargo.toml b/actix-rt/Cargo.toml index 4e55eb1b..49c96eae 100644 --- a/actix-rt/Cargo.toml +++ b/actix-rt/Cargo.toml @@ -8,7 +8,7 @@ authors = [ description = "Tokio-based single-threaded async runtime for the Actix ecosystem" keywords = ["async", "futures", "io", "runtime"] homepage = "https://actix.rs" -repository = "https://github.com/actix/actix-net.git" +repository = "https://github.com/actix/actix-net" categories = ["network-programming", "asynchronous"] license = "MIT OR Apache-2.0" edition.workspace = true @@ -16,6 +16,7 @@ rust-version.workspace = true [package.metadata.cargo_check_external_types] allowed_external_types = [ + "actix_macros::*", "tokio::*", ] From 5515a37002107d241c2f33803afdc3af451d15ad Mon Sep 17 00:00:00 2001 From: Rob Ede Date: Mon, 6 Nov 2023 23:53:36 +0000 Subject: [PATCH 110/410] ci: run on merge groups --- .github/workflows/ci.yml | 1 + .github/workflows/lint.yml | 4 +++- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 18724a2d..c8a1a0e2 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -2,6 +2,7 @@ name: CI on: pull_request: {} + merge_group: { types: [checks_requested] } push: { branches: [master] } permissions: diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 32d9d4ea..40522c78 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -1,6 +1,8 @@ name: Lint -on: [pull_request] +on: + pull_request: {} + merge_group: { types: [checks_requested] } permissions: contents: read From 2d9b147cc39ffc3379083a5cd7521687e57067b4 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 13 Nov 2023 19:29:01 +0000 Subject: [PATCH 111/410] Bump taiki-e/install-action from 2.21.7 to 2.21.11 (#502) Bumps [taiki-e/install-action](https://github.com/taiki-e/install-action) from 2.21.7 to 2.21.11. - [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.21.7...v2.21.11) --- updated-dependencies: - dependency-name: taiki-e/install-action 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/ci-post-merge.yml | 6 +++--- .github/workflows/ci.yml | 2 +- .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 259ae003..0ef1ff3d 100644 --- a/.github/workflows/ci-post-merge.yml +++ b/.github/workflows/ci-post-merge.yml @@ -56,7 +56,7 @@ jobs: with: toolchain: ${{ matrix.version }} - - uses: taiki-e/install-action@v2.21.7 + - uses: taiki-e/install-action@v2.21.11 with: tool: cargo-hack @@ -116,7 +116,7 @@ jobs: toolchain: nightly - name: Install cargo-hack & cargo-minimal-versions - uses: taiki-e/install-action@v2.21.7 + uses: taiki-e/install-action@v2.21.11 with: tool: cargo-hack,cargo-minimal-versions @@ -133,7 +133,7 @@ jobs: uses: actions-rust-lang/setup-rust-toolchain@v1.5.0 - name: Install cargo-nextest - uses: taiki-e/install-action@v2.21.7 + uses: taiki-e/install-action@v2.21.11 with: tool: cargo-nextest diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index c8a1a0e2..53f6cc9d 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -58,7 +58,7 @@ jobs: with: toolchain: ${{ matrix.version.version }} - - uses: taiki-e/install-action@v2.21.7 + - uses: taiki-e/install-action@v2.21.11 with: tool: cargo-hack diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml index ed2ef99a..7d696b8a 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.21.7 + uses: taiki-e/install-action@v2.21.11 with: tool: cargo-llvm-cov diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 40522c78..4c510570 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -55,7 +55,7 @@ jobs: toolchain: nightly-2023-10-10 - name: Install just - uses: taiki-e/install-action@v2.21.7 + uses: taiki-e/install-action@v2.21.11 with: tool: just From 2a4df30c637b3fa396844577d3bc78f806a160a0 Mon Sep 17 00:00:00 2001 From: Rob Ede Date: Mon, 20 Nov 2023 18:37:11 +0000 Subject: [PATCH 112/410] chore(rt): remove hyper example --- actix-rt/Cargo.toml | 1 - actix-rt/examples/hyper.rs | 29 ----------------------------- 2 files changed, 30 deletions(-) delete mode 100644 actix-rt/examples/hyper.rs diff --git a/actix-rt/Cargo.toml b/actix-rt/Cargo.toml index 49c96eae..f3993606 100644 --- a/actix-rt/Cargo.toml +++ b/actix-rt/Cargo.toml @@ -37,4 +37,3 @@ tokio-uring = { version = "0.4", optional = true } [dev-dependencies] tokio = { version = "1.23.1", features = ["full"] } -hyper = { version = "0.14.10", default-features = false, features = ["server", "tcp", "http1"] } diff --git a/actix-rt/examples/hyper.rs b/actix-rt/examples/hyper.rs deleted file mode 100644 index 41c5a7d8..00000000 --- a/actix-rt/examples/hyper.rs +++ /dev/null @@ -1,29 +0,0 @@ -use std::{convert::Infallible, net::SocketAddr}; - -use hyper::{ - service::{make_service_fn, service_fn}, - Body, Request, Response, Server, -}; - -async fn handle(_req: Request) -> Result, Infallible> { - Ok(Response::new(Body::from("Hello World"))) -} - -fn main() { - actix_rt::System::with_tokio_rt(|| { - tokio::runtime::Builder::new_multi_thread() - .enable_all() - .build() - .unwrap() - }) - .block_on(async { - let make_service = - make_service_fn(|_conn| async { Ok::<_, Infallible>(service_fn(handle)) }); - - let server = Server::bind(&SocketAddr::from(([127, 0, 0, 1], 3000))).serve(make_service); - - if let Err(err) = server.await { - eprintln!("server error: {}", err); - } - }) -} From ef716a84885a04020c17a2cf269dfc8988f732c4 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 20 Nov 2023 19:13:51 +0000 Subject: [PATCH 113/410] Bump taiki-e/install-action from 2.21.11 to 2.21.17 (#505) Bumps [taiki-e/install-action](https://github.com/taiki-e/install-action) from 2.21.11 to 2.21.17. - [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.21.11...v2.21.17) --- updated-dependencies: - dependency-name: taiki-e/install-action 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/ci-post-merge.yml | 6 +++--- .github/workflows/ci.yml | 2 +- .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 0ef1ff3d..b1920d1e 100644 --- a/.github/workflows/ci-post-merge.yml +++ b/.github/workflows/ci-post-merge.yml @@ -56,7 +56,7 @@ jobs: with: toolchain: ${{ matrix.version }} - - uses: taiki-e/install-action@v2.21.11 + - uses: taiki-e/install-action@v2.21.17 with: tool: cargo-hack @@ -116,7 +116,7 @@ jobs: toolchain: nightly - name: Install cargo-hack & cargo-minimal-versions - uses: taiki-e/install-action@v2.21.11 + uses: taiki-e/install-action@v2.21.17 with: tool: cargo-hack,cargo-minimal-versions @@ -133,7 +133,7 @@ jobs: uses: actions-rust-lang/setup-rust-toolchain@v1.5.0 - name: Install cargo-nextest - uses: taiki-e/install-action@v2.21.11 + uses: taiki-e/install-action@v2.21.17 with: tool: cargo-nextest diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 53f6cc9d..37076859 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -58,7 +58,7 @@ jobs: with: toolchain: ${{ matrix.version.version }} - - uses: taiki-e/install-action@v2.21.11 + - uses: taiki-e/install-action@v2.21.17 with: tool: cargo-hack diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml index 7d696b8a..4e02735c 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.21.11 + uses: taiki-e/install-action@v2.21.17 with: tool: cargo-llvm-cov diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 4c510570..03de9cce 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -55,7 +55,7 @@ jobs: toolchain: nightly-2023-10-10 - name: Install just - uses: taiki-e/install-action@v2.21.11 + uses: taiki-e/install-action@v2.21.17 with: tool: just From 4c12b81492e4f8ab0c1e0158387beb5c8f180514 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 27 Nov 2023 20:16:33 +0000 Subject: [PATCH 114/410] Bump taiki-e/install-action from 2.21.17 to 2.21.20 (#507) Bumps [taiki-e/install-action](https://github.com/taiki-e/install-action) from 2.21.17 to 2.21.20. - [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.21.17...v2.21.20) --- updated-dependencies: - dependency-name: taiki-e/install-action 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/ci-post-merge.yml | 6 +++--- .github/workflows/ci.yml | 2 +- .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 b1920d1e..b70c31d1 100644 --- a/.github/workflows/ci-post-merge.yml +++ b/.github/workflows/ci-post-merge.yml @@ -56,7 +56,7 @@ jobs: with: toolchain: ${{ matrix.version }} - - uses: taiki-e/install-action@v2.21.17 + - uses: taiki-e/install-action@v2.21.20 with: tool: cargo-hack @@ -116,7 +116,7 @@ jobs: toolchain: nightly - name: Install cargo-hack & cargo-minimal-versions - uses: taiki-e/install-action@v2.21.17 + uses: taiki-e/install-action@v2.21.20 with: tool: cargo-hack,cargo-minimal-versions @@ -133,7 +133,7 @@ jobs: uses: actions-rust-lang/setup-rust-toolchain@v1.5.0 - name: Install cargo-nextest - uses: taiki-e/install-action@v2.21.17 + uses: taiki-e/install-action@v2.21.20 with: tool: cargo-nextest diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 37076859..e95c9d01 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -58,7 +58,7 @@ jobs: with: toolchain: ${{ matrix.version.version }} - - uses: taiki-e/install-action@v2.21.17 + - uses: taiki-e/install-action@v2.21.20 with: tool: cargo-hack diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml index 4e02735c..0cc26052 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.21.17 + uses: taiki-e/install-action@v2.21.20 with: tool: cargo-llvm-cov diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 03de9cce..4cfbd39a 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -55,7 +55,7 @@ jobs: toolchain: nightly-2023-10-10 - name: Install just - uses: taiki-e/install-action@v2.21.17 + uses: taiki-e/install-action@v2.21.20 with: tool: just From 8fc2253c61d792e58aac50249aaa426274c69c65 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 4 Dec 2023 19:15:50 +0000 Subject: [PATCH 115/410] Bump actions-rust-lang/setup-rust-toolchain from 1.5.0 to 1.6.0 (#510) Bumps [actions-rust-lang/setup-rust-toolchain](https://github.com/actions-rust-lang/setup-rust-toolchain) from 1.5.0 to 1.6.0. - [Release notes](https://github.com/actions-rust-lang/setup-rust-toolchain/releases) - [Changelog](https://github.com/actions-rust-lang/setup-rust-toolchain/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions-rust-lang/setup-rust-toolchain/compare/v1.5.0...v1.6.0) --- updated-dependencies: - dependency-name: actions-rust-lang/setup-rust-toolchain 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 | 6 +++--- .github/workflows/ci.yml | 4 ++-- .github/workflows/coverage.yml | 2 +- .github/workflows/lint.yml | 6 +++--- .github/workflows/upload-doc.yml | 2 +- 5 files changed, 10 insertions(+), 10 deletions(-) diff --git a/.github/workflows/ci-post-merge.yml b/.github/workflows/ci-post-merge.yml index b70c31d1..bf1a3d0f 100644 --- a/.github/workflows/ci-post-merge.yml +++ b/.github/workflows/ci-post-merge.yml @@ -52,7 +52,7 @@ jobs: echo 'OPENSSL_DIR=C:\Program Files\OpenSSL' | Out-File -FilePath $env:GITHUB_ENV -Append - name: Install Rust (${{ matrix.version }}) - uses: actions-rust-lang/setup-rust-toolchain@v1.5.0 + uses: actions-rust-lang/setup-rust-toolchain@v1.6.0 with: toolchain: ${{ matrix.version }} @@ -111,7 +111,7 @@ jobs: - uses: actions/checkout@v4 - name: Install Rust (nightly) - uses: actions-rust-lang/setup-rust-toolchain@v1.5.0 + uses: actions-rust-lang/setup-rust-toolchain@v1.6.0 with: toolchain: nightly @@ -130,7 +130,7 @@ jobs: - uses: actions/checkout@v4 - name: Install Rust - uses: actions-rust-lang/setup-rust-toolchain@v1.5.0 + uses: actions-rust-lang/setup-rust-toolchain@v1.6.0 - name: Install cargo-nextest uses: taiki-e/install-action@v2.21.20 diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index e95c9d01..d8a82634 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -54,7 +54,7 @@ jobs: echo 'OPENSSL_DIR=C:\Program Files\OpenSSL' | Out-File -FilePath $env:GITHUB_ENV -Append - name: Install Rust (${{ matrix.version.name }}) - uses: actions-rust-lang/setup-rust-toolchain@v1.5.0 + uses: actions-rust-lang/setup-rust-toolchain@v1.6.0 with: toolchain: ${{ matrix.version.version }} @@ -128,7 +128,7 @@ jobs: - uses: actions/checkout@v4 - name: Install Rust (nightly) - uses: actions-rust-lang/setup-rust-toolchain@v1.5.0 + uses: actions-rust-lang/setup-rust-toolchain@v1.6.0 with: toolchain: nightly diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml index 0cc26052..cdb7918a 100644 --- a/.github/workflows/coverage.yml +++ b/.github/workflows/coverage.yml @@ -18,7 +18,7 @@ jobs: - uses: actions/checkout@v4 - name: Install Rust - uses: actions-rust-lang/setup-rust-toolchain@v1.5.0 + uses: actions-rust-lang/setup-rust-toolchain@v1.6.0 with: components: llvm-tools-preview diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 4cfbd39a..bfbfd4b8 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -18,7 +18,7 @@ jobs: steps: - uses: actions/checkout@v4 - - uses: actions-rust-lang/setup-rust-toolchain@v1.5.0 + - uses: actions-rust-lang/setup-rust-toolchain@v1.6.0 with: toolchain: nightly components: rustfmt @@ -35,7 +35,7 @@ jobs: steps: - uses: actions/checkout@v4 - - uses: actions-rust-lang/setup-rust-toolchain@v1.5.0 + - uses: actions-rust-lang/setup-rust-toolchain@v1.6.0 with: { components: clippy } - uses: giraffate/clippy-action@v1.0.1 @@ -50,7 +50,7 @@ jobs: - uses: actions/checkout@v4 - name: Install Rust (nightly-2023-10-10) - uses: actions-rust-lang/setup-rust-toolchain@v1.5.0 + uses: actions-rust-lang/setup-rust-toolchain@v1.6.0 with: toolchain: nightly-2023-10-10 diff --git a/.github/workflows/upload-doc.yml b/.github/workflows/upload-doc.yml index f54fdf6a..30a537f8 100644 --- a/.github/workflows/upload-doc.yml +++ b/.github/workflows/upload-doc.yml @@ -20,7 +20,7 @@ jobs: steps: - uses: actions/checkout@v4 - - uses: actions-rust-lang/setup-rust-toolchain@v1.5.0 + - uses: actions-rust-lang/setup-rust-toolchain@v1.6.0 with: { toolchain: nightly } - name: Build Docs From b526197a9a66615c4e5d2d3e58af47105b878f38 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 4 Dec 2023 19:15:52 +0000 Subject: [PATCH 116/410] Bump JamesIves/github-pages-deploy-action from 4.4.3 to 4.5.0 (#511) Bumps [JamesIves/github-pages-deploy-action](https://github.com/jamesives/github-pages-deploy-action) from 4.4.3 to 4.5.0. - [Release notes](https://github.com/jamesives/github-pages-deploy-action/releases) - [Commits](https://github.com/jamesives/github-pages-deploy-action/compare/v4.4.3...v4.5.0) --- updated-dependencies: - dependency-name: JamesIves/github-pages-deploy-action 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/upload-doc.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/upload-doc.yml b/.github/workflows/upload-doc.yml index 30a537f8..3a97ddc7 100644 --- a/.github/workflows/upload-doc.yml +++ b/.github/workflows/upload-doc.yml @@ -30,7 +30,7 @@ jobs: run: echo '' > target/doc/index.html - name: Deploy to GitHub Pages - uses: JamesIves/github-pages-deploy-action@v4.4.3 + uses: JamesIves/github-pages-deploy-action@v4.5.0 with: folder: target/doc single-commit: true From 923a4439506d014f3d70e13a2231941799b6669c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 4 Dec 2023 19:15:55 +0000 Subject: [PATCH 117/410] Bump taiki-e/install-action from 2.21.20 to 2.21.26 (#512) Bumps [taiki-e/install-action](https://github.com/taiki-e/install-action) from 2.21.20 to 2.21.26. - [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.21.20...v2.21.26) --- updated-dependencies: - dependency-name: taiki-e/install-action 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/ci-post-merge.yml | 6 +++--- .github/workflows/ci.yml | 2 +- .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 bf1a3d0f..43b0961f 100644 --- a/.github/workflows/ci-post-merge.yml +++ b/.github/workflows/ci-post-merge.yml @@ -56,7 +56,7 @@ jobs: with: toolchain: ${{ matrix.version }} - - uses: taiki-e/install-action@v2.21.20 + - uses: taiki-e/install-action@v2.21.26 with: tool: cargo-hack @@ -116,7 +116,7 @@ jobs: toolchain: nightly - name: Install cargo-hack & cargo-minimal-versions - uses: taiki-e/install-action@v2.21.20 + uses: taiki-e/install-action@v2.21.26 with: tool: cargo-hack,cargo-minimal-versions @@ -133,7 +133,7 @@ jobs: uses: actions-rust-lang/setup-rust-toolchain@v1.6.0 - name: Install cargo-nextest - uses: taiki-e/install-action@v2.21.20 + uses: taiki-e/install-action@v2.21.26 with: tool: cargo-nextest diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index d8a82634..cf3e15c5 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -58,7 +58,7 @@ jobs: with: toolchain: ${{ matrix.version.version }} - - uses: taiki-e/install-action@v2.21.20 + - uses: taiki-e/install-action@v2.21.26 with: tool: cargo-hack diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml index cdb7918a..f470dff1 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.21.20 + uses: taiki-e/install-action@v2.21.26 with: tool: cargo-llvm-cov diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index bfbfd4b8..2aac0f7c 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -55,7 +55,7 @@ jobs: toolchain: nightly-2023-10-10 - name: Install just - uses: taiki-e/install-action@v2.21.20 + uses: taiki-e/install-action@v2.21.26 with: tool: just From 1945fa06755555dfd96eb1de5b02d6ee40a81f22 Mon Sep 17 00:00:00 2001 From: morenol <22335041+morenol@users.noreply.github.com> Date: Tue, 5 Dec 2023 20:18:17 -0400 Subject: [PATCH 118/410] feat: added suport to `http` crate `1.0` (#508) * chore: use same feature * test: add test for new http version added * stylistic review --------- Co-authored-by: Luis Moreno Co-authored-by: Rob Ede --- actix-tls/CHANGES.md | 2 ++ actix-tls/Cargo.toml | 3 ++- actix-tls/src/connect/uri.rs | 17 +++++++++++++++-- actix-tls/tests/test_connect.rs | 17 +++++++++++++++++ 4 files changed, 36 insertions(+), 3 deletions(-) diff --git a/actix-tls/CHANGES.md b/actix-tls/CHANGES.md index 295d150b..25e8e56e 100644 --- a/actix-tls/CHANGES.md +++ b/actix-tls/CHANGES.md @@ -2,6 +2,8 @@ ## Unreleased +- Added support to `http` crate version `1.0`. + ## 3.1.1 - Fix `rustls` v0.21 version requirement. diff --git a/actix-tls/Cargo.toml b/actix-tls/Cargo.toml index 7d0ebfa5..3b8d3ae8 100755 --- a/actix-tls/Cargo.toml +++ b/actix-tls/Cargo.toml @@ -56,7 +56,7 @@ rustls-0_21 = ["tokio-rustls-024", "webpki-roots-025"] native-tls = ["tokio-native-tls"] # support http::Uri as connect address -uri = ["http"] +uri = ["http", "http-1"] [dependencies] actix-rt = { version = "2.2", default-features = false } @@ -72,6 +72,7 @@ tracing = { version = "0.1.30", default-features = false, features = ["log"] } # uri http = { version = "0.2.3", optional = true } +http-1 = { package = "http", version = "1", optional = true } # openssl tls-openssl = { package = "openssl", version = "0.10.55", optional = true } diff --git a/actix-tls/src/connect/uri.rs b/actix-tls/src/connect/uri.rs index b1c7f0fe..d260bab9 100644 --- a/actix-tls/src/connect/uri.rs +++ b/actix-tls/src/connect/uri.rs @@ -1,8 +1,21 @@ -use http::Uri; +use http as http_02; use super::Host; -impl Host for Uri { +impl Host for http_02::Uri { + fn hostname(&self) -> &str { + self.host().unwrap_or("") + } + + fn port(&self) -> Option { + match self.port_u16() { + Some(port) => Some(port), + None => scheme_to_port(self.scheme_str()), + } + } +} + +impl Host for http_1::Uri { fn hostname(&self) -> &str { self.host().unwrap_or("") } diff --git a/actix-tls/tests/test_connect.rs b/actix-tls/tests/test_connect.rs index 1c969fec..8cf8d614 100644 --- a/actix-tls/tests/test_connect.rs +++ b/actix-tls/tests/test_connect.rs @@ -114,6 +114,23 @@ async fn test_openssl_uri() { assert_eq!(con.peer_addr().unwrap(), srv.addr()); } +#[cfg(all(feature = "rustls-0_21", feature = "uri"))] +#[actix_rt::test] +async fn test_rustls_uri_http1() { + let srv = TestServer::start(|| { + fn_service(|io: TcpStream| async { + let mut framed = Framed::new(io, BytesCodec); + framed.send(Bytes::from_static(b"test")).await?; + Ok::<_, io::Error>(()) + }) + }); + + let conn = Connector::default().service(); + let addr = http_1::Uri::try_from(format!("https://localhost:{}", srv.port())).unwrap(); + let con = conn.call(addr.into()).await.unwrap(); + assert_eq!(con.peer_addr().unwrap(), srv.addr()); +} + #[cfg(all(feature = "rustls-0_21", feature = "uri"))] #[actix_rt::test] async fn test_rustls_uri() { From 9edc0b393a281812e91c5c355c7be0663897d772 Mon Sep 17 00:00:00 2001 From: Rob Ede Date: Wed, 6 Dec 2023 01:39:13 +0000 Subject: [PATCH 119/410] feat(tls): add crate feature for rustls native root certs (#506) --- .cargo/config.toml | 18 ++++++++-------- actix-tls/CHANGES.md | 3 ++- actix-tls/Cargo.toml | 11 ++++++++-- actix-tls/src/connect/mod.rs | 15 ++++++++++--- actix-tls/src/connect/rustls_0_20.rs | 32 +++++++++++++++++++++++----- actix-tls/src/connect/rustls_0_21.rs | 32 +++++++++++++++++++++++----- justfile | 4 ++-- 7 files changed, 88 insertions(+), 27 deletions(-) diff --git a/.cargo/config.toml b/.cargo/config.toml index a114083f..bade4d02 100644 --- a/.cargo/config.toml +++ b/.cargo/config.toml @@ -6,20 +6,20 @@ ci-doctest = "test --workspace --all-features --doc --no-fail-fast -- --nocaptur # just check the library (without dev deps) ci-check-min = "hack --workspace check --no-default-features" -ci-check-lib = "hack --workspace --feature-powerset --exclude-features=io-uring check" -ci-check-lib-linux = "hack --workspace --feature-powerset check" +ci-check-lib = "hack --workspace --feature-powerset --depth=3 --exclude-features=io-uring check" +ci-check-lib-linux = "hack --workspace --feature-powerset --depth=3 check" # check everything -ci-check = "hack --workspace --feature-powerset --exclude-features=io-uring check --tests --examples" -ci-check-linux = "hack --workspace --feature-powerset check --tests --examples" +ci-check = "hack --workspace --feature-powerset --depth=3 --exclude-features=io-uring check --tests --examples" +ci-check-linux = "hack --workspace --feature-powerset --depth=3 check --tests --examples" # tests avoiding io-uring feature -ci-test = "hack --feature-powerset --exclude-features=io-uring test --lib --tests --no-fail-fast -- --nocapture" -ci-test-rustls-020 = "hack --feature-powerset --exclude-features=io-uring,rustls-0_21 test --lib --tests --no-fail-fast -- --nocapture" -ci-test-rustls-021 = "hack --feature-powerset --exclude-features=io-uring,rustls-0_20 test --lib --tests --no-fail-fast -- --nocapture" +ci-test = "hack --feature-powerset --depth=3 --exclude-features=io-uring test --lib --tests --no-fail-fast -- --nocapture" +ci-test-rustls-020 = "hack --feature-powerset --depth=3 --exclude-features=io-uring,rustls-0_21 test --lib --tests --no-fail-fast -- --nocapture" +ci-test-rustls-021 = "hack --feature-powerset --depth=3 --exclude-features=io-uring,rustls-0_20 test --lib --tests --no-fail-fast -- --nocapture" # tests avoiding io-uring feature on Windows -ci-test-win = "hack --feature-powerset --depth=2 --exclude-features=io-uring test --lib --tests --no-fail-fast -- --nocapture" +ci-test-win = "hack --feature-powerset --depth=3 --exclude-features=io-uring test --lib --tests --no-fail-fast -- --nocapture" # test with io-uring feature -ci-test-linux = "hack --feature-powerset --exclude-features=rustls-0_20 test --lib --tests --no-fail-fast -- --nocapture" +ci-test-linux = "hack --feature-powerset --depth=3 --exclude-features=rustls-0_20 test --lib --tests --no-fail-fast -- --nocapture" diff --git a/actix-tls/CHANGES.md b/actix-tls/CHANGES.md index 25e8e56e..aa0d668f 100644 --- a/actix-tls/CHANGES.md +++ b/actix-tls/CHANGES.md @@ -2,7 +2,8 @@ ## Unreleased -- Added support to `http` crate version `1.0`. +- Add `rustls-0_21-native-roots` and `rustls-0_20-native-roots` crate features which utilize the `rustls-native-certs` crate to enable a `native_roots_cert_store()` functions in each rustls-based `connect` module. +- Implement `Host` for `http::Uri` (`http` crate version `1`). ## 3.1.1 diff --git a/actix-tls/Cargo.toml b/actix-tls/Cargo.toml index 3b8d3ae8..43235227 100755 --- a/actix-tls/Cargo.toml +++ b/actix-tls/Cargo.toml @@ -47,10 +47,14 @@ openssl = ["tls-openssl", "tokio-openssl"] rustls = ["rustls-0_20"] # use rustls v0.20 impls -rustls-0_20 = ["tokio-rustls-023", "webpki-roots-022"] +rustls-0_20 = ["rustls-0_20-webpki-roots"] +rustls-0_20-webpki-roots = ["tokio-rustls-023", "webpki-roots-022"] +rustls-0_20-native-roots = ["tokio-rustls-023", "dep:rustls-native-certs"] # use rustls v0.21 impls -rustls-0_21 = ["tokio-rustls-024", "webpki-roots-025"] +rustls-0_21 = ["rustls-0_21-webpki-roots"] +rustls-0_21-webpki-roots = ["tokio-rustls-024", "webpki-roots-025"] +rustls-0_21-native-roots = ["tokio-rustls-024", "dep:rustls-native-certs"] # use native-tls impls native-tls = ["tokio-native-tls"] @@ -88,6 +92,9 @@ rustls-webpki-0101 = { package = "rustls-webpki", version = "0.101.4" } tokio-rustls-024 = { package = "tokio-rustls", version = "0.24", optional = true } webpki-roots-025 = { package = "webpki-roots", version = "0.25", optional = true } +# native root certificates for both rustls impls +rustls-native-certs = { version = "0.6", optional = true } + # native-tls tokio-native-tls = { version = "0.3", optional = true } diff --git a/actix-tls/src/connect/mod.rs b/actix-tls/src/connect/mod.rs index 79cbb295..2e069c02 100644 --- a/actix-tls/src/connect/mod.rs +++ b/actix-tls/src/connect/mod.rs @@ -27,14 +27,23 @@ mod uri; #[cfg(feature = "openssl")] pub mod openssl; -#[cfg(feature = "rustls-0_20")] +#[cfg(any( + feature = "rustls-0_20-webpki-roots", + feature = "rustls-0_20-native-roots", +))] pub mod rustls_0_20; #[doc(hidden)] -#[cfg(feature = "rustls-0_20")] +#[cfg(any( + feature = "rustls-0_20-webpki-roots", + feature = "rustls-0_20-native-roots", +))] pub use rustls_0_20 as rustls; -#[cfg(feature = "rustls-0_21")] +#[cfg(any( + feature = "rustls-0_21-webpki-roots", + feature = "rustls-0_21-native-roots", +))] pub mod rustls_0_21; #[cfg(feature = "native-tls")] diff --git a/actix-tls/src/connect/rustls_0_20.rs b/actix-tls/src/connect/rustls_0_20.rs index 4547854e..52e73028 100644 --- a/actix-tls/src/connect/rustls_0_20.rs +++ b/actix-tls/src/connect/rustls_0_20.rs @@ -17,7 +17,7 @@ use actix_utils::future::{ok, Ready}; use futures_core::ready; use tokio_rustls::{ client::TlsStream as AsyncTlsStream, - rustls::{client::ServerName, ClientConfig, OwnedTrustAnchor, RootCertStore}, + rustls::{client::ServerName, ClientConfig, RootCertStore}, Connect as RustlsConnect, TlsConnector as RustlsTlsConnector, }; use tokio_rustls_023 as tokio_rustls; @@ -25,17 +25,38 @@ use tokio_rustls_023 as tokio_rustls; use crate::connect::{Connection, Host}; pub mod reexports { - //! Re-exports from `rustls` and `webpki_roots` that are useful for connectors. + //! Re-exports from the `rustls` v0.20 ecosystem that are useful for connectors. pub use tokio_rustls_023::{client::TlsStream as AsyncTlsStream, rustls::ClientConfig}; + #[cfg(feature = "rustls-0_20-webpki-roots")] pub use webpki_roots_022::TLS_SERVER_ROOTS; } -/// Returns standard root certificates from `webpki-roots` crate as a rustls certificate store. -pub fn webpki_roots_cert_store() -> RootCertStore { +/// Returns root certificates via `rustls-native-certs` crate as a rustls certificate store. +/// +/// See [`rustls_native_certs::load_native_certs()`] for more info on behavior and errors. +#[cfg(feature = "rustls-0_20-native-roots")] +pub fn native_roots_cert_store() -> io::Result { let mut root_certs = RootCertStore::empty(); + + for cert in rustls_native_certs::load_native_certs()? { + root_certs + .add(&tokio_rustls_023::rustls::Certificate(cert.0)) + .unwrap(); + } + + Ok(root_certs) +} + +/// Returns standard root certificates from `webpki-roots` crate as a rustls certificate store. +#[cfg(feature = "rustls-0_20-webpki-roots")] +pub fn webpki_roots_cert_store() -> RootCertStore { + use tokio_rustls_023::rustls; + + let mut root_certs = RootCertStore::empty(); + for cert in webpki_roots_022::TLS_SERVER_ROOTS.0 { - let cert = OwnedTrustAnchor::from_subject_spki_name_constraints( + let cert = rustls::OwnedTrustAnchor::from_subject_spki_name_constraints( cert.subject, cert.spki, cert.name_constraints, @@ -43,6 +64,7 @@ pub fn webpki_roots_cert_store() -> RootCertStore { let certs = vec![cert].into_iter(); root_certs.add_server_trust_anchors(certs); } + root_certs } diff --git a/actix-tls/src/connect/rustls_0_21.rs b/actix-tls/src/connect/rustls_0_21.rs index cc0d6de3..7c3ab24b 100644 --- a/actix-tls/src/connect/rustls_0_21.rs +++ b/actix-tls/src/connect/rustls_0_21.rs @@ -17,7 +17,7 @@ use actix_utils::future::{ok, Ready}; use futures_core::ready; use tokio_rustls::{ client::TlsStream as AsyncTlsStream, - rustls::{client::ServerName, ClientConfig, OwnedTrustAnchor, RootCertStore}, + rustls::{client::ServerName, ClientConfig, RootCertStore}, Connect as RustlsConnect, TlsConnector as RustlsTlsConnector, }; use tokio_rustls_024 as tokio_rustls; @@ -25,17 +25,38 @@ use tokio_rustls_024 as tokio_rustls; use crate::connect::{Connection, Host}; pub mod reexports { - //! Re-exports from `rustls` and `webpki_roots` that are useful for connectors. + //! Re-exports from the `rustls` v0.21 ecosystem that are useful for connectors. pub use tokio_rustls_024::{client::TlsStream as AsyncTlsStream, rustls::ClientConfig}; + #[cfg(feature = "rustls-0_21-webpki-roots")] pub use webpki_roots_025::TLS_SERVER_ROOTS; } -/// Returns standard root certificates from `webpki-roots` crate as a rustls certificate store. -pub fn webpki_roots_cert_store() -> RootCertStore { +/// Returns root certificates via `rustls-native-certs` crate as a rustls certificate store. +/// +/// See [`rustls_native_certs::load_native_certs()`] for more info on behavior and errors. +#[cfg(feature = "rustls-0_21-native-roots")] +pub fn native_roots_cert_store() -> io::Result { let mut root_certs = RootCertStore::empty(); + + for cert in rustls_native_certs::load_native_certs()? { + root_certs + .add(&tokio_rustls_024::rustls::Certificate(cert.0)) + .unwrap(); + } + + Ok(root_certs) +} + +/// Returns standard root certificates from `webpki-roots` crate as a rustls certificate store. +#[cfg(feature = "rustls-0_21-webpki-roots")] +pub fn webpki_roots_cert_store() -> RootCertStore { + use tokio_rustls_024::rustls; + + let mut root_certs = RootCertStore::empty(); + for cert in webpki_roots_025::TLS_SERVER_ROOTS { - let cert = OwnedTrustAnchor::from_subject_spki_name_constraints( + let cert = rustls::OwnedTrustAnchor::from_subject_spki_name_constraints( cert.subject, cert.spki, cert.name_constraints, @@ -43,6 +64,7 @@ pub fn webpki_roots_cert_store() -> RootCertStore { let certs = vec![cert].into_iter(); root_certs.add_trust_anchors(certs); } + root_certs } diff --git a/justfile b/justfile index 72331f9e..86bd8412 100644 --- a/justfile +++ b/justfile @@ -7,8 +7,8 @@ doc: # Document crates in workspace and watch for changes. doc-watch: - RUSTDOCFLAGS="--cfg=docsrs" cargo +nightly doc --no-deps --workspace --features=rustls,openssl --open - cargo watch -- RUSTDOCFLAGS="--cfg=docsrs" cargo +nightly doc --no-deps --workspace --features=rustls,openssl + RUSTDOCFLAGS="--cfg=docsrs" cargo +nightly doc --no-deps --workspace --features=rustls-0_20,rustls-0_21,rustls-0_20-native-roots,rustls-0_21-native-roots,openssl --open + cargo watch -- RUSTDOCFLAGS="--cfg=docsrs" cargo +nightly doc --no-deps --workspace --features=rustls-0_20,rustls-0_21,rustls-0_20-native-roots,rustls-0_21-native-roots,openssl # Check for unintentional external type exposure on all crates in workspace. check-external-types-all toolchain="+nightly": From 951e46186b0c8c37c70843f2f74aa13e6a2f9a8a Mon Sep 17 00:00:00 2001 From: Rob Ede Date: Wed, 6 Dec 2023 04:04:39 +0000 Subject: [PATCH 120/410] feat: add rustls v0.22 support (#513) --- .cargo/config.toml | 18 +-- actix-tls/CHANGES.md | 2 + actix-tls/Cargo.toml | 28 +++-- actix-tls/src/connect/mod.rs | 6 + actix-tls/src/connect/rustls_0_20.rs | 2 +- actix-tls/src/connect/rustls_0_21.rs | 2 +- actix-tls/src/connect/rustls_0_22.rs | 162 +++++++++++++++++++++++++++ actix-tls/tests/accept-openssl.rs | 61 ++++++---- actix-tls/tests/accept-rustls.rs | 8 +- actix-tls/tests/test_connect.rs | 8 +- 10 files changed, 248 insertions(+), 49 deletions(-) create mode 100644 actix-tls/src/connect/rustls_0_22.rs diff --git a/.cargo/config.toml b/.cargo/config.toml index bade4d02..8f1ff8a7 100644 --- a/.cargo/config.toml +++ b/.cargo/config.toml @@ -6,20 +6,20 @@ ci-doctest = "test --workspace --all-features --doc --no-fail-fast -- --nocaptur # just check the library (without dev deps) ci-check-min = "hack --workspace check --no-default-features" -ci-check-lib = "hack --workspace --feature-powerset --depth=3 --exclude-features=io-uring check" -ci-check-lib-linux = "hack --workspace --feature-powerset --depth=3 check" +ci-check-lib = "hack --workspace --feature-powerset --depth=2 --exclude-features=io-uring check" +ci-check-lib-linux = "hack --workspace --feature-powerset --depth=2 check" # check everything -ci-check = "hack --workspace --feature-powerset --depth=3 --exclude-features=io-uring check --tests --examples" -ci-check-linux = "hack --workspace --feature-powerset --depth=3 check --tests --examples" +ci-check = "hack --workspace --feature-powerset --depth=2 --exclude-features=io-uring check --tests --examples" +ci-check-linux = "hack --workspace --feature-powerset --depth=2 check --tests --examples" # tests avoiding io-uring feature -ci-test = "hack --feature-powerset --depth=3 --exclude-features=io-uring test --lib --tests --no-fail-fast -- --nocapture" -ci-test-rustls-020 = "hack --feature-powerset --depth=3 --exclude-features=io-uring,rustls-0_21 test --lib --tests --no-fail-fast -- --nocapture" -ci-test-rustls-021 = "hack --feature-powerset --depth=3 --exclude-features=io-uring,rustls-0_20 test --lib --tests --no-fail-fast -- --nocapture" +ci-test = "hack --feature-powerset --depth=2 --exclude-features=io-uring test --lib --tests --no-fail-fast -- --nocapture" +ci-test-rustls-020 = "hack --feature-powerset --depth=2 --exclude-features=io-uring,rustls-0_21 test --lib --tests --no-fail-fast -- --nocapture" +ci-test-rustls-021 = "hack --feature-powerset --depth=2 --exclude-features=io-uring,rustls-0_20 test --lib --tests --no-fail-fast -- --nocapture" # tests avoiding io-uring feature on Windows -ci-test-win = "hack --feature-powerset --depth=3 --exclude-features=io-uring test --lib --tests --no-fail-fast -- --nocapture" +ci-test-win = "hack --feature-powerset --depth=2 --exclude-features=io-uring test --lib --tests --no-fail-fast -- --nocapture" # test with io-uring feature -ci-test-linux = "hack --feature-powerset --depth=3 --exclude-features=rustls-0_20 test --lib --tests --no-fail-fast -- --nocapture" +ci-test-linux = "hack --feature-powerset --depth=2 --exclude-features=rustls-0_20 test --lib --tests --no-fail-fast -- --nocapture" diff --git a/actix-tls/CHANGES.md b/actix-tls/CHANGES.md index aa0d668f..2c49bebc 100644 --- a/actix-tls/CHANGES.md +++ b/actix-tls/CHANGES.md @@ -2,6 +2,8 @@ ## Unreleased +- Support Rustls v0.22. +- Added `{accept, connect}::rustls_0_22` modules. - Add `rustls-0_21-native-roots` and `rustls-0_20-native-roots` crate features which utilize the `rustls-native-certs` crate to enable a `native_roots_cert_store()` functions in each rustls-based `connect` module. - Implement `Host` for `http::Uri` (`http` crate version `1`). diff --git a/actix-tls/Cargo.toml b/actix-tls/Cargo.toml index 43235227..c3ed89b4 100755 --- a/actix-tls/Cargo.toml +++ b/actix-tls/Cargo.toml @@ -49,12 +49,16 @@ rustls = ["rustls-0_20"] # use rustls v0.20 impls rustls-0_20 = ["rustls-0_20-webpki-roots"] rustls-0_20-webpki-roots = ["tokio-rustls-023", "webpki-roots-022"] -rustls-0_20-native-roots = ["tokio-rustls-023", "dep:rustls-native-certs"] +rustls-0_20-native-roots = ["tokio-rustls-023", "dep:rustls-native-certs-06"] # use rustls v0.21 impls rustls-0_21 = ["rustls-0_21-webpki-roots"] rustls-0_21-webpki-roots = ["tokio-rustls-024", "webpki-roots-025"] -rustls-0_21-native-roots = ["tokio-rustls-024", "dep:rustls-native-certs"] +rustls-0_21-native-roots = ["tokio-rustls-024", "dep:rustls-native-certs-06"] + +# use rustls v0.22 impls +rustls-0_22-webpki-roots = ["dep:tokio-rustls-025", "dep:rustls-pki-types-1", "dep:webpki-roots-026"] +rustls-0_22-native-roots = ["dep:tokio-rustls-025", "dep:rustls-pki-types-1", "dep:rustls-native-certs-07"] # use native-tls impls native-tls = ["tokio-native-tls"] @@ -87,13 +91,19 @@ tokio-rustls-023 = { package = "tokio-rustls", version = "0.23", optional = true webpki-roots-022 = { package = "webpki-roots", version = "0.22", optional = true } # rustls v0.21 -rustls-021 = { package = "rustls", version = "0.21.6" } -rustls-webpki-0101 = { package = "rustls-webpki", version = "0.101.4" } +rustls-021 = { package = "rustls", version = "0.21.6", optional = true } +rustls-webpki-0101 = { package = "rustls-webpki", version = "0.101.4", optional = true } tokio-rustls-024 = { package = "tokio-rustls", version = "0.24", optional = true } webpki-roots-025 = { package = "webpki-roots", version = "0.25", optional = true } -# native root certificates for both rustls impls -rustls-native-certs = { version = "0.6", optional = true } +# rustls v0.22 +rustls-pki-types-1 = { package = "rustls-pki-types", version = "1", optional = true } +tokio-rustls-025 = { package = "tokio-rustls", version = "0.25", optional = true } +webpki-roots-026 = { package = "webpki-roots", version = "0.26", optional = true } + +# native root certificates for rustls impls +rustls-native-certs-06 = { package = "rustls-native-certs", version = "0.6", optional = true } +rustls-native-certs-07 = { package = "rustls-native-certs", version = "0.7", optional = true } # native-tls tokio-native-tls = { version = "0.3", optional = true } @@ -106,10 +116,10 @@ bytes = "1" env_logger = "0.10" futures-util = { version = "0.3.17", default-features = false, features = ["sink"] } rcgen = "0.11" -rustls-pemfile = "1" -tokio-rustls-024 = { package = "tokio-rustls", version = "0.24", features = ["dangerous_configuration"] } +rustls-pemfile = "2" +tokio-rustls-025 = { package = "tokio-rustls", version = "0.25" } trust-dns-resolver = "0.23" [[example]] name = "accept-rustls" -required-features = ["accept", "rustls-0_21"] +required-features = ["accept", "rustls-0_22"] diff --git a/actix-tls/src/connect/mod.rs b/actix-tls/src/connect/mod.rs index 2e069c02..b742e76e 100644 --- a/actix-tls/src/connect/mod.rs +++ b/actix-tls/src/connect/mod.rs @@ -46,6 +46,12 @@ pub use rustls_0_20 as rustls; ))] pub mod rustls_0_21; +#[cfg(any( + feature = "rustls-0_22-webpki-roots", + feature = "rustls-0_22-native-roots", +))] +pub mod rustls_0_22; + #[cfg(feature = "native-tls")] pub mod native_tls; diff --git a/actix-tls/src/connect/rustls_0_20.rs b/actix-tls/src/connect/rustls_0_20.rs index 52e73028..19553044 100644 --- a/actix-tls/src/connect/rustls_0_20.rs +++ b/actix-tls/src/connect/rustls_0_20.rs @@ -39,7 +39,7 @@ pub mod reexports { pub fn native_roots_cert_store() -> io::Result { let mut root_certs = RootCertStore::empty(); - for cert in rustls_native_certs::load_native_certs()? { + for cert in rustls_native_certs_06::load_native_certs()? { root_certs .add(&tokio_rustls_023::rustls::Certificate(cert.0)) .unwrap(); diff --git a/actix-tls/src/connect/rustls_0_21.rs b/actix-tls/src/connect/rustls_0_21.rs index 7c3ab24b..7474327a 100644 --- a/actix-tls/src/connect/rustls_0_21.rs +++ b/actix-tls/src/connect/rustls_0_21.rs @@ -39,7 +39,7 @@ pub mod reexports { pub fn native_roots_cert_store() -> io::Result { let mut root_certs = RootCertStore::empty(); - for cert in rustls_native_certs::load_native_certs()? { + for cert in rustls_native_certs_06::load_native_certs()? { root_certs .add(&tokio_rustls_024::rustls::Certificate(cert.0)) .unwrap(); diff --git a/actix-tls/src/connect/rustls_0_22.rs b/actix-tls/src/connect/rustls_0_22.rs new file mode 100644 index 00000000..bb6f5f83 --- /dev/null +++ b/actix-tls/src/connect/rustls_0_22.rs @@ -0,0 +1,162 @@ +//! Rustls based connector service. +//! +//! See [`TlsConnector`] for main connector service factory docs. + +use std::{ + future::Future, + io, + pin::Pin, + sync::Arc, + task::{Context, Poll}, +}; + +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::{ + client::TlsStream as AsyncTlsStream, + rustls::{ClientConfig, RootCertStore}, + Connect as RustlsConnect, TlsConnector as RustlsTlsConnector, +}; +use tokio_rustls_025 as tokio_rustls; + +use crate::connect::{Connection, Host}; + +pub mod reexports { + //! Re-exports from the `rustls` v0.22 ecosystem that are useful for connectors. + + pub use tokio_rustls_025::{client::TlsStream as AsyncTlsStream, rustls::ClientConfig}; + #[cfg(feature = "rustls-0_22-webpki-roots")] + pub use webpki_roots_026::TLS_SERVER_ROOTS; +} + +/// Returns root certificates via `rustls-native-certs` crate as a rustls certificate store. +/// +/// See [`rustls_native_certs::load_native_certs()`] for more info on behavior and errors. +#[cfg(feature = "rustls-0_22-native-roots")] +pub fn native_roots_cert_store() -> io::Result { + let mut root_certs = RootCertStore::empty(); + + for cert in rustls_native_certs_07::load_native_certs()? { + root_certs.add(cert).unwrap(); + } + + Ok(root_certs) +} + +/// Returns standard root certificates from `webpki-roots` crate as a rustls certificate store. +#[cfg(feature = "rustls-0_22-webpki-roots")] +pub fn webpki_roots_cert_store() -> RootCertStore { + let mut root_certs = RootCertStore::empty(); + root_certs.extend(webpki_roots_026::TLS_SERVER_ROOTS.to_owned()); + root_certs +} + +/// Connector service factory using `rustls`. +#[derive(Clone)] +pub struct TlsConnector { + connector: Arc, +} + +impl TlsConnector { + /// Constructs new connector service factory from a `rustls` client configuration. + pub fn new(connector: Arc) -> Self { + TlsConnector { connector } + } + + /// Constructs new connector service from a `rustls` client configuration. + pub fn service(connector: Arc) -> TlsConnectorService { + TlsConnectorService { connector } + } +} + +impl ServiceFactory> for TlsConnector +where + R: Host, + IO: ActixStream + 'static, +{ + type Response = Connection>; + type Error = io::Error; + type Config = (); + type Service = TlsConnectorService; + type InitError = (); + type Future = Ready>; + + fn new_service(&self, _: ()) -> Self::Future { + ok(TlsConnectorService { + connector: self.connector.clone(), + }) + } +} + +/// Connector service using `rustls`. +#[derive(Clone)] +pub struct TlsConnectorService { + connector: Arc, +} + +impl Service> for TlsConnectorService +where + R: Host, + IO: ActixStream, +{ + type Response = Connection>; + type Error = io::Error; + type Future = ConnectFut; + + actix_service::always_ready!(); + + fn call(&self, connection: Connection) -> Self::Future { + tracing::trace!("TLS handshake start for: {:?}", connection.hostname()); + let (stream, conn) = connection.replace_io(()); + + match ServerName::try_from(conn.hostname()) { + Ok(host) => ConnectFut::Future { + connect: RustlsTlsConnector::from(Arc::clone(&self.connector)) + .connect(host.to_owned(), stream), + connection: Some(conn), + }, + Err(_) => ConnectFut::InvalidServerName, + } + } +} + +/// Connect future for Rustls service. +#[doc(hidden)] +#[allow(clippy::large_enum_variant)] +pub enum ConnectFut { + InvalidServerName, + Future { + connect: RustlsConnect, + connection: Option>, + }, +} + +impl Future for ConnectFut +where + R: Host, + IO: ActixStream, +{ + type Output = io::Result>>; + + fn poll(self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll { + match self.get_mut() { + Self::InvalidServerName => Poll::Ready(Err(io::Error::new( + io::ErrorKind::InvalidInput, + "connection parameters specified invalid server name", + ))), + + Self::Future { + connect, + connection, + } => { + let stream = ready!(Pin::new(connect).poll(cx))?; + let connection = connection.take().unwrap(); + tracing::trace!("TLS handshake success: {:?}", connection.hostname()); + Poll::Ready(Ok(connection.replace_io(stream).1)) + } + } + } +} diff --git a/actix-tls/tests/accept-openssl.rs b/actix-tls/tests/accept-openssl.rs index ca57e17d..a3506b1b 100644 --- a/actix-tls/tests/accept-openssl.rs +++ b/actix-tls/tests/accept-openssl.rs @@ -3,19 +3,20 @@ #![cfg(all( feature = "accept", feature = "connect", - feature = "rustls-0_21", + feature = "rustls-0_22", feature = "openssl" ))] -use std::{convert::TryFrom, io::Write, sync::Arc}; +use std::{io::Write as _, sync::Arc}; use actix_rt::net::TcpStream; use actix_server::TestServer; use actix_service::ServiceFactoryExt as _; use actix_tls::accept::openssl::{Acceptor, TlsStream}; use actix_utils::future::ok; -use tokio_rustls::rustls::{Certificate, ClientConfig, RootCertStore, ServerName}; -use tokio_rustls_024 as tokio_rustls; +use rustls_pki_types_1::ServerName; +use tokio_rustls::rustls::{ClientConfig, RootCertStore}; +use tokio_rustls_025 as tokio_rustls; fn new_cert_and_key() -> (String, String) { let cert = @@ -48,28 +49,45 @@ fn openssl_acceptor(cert: String, key: String) -> tls_openssl::ssl::SslAcceptor #[allow(dead_code)] mod danger { - use std::time::SystemTime; - - use tokio_rustls_024::rustls::{ - self, - client::{ServerCertVerified, ServerCertVerifier}, - }; - - use super::*; + use tokio_rustls_025::rustls; + #[derive(Debug)] pub struct NoCertificateVerification; - impl ServerCertVerifier for NoCertificateVerification { + impl rustls::client::danger::ServerCertVerifier for NoCertificateVerification { fn verify_server_cert( &self, - _end_entity: &Certificate, - _intermediates: &[Certificate], - _server_name: &ServerName, - _scts: &mut dyn Iterator, - _ocsp_response: &[u8], - _now: SystemTime, - ) -> Result { - Ok(ServerCertVerified::assertion()) + end_entity: &rustls_pki_types_1::CertificateDer::CertificateDer<'_>, + intermediates: &[rustls_pki_types_1::CertificateDer::CertificateDer<'_>], + server_name: &rustls_pki_types_1::CertificateDer::ServerName<'_>, + ocsp_response: &[u8], + now: rustls_pki_types_1::CertificateDer::UnixTime, + ) -> Result { + Ok(rustls::client::danger::ServerCertVerified::assertion()) + } + + fn verify_tls12_signature( + &self, + message: &[u8], + cert: &rustls_pki_types_1::CertificateDer<'_>, + dss: &rustls::DigitallySignedStruct, + ) -> Result { + Ok(rustls::client::danger::HandshakeSignatureValid::assertion()) + } + + fn verify_tls13_signature( + &self, + message: &[u8], + cert: &rustls_pki_types_1::CertificateDer<'_>, + dss: &rustls::DigitallySignedStruct, + ) -> Result { + Ok(rustls::client::danger::HandshakeSignatureValid::assertion()) + } + + fn supported_verify_schemes(&self) -> Vec { + rustls::crypto::ring::default_provider() + .signature_verification_algorithms + .supported_schemes() } } } @@ -77,7 +95,6 @@ mod danger { #[allow(dead_code)] fn rustls_connector(_cert: String, _key: String) -> ClientConfig { let mut config = ClientConfig::builder() - .with_safe_defaults() .with_root_certificates(RootCertStore::empty()) .with_no_client_auth(); diff --git a/actix-tls/tests/accept-rustls.rs b/actix-tls/tests/accept-rustls.rs index 40d38b7d..554f0fc1 100644 --- a/actix-tls/tests/accept-rustls.rs +++ b/actix-tls/tests/accept-rustls.rs @@ -3,7 +3,7 @@ #![cfg(all( feature = "accept", feature = "connect", - feature = "rustls-0_21", + feature = "rustls-0_22", feature = "openssl" ))] @@ -41,8 +41,10 @@ fn rustls_server_config(cert: String, key: String) -> rustls::ServerConfig { let cert = &mut BufReader::new(cert.as_bytes()); let key = &mut BufReader::new(key.as_bytes()); - let cert_chain = certs(cert).unwrap().into_iter().map(Certificate).collect(); - let mut keys = pkcs8_private_keys(key).unwrap(); + let cert_chain = certs(cert).collect::, _>>().unwrap(); + let mut keys = pkcs8_private_keys(key) + .collect::, _>>() + .unwrap(); let mut config = ServerConfig::builder() .with_safe_defaults() diff --git a/actix-tls/tests/test_connect.rs b/actix-tls/tests/test_connect.rs index 8cf8d614..58ffa4db 100644 --- a/actix-tls/tests/test_connect.rs +++ b/actix-tls/tests/test_connect.rs @@ -11,7 +11,7 @@ use actix_server::TestServer; use actix_service::{fn_service, Service, ServiceFactory}; use actix_tls::connect::{ConnectError, ConnectInfo, Connection, Connector, Host}; use bytes::Bytes; -use futures_util::sink::SinkExt; +use futures_util::sink::SinkExt as _; #[cfg(feature = "openssl")] #[actix_rt::test] @@ -30,7 +30,7 @@ async fn test_string() { assert_eq!(con.peer_addr().unwrap(), srv.addr()); } -#[cfg(feature = "rustls-0_21")] +#[cfg(feature = "rustls-0_22")] #[actix_rt::test] async fn test_rustls_string() { let srv = TestServer::start(|| { @@ -114,7 +114,7 @@ async fn test_openssl_uri() { assert_eq!(con.peer_addr().unwrap(), srv.addr()); } -#[cfg(all(feature = "rustls-0_21", feature = "uri"))] +#[cfg(all(feature = "rustls-0_22", feature = "uri"))] #[actix_rt::test] async fn test_rustls_uri_http1() { let srv = TestServer::start(|| { @@ -131,7 +131,7 @@ async fn test_rustls_uri_http1() { assert_eq!(con.peer_addr().unwrap(), srv.addr()); } -#[cfg(all(feature = "rustls-0_21", feature = "uri"))] +#[cfg(all(feature = "rustls-0_22", feature = "uri"))] #[actix_rt::test] async fn test_rustls_uri() { use std::convert::TryFrom; From 86b000fe717760bb90fa8ae3a929677c214ae820 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 11 Dec 2023 21:10:42 +0000 Subject: [PATCH 121/410] build(deps): bump taiki-e/install-action from 2.21.26 to 2.22.0 (#514) Bumps [taiki-e/install-action](https://github.com/taiki-e/install-action) from 2.21.26 to 2.22.0. - [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.21.26...v2.22.0) --- updated-dependencies: - dependency-name: taiki-e/install-action 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 | 6 +++--- .github/workflows/ci.yml | 2 +- .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 43b0961f..1b22c303 100644 --- a/.github/workflows/ci-post-merge.yml +++ b/.github/workflows/ci-post-merge.yml @@ -56,7 +56,7 @@ jobs: with: toolchain: ${{ matrix.version }} - - uses: taiki-e/install-action@v2.21.26 + - uses: taiki-e/install-action@v2.22.0 with: tool: cargo-hack @@ -116,7 +116,7 @@ jobs: toolchain: nightly - name: Install cargo-hack & cargo-minimal-versions - uses: taiki-e/install-action@v2.21.26 + uses: taiki-e/install-action@v2.22.0 with: tool: cargo-hack,cargo-minimal-versions @@ -133,7 +133,7 @@ jobs: uses: actions-rust-lang/setup-rust-toolchain@v1.6.0 - name: Install cargo-nextest - uses: taiki-e/install-action@v2.21.26 + uses: taiki-e/install-action@v2.22.0 with: tool: cargo-nextest diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index cf3e15c5..03625fd3 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -58,7 +58,7 @@ jobs: with: toolchain: ${{ matrix.version.version }} - - uses: taiki-e/install-action@v2.21.26 + - uses: taiki-e/install-action@v2.22.0 with: tool: cargo-hack diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml index f470dff1..c451df22 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.21.26 + uses: taiki-e/install-action@v2.22.0 with: tool: cargo-llvm-cov diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 2aac0f7c..65efa3da 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -55,7 +55,7 @@ jobs: toolchain: nightly-2023-10-10 - name: Install just - uses: taiki-e/install-action@v2.21.26 + uses: taiki-e/install-action@v2.22.0 with: tool: just From 02ac0bb4f74d86857dbba2ff947f90b68611e3ce Mon Sep 17 00:00:00 2001 From: Rob Ede Date: Sat, 16 Dec 2023 00:23:11 +0000 Subject: [PATCH 122/410] feat(tls): add accept::rustls_0_22 module --- actix-tls/Cargo.toml | 3 +- actix-tls/examples/accept-rustls.rs | 24 ++-- actix-tls/src/accept/mod.rs | 6 + actix-tls/src/accept/rustls_0_22.rs | 198 ++++++++++++++++++++++++++++ 4 files changed, 217 insertions(+), 14 deletions(-) create mode 100644 actix-tls/src/accept/rustls_0_22.rs diff --git a/actix-tls/Cargo.toml b/actix-tls/Cargo.toml index c3ed89b4..baf1615a 100755 --- a/actix-tls/Cargo.toml +++ b/actix-tls/Cargo.toml @@ -115,6 +115,7 @@ actix-server = "2" bytes = "1" env_logger = "0.10" futures-util = { version = "0.3.17", default-features = false, features = ["sink"] } +itertools = "0.12" rcgen = "0.11" rustls-pemfile = "2" tokio-rustls-025 = { package = "tokio-rustls", version = "0.25" } @@ -122,4 +123,4 @@ trust-dns-resolver = "0.23" [[example]] name = "accept-rustls" -required-features = ["accept", "rustls-0_22"] +required-features = ["accept", "rustls-0_22-webpki-roots"] diff --git a/actix-tls/examples/accept-rustls.rs b/actix-tls/examples/accept-rustls.rs index 40f51753..6e1e267a 100644 --- a/actix-tls/examples/accept-rustls.rs +++ b/actix-tls/examples/accept-rustls.rs @@ -15,11 +15,8 @@ //! http --verify=false https://127.0.0.1:8443 //! ``` -#[rustfmt::skip] // this `use` is only exists because of how we have organised the crate // it is not necessary for your actual code; you should import from `rustls` normally -use tokio_rustls_024::rustls; - use std::{ fs::File, io::{self, BufReader}, @@ -33,10 +30,13 @@ use std::{ use actix_rt::net::TcpStream; use actix_server::Server; use actix_service::ServiceFactoryExt as _; -use actix_tls::accept::rustls_0_21::{Acceptor as RustlsAcceptor, TlsStream}; +use actix_tls::accept::rustls_0_22::{Acceptor as RustlsAcceptor, TlsStream}; use futures_util::future::ok; -use rustls::{server::ServerConfig, Certificate, PrivateKey}; +use itertools::Itertools as _; +use rustls::server::ServerConfig; use rustls_pemfile::{certs, rsa_private_keys}; +use rustls_pki_types_1::PrivateKeyDer; +use tokio_rustls_025::rustls; use tracing::info; #[actix_rt::main] @@ -54,17 +54,15 @@ async fn main() -> io::Result<()> { let cert_file = &mut BufReader::new(File::open(cert_path).unwrap()); let key_file = &mut BufReader::new(File::open(key_path).unwrap()); - let cert_chain = certs(cert_file) - .unwrap() - .into_iter() - .map(Certificate) - .collect(); - let mut keys = rsa_private_keys(key_file).unwrap(); + let cert_chain = certs(cert_file); + let mut keys = rsa_private_keys(key_file); let tls_config = ServerConfig::builder() - .with_safe_defaults() .with_no_client_auth() - .with_single_cert(cert_chain, PrivateKey(keys.remove(0))) + .with_single_cert( + cert_chain.try_collect::<_, Vec<_>, _>()?, + PrivateKeyDer::Pkcs1(keys.next().unwrap()?), + ) .unwrap(); let tls_acceptor = RustlsAcceptor::new(tls_config); diff --git a/actix-tls/src/accept/mod.rs b/actix-tls/src/accept/mod.rs index 18585970..8d89f006 100644 --- a/actix-tls/src/accept/mod.rs +++ b/actix-tls/src/accept/mod.rs @@ -22,6 +22,12 @@ pub use rustls_0_20 as rustls; #[cfg(feature = "rustls-0_21")] pub mod rustls_0_21; +#[cfg(any( + feature = "rustls-0_22-webpki-roots", + feature = "rustls-0_22-native-roots", +))] +pub mod rustls_0_22; + #[cfg(feature = "native-tls")] pub mod native_tls; diff --git a/actix-tls/src/accept/rustls_0_22.rs b/actix-tls/src/accept/rustls_0_22.rs new file mode 100644 index 00000000..46b4c03e --- /dev/null +++ b/actix-tls/src/accept/rustls_0_22.rs @@ -0,0 +1,198 @@ +//! `rustls` v0.22 based TLS connection acceptor service. +//! +//! See [`Acceptor`] for main service factory docs. + +use std::{ + convert::Infallible, + future::Future, + io::{self, IoSlice}, + pin::Pin, + sync::Arc, + task::{Context, Poll}, + time::Duration, +}; + +use actix_rt::{ + net::{ActixStream, Ready}, + time::{sleep, Sleep}, +}; +use actix_service::{Service, ServiceFactory}; +use actix_utils::{ + counter::{Counter, CounterGuard}, + future::{ready, Ready as FutReady}, +}; +use pin_project_lite::pin_project; +use tokio::io::{AsyncRead, AsyncWrite, ReadBuf}; +use tokio_rustls::{Accept, TlsAcceptor}; +use tokio_rustls_025 as tokio_rustls; + +use super::{TlsError, DEFAULT_TLS_HANDSHAKE_TIMEOUT, MAX_CONN_COUNTER}; + +pub mod reexports { + //! Re-exports from `rustls` that are useful for acceptors. + + pub use tokio_rustls_025::rustls::ServerConfig; +} + +/// Wraps a `rustls` based async TLS stream in order to implement [`ActixStream`]. +pub struct TlsStream(tokio_rustls::server::TlsStream); + +impl_more::impl_from!( in tokio_rustls::server::TlsStream => TlsStream); +impl_more::impl_deref_and_mut!( in TlsStream => tokio_rustls::server::TlsStream); + +impl AsyncRead for TlsStream { + fn poll_read( + self: Pin<&mut Self>, + cx: &mut Context<'_>, + buf: &mut ReadBuf<'_>, + ) -> Poll> { + Pin::new(&mut **self.get_mut()).poll_read(cx, buf) + } +} + +impl AsyncWrite for TlsStream { + fn poll_write( + self: Pin<&mut Self>, + cx: &mut Context<'_>, + buf: &[u8], + ) -> Poll> { + Pin::new(&mut **self.get_mut()).poll_write(cx, buf) + } + + fn poll_flush(self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll> { + Pin::new(&mut **self.get_mut()).poll_flush(cx) + } + + fn poll_shutdown(self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll> { + Pin::new(&mut **self.get_mut()).poll_shutdown(cx) + } + + fn poll_write_vectored( + self: Pin<&mut Self>, + cx: &mut Context<'_>, + bufs: &[IoSlice<'_>], + ) -> Poll> { + Pin::new(&mut **self.get_mut()).poll_write_vectored(cx, bufs) + } + + fn is_write_vectored(&self) -> bool { + (**self).is_write_vectored() + } +} + +impl ActixStream for TlsStream { + fn poll_read_ready(&self, cx: &mut Context<'_>) -> Poll> { + IO::poll_read_ready((**self).get_ref().0, cx) + } + + fn poll_write_ready(&self, cx: &mut Context<'_>) -> Poll> { + IO::poll_write_ready((**self).get_ref().0, cx) + } +} + +/// Accept TLS connections via the `rustls` crate. +pub struct Acceptor { + config: Arc, + handshake_timeout: Duration, +} + +impl Acceptor { + /// Constructs `rustls` based acceptor service factory. + pub fn new(config: reexports::ServerConfig) -> Self { + Acceptor { + config: Arc::new(config), + handshake_timeout: DEFAULT_TLS_HANDSHAKE_TIMEOUT, + } + } + + /// Limit the amount of time that the acceptor will wait for a TLS handshake to complete. + /// + /// Default timeout is 3 seconds. + pub fn set_handshake_timeout(&mut self, handshake_timeout: Duration) -> &mut Self { + self.handshake_timeout = handshake_timeout; + self + } +} + +impl Clone for Acceptor { + fn clone(&self) -> Self { + Self { + config: self.config.clone(), + handshake_timeout: self.handshake_timeout, + } + } +} + +impl ServiceFactory for Acceptor { + type Response = TlsStream; + type Error = TlsError; + type Config = (); + type Service = AcceptorService; + type InitError = (); + type Future = FutReady>; + + fn new_service(&self, _: ()) -> Self::Future { + let res = MAX_CONN_COUNTER.with(|conns| { + Ok(AcceptorService { + acceptor: self.config.clone().into(), + conns: conns.clone(), + handshake_timeout: self.handshake_timeout, + }) + }); + + ready(res) + } +} + +/// Rustls based acceptor service. +pub struct AcceptorService { + acceptor: TlsAcceptor, + conns: Counter, + handshake_timeout: Duration, +} + +impl Service for AcceptorService { + type Response = TlsStream; + type Error = TlsError; + type Future = AcceptFut; + + fn poll_ready(&self, cx: &mut Context<'_>) -> Poll> { + if self.conns.available(cx) { + Poll::Ready(Ok(())) + } else { + Poll::Pending + } + } + + fn call(&self, req: IO) -> Self::Future { + AcceptFut { + fut: self.acceptor.accept(req), + timeout: sleep(self.handshake_timeout), + _guard: self.conns.get(), + } + } +} + +pin_project! { + /// Accept future for Rustls service. + #[doc(hidden)] + pub struct AcceptFut { + fut: Accept, + #[pin] + timeout: Sleep, + _guard: CounterGuard, + } +} + +impl Future for AcceptFut { + type Output = Result, TlsError>; + + fn poll(self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll { + let mut this = self.project(); + match Pin::new(&mut this.fut).poll(cx) { + Poll::Ready(Ok(stream)) => Poll::Ready(Ok(TlsStream(stream))), + Poll::Ready(Err(err)) => Poll::Ready(Err(TlsError::Tls(err))), + Poll::Pending => this.timeout.poll(cx).map(|_| Err(TlsError::Timeout)), + } + } +} From c5b2d0cd36b43dbd4d73f2602b44794fd0da4622 Mon Sep 17 00:00:00 2001 From: Rob Ede Date: Sat, 16 Dec 2023 00:43:02 +0000 Subject: [PATCH 123/410] chore(tls): fix feature flagging of DEFAULT_TLS_HANDSHAKE_TIMEOUT --- actix-tls/src/accept/mod.rs | 2 ++ actix-tls/src/accept/rustls_0_20.rs | 6 +++--- actix-tls/src/accept/rustls_0_21.rs | 6 +++--- 3 files changed, 8 insertions(+), 6 deletions(-) diff --git a/actix-tls/src/accept/mod.rs b/actix-tls/src/accept/mod.rs index 8d89f006..e884bd33 100644 --- a/actix-tls/src/accept/mod.rs +++ b/actix-tls/src/accept/mod.rs @@ -37,6 +37,8 @@ pub(crate) static MAX_CONN: AtomicUsize = AtomicUsize::new(256); feature = "openssl", feature = "rustls-0_20", feature = "rustls-0_21", + feature = "rustls-0_22-webpki-roots", + feature = "rustls-0_22-native-roots", feature = "native-tls", ))] pub(crate) const DEFAULT_TLS_HANDSHAKE_TIMEOUT: std::time::Duration = diff --git a/actix-tls/src/accept/rustls_0_20.rs b/actix-tls/src/accept/rustls_0_20.rs index d06f1799..f8c9206c 100644 --- a/actix-tls/src/accept/rustls_0_20.rs +++ b/actix-tls/src/accept/rustls_0_20.rs @@ -23,7 +23,7 @@ use actix_utils::{ }; use pin_project_lite::pin_project; use tokio::io::{AsyncRead, AsyncWrite, ReadBuf}; -use tokio_rustls::{rustls::ServerConfig, Accept, TlsAcceptor}; +use tokio_rustls::{Accept, TlsAcceptor}; use tokio_rustls_023 as tokio_rustls; use super::{TlsError, DEFAULT_TLS_HANDSHAKE_TIMEOUT, MAX_CONN_COUNTER}; @@ -92,13 +92,13 @@ impl ActixStream for TlsStream { /// Accept TLS connections via the `rustls` crate. pub struct Acceptor { - config: Arc, + config: Arc, handshake_timeout: Duration, } impl Acceptor { /// Constructs `rustls` based acceptor service factory. - pub fn new(config: ServerConfig) -> Self { + pub fn new(config: reexports::ServerConfig) -> Self { Acceptor { config: Arc::new(config), handshake_timeout: DEFAULT_TLS_HANDSHAKE_TIMEOUT, diff --git a/actix-tls/src/accept/rustls_0_21.rs b/actix-tls/src/accept/rustls_0_21.rs index 27db8cdd..fcf6a693 100644 --- a/actix-tls/src/accept/rustls_0_21.rs +++ b/actix-tls/src/accept/rustls_0_21.rs @@ -23,7 +23,7 @@ use actix_utils::{ }; use pin_project_lite::pin_project; use tokio::io::{AsyncRead, AsyncWrite, ReadBuf}; -use tokio_rustls::{rustls::ServerConfig, Accept, TlsAcceptor}; +use tokio_rustls::{Accept, TlsAcceptor}; use tokio_rustls_024 as tokio_rustls; use super::{TlsError, DEFAULT_TLS_HANDSHAKE_TIMEOUT, MAX_CONN_COUNTER}; @@ -92,13 +92,13 @@ impl ActixStream for TlsStream { /// Accept TLS connections via the `rustls` crate. pub struct Acceptor { - config: Arc, + config: Arc, handshake_timeout: Duration, } impl Acceptor { /// Constructs `rustls` based acceptor service factory. - pub fn new(config: ServerConfig) -> Self { + pub fn new(config: reexports::ServerConfig) -> Self { Acceptor { config: Arc::new(config), handshake_timeout: DEFAULT_TLS_HANDSHAKE_TIMEOUT, From d28c7db3b386d703264a2d9ab7cf9c59dfd66b7c Mon Sep 17 00:00:00 2001 From: Rob Ede Date: Tue, 26 Dec 2023 03:58:34 +0000 Subject: [PATCH 124/410] ci: use cargo-ci-clean-cache --- .github/workflows/ci-post-merge.yml | 11 +++++++---- .github/workflows/ci.yml | 11 +++++++---- 2 files changed, 14 insertions(+), 8 deletions(-) diff --git a/.github/workflows/ci-post-merge.yml b/.github/workflows/ci-post-merge.yml index 1b22c303..20efd568 100644 --- a/.github/workflows/ci-post-merge.yml +++ b/.github/workflows/ci-post-merge.yml @@ -99,10 +99,13 @@ jobs: && RUSTUP_TOOLCHAIN=${{ matrix.version }} cargo ci-test-linux " - - name: Clear the cargo caches - run: | - cargo install cargo-cache --version 0.6.2 --no-default-features --features ci-autoclean - cargo-cache + - name: Install cargo-ci-cache-clean + uses: taiki-e/install-action@v2.23.2 + with: + tool: cargo-ci-cache-clean + + - name: CI cache clean + run: cargo-ci-cache-clean minimal-versions: name: minimal versions diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 03625fd3..416bf8d0 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -115,10 +115,13 @@ jobs: && RUSTUP_TOOLCHAIN=${{ matrix.version.version }} cargo ci-test-linux " - - name: Clear the cargo caches - run: | - cargo install cargo-cache --version 0.6.2 --no-default-features --features ci-autoclean - cargo-cache + - name: Install cargo-ci-cache-clean + uses: taiki-e/install-action@v2.23.2 + with: + tool: cargo-ci-cache-clean + + - name: CI cache clean + run: cargo-ci-cache-clean rustdoc: name: rustdoc From eb977e9aeb906d193bc4ae246a8ac07540c8867a Mon Sep 17 00:00:00 2001 From: Rob Ede Date: Tue, 26 Dec 2023 04:03:49 +0000 Subject: [PATCH 125/410] ci: combine install steps --- .github/workflows/ci-post-merge.yml | 10 +++------- .github/workflows/ci.yml | 10 +++------- 2 files changed, 6 insertions(+), 14 deletions(-) diff --git a/.github/workflows/ci-post-merge.yml b/.github/workflows/ci-post-merge.yml index 20efd568..59b8e318 100644 --- a/.github/workflows/ci-post-merge.yml +++ b/.github/workflows/ci-post-merge.yml @@ -56,9 +56,10 @@ jobs: with: toolchain: ${{ matrix.version }} - - uses: taiki-e/install-action@v2.22.0 + - name: Install cargo-hack and cargo-ci-cache-clean + uses: taiki-e/install-action@v2.22.0 with: - tool: cargo-hack + tool: cargo-hack,cargo-ci-cache-clean - name: check lib if: > @@ -99,11 +100,6 @@ jobs: && RUSTUP_TOOLCHAIN=${{ matrix.version }} cargo ci-test-linux " - - name: Install cargo-ci-cache-clean - uses: taiki-e/install-action@v2.23.2 - with: - tool: cargo-ci-cache-clean - - name: CI cache clean run: cargo-ci-cache-clean diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 416bf8d0..baa92e79 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -58,9 +58,10 @@ jobs: with: toolchain: ${{ matrix.version.version }} - - uses: taiki-e/install-action@v2.22.0 + - name: Install cargo-hack and cargo-ci-cache-clean + uses: taiki-e/install-action@v2.22.0 with: - tool: cargo-hack + tool: cargo-hack,cargo-ci-cache-clean - name: Generate Cargo.lock run: cargo generate-lockfile @@ -115,11 +116,6 @@ jobs: && RUSTUP_TOOLCHAIN=${{ matrix.version.version }} cargo ci-test-linux " - - name: Install cargo-ci-cache-clean - uses: taiki-e/install-action@v2.23.2 - with: - tool: cargo-ci-cache-clean - - name: CI cache clean run: cargo-ci-cache-clean From af9ccd17d930e7a9243042d8e1f1ebca5b327fd0 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 8 Jan 2024 19:05:18 +0000 Subject: [PATCH 126/410] build(deps): bump taiki-e/install-action from 2.22.0 to 2.24.1 (#518) Bumps [taiki-e/install-action](https://github.com/taiki-e/install-action) from 2.22.0 to 2.24.1. - [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.22.0...v2.24.1) --- updated-dependencies: - dependency-name: taiki-e/install-action 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 | 6 +++--- .github/workflows/ci.yml | 2 +- .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 59b8e318..929ba174 100644 --- a/.github/workflows/ci-post-merge.yml +++ b/.github/workflows/ci-post-merge.yml @@ -57,7 +57,7 @@ jobs: toolchain: ${{ matrix.version }} - name: Install cargo-hack and cargo-ci-cache-clean - uses: taiki-e/install-action@v2.22.0 + uses: taiki-e/install-action@v2.24.1 with: tool: cargo-hack,cargo-ci-cache-clean @@ -115,7 +115,7 @@ jobs: toolchain: nightly - name: Install cargo-hack & cargo-minimal-versions - uses: taiki-e/install-action@v2.22.0 + uses: taiki-e/install-action@v2.24.1 with: tool: cargo-hack,cargo-minimal-versions @@ -132,7 +132,7 @@ jobs: uses: actions-rust-lang/setup-rust-toolchain@v1.6.0 - name: Install cargo-nextest - uses: taiki-e/install-action@v2.22.0 + uses: taiki-e/install-action@v2.24.1 with: tool: cargo-nextest diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index baa92e79..26e81523 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -59,7 +59,7 @@ jobs: toolchain: ${{ matrix.version.version }} - name: Install cargo-hack and cargo-ci-cache-clean - uses: taiki-e/install-action@v2.22.0 + uses: taiki-e/install-action@v2.24.1 with: tool: cargo-hack,cargo-ci-cache-clean diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml index c451df22..bdd15198 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.22.0 + uses: taiki-e/install-action@v2.24.1 with: tool: cargo-llvm-cov diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 65efa3da..a30c38ad 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -55,7 +55,7 @@ jobs: toolchain: nightly-2023-10-10 - name: Install just - uses: taiki-e/install-action@v2.22.0 + uses: taiki-e/install-action@v2.24.1 with: tool: just From a0675fb0ddd8f7a29ac54b84f76dc4caf85c3c6c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 15 Jan 2024 18:47:31 +0000 Subject: [PATCH 127/410] build(deps): bump actions-rust-lang/setup-rust-toolchain (#520) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/ci-post-merge.yml | 6 +++--- .github/workflows/ci.yml | 4 ++-- .github/workflows/coverage.yml | 2 +- .github/workflows/lint.yml | 6 +++--- .github/workflows/upload-doc.yml | 2 +- 5 files changed, 10 insertions(+), 10 deletions(-) diff --git a/.github/workflows/ci-post-merge.yml b/.github/workflows/ci-post-merge.yml index 929ba174..79a98743 100644 --- a/.github/workflows/ci-post-merge.yml +++ b/.github/workflows/ci-post-merge.yml @@ -52,7 +52,7 @@ jobs: echo 'OPENSSL_DIR=C:\Program Files\OpenSSL' | Out-File -FilePath $env:GITHUB_ENV -Append - name: Install Rust (${{ matrix.version }}) - uses: actions-rust-lang/setup-rust-toolchain@v1.6.0 + uses: actions-rust-lang/setup-rust-toolchain@v1.8.0 with: toolchain: ${{ matrix.version }} @@ -110,7 +110,7 @@ jobs: - uses: actions/checkout@v4 - name: Install Rust (nightly) - uses: actions-rust-lang/setup-rust-toolchain@v1.6.0 + uses: actions-rust-lang/setup-rust-toolchain@v1.8.0 with: toolchain: nightly @@ -129,7 +129,7 @@ jobs: - uses: actions/checkout@v4 - name: Install Rust - uses: actions-rust-lang/setup-rust-toolchain@v1.6.0 + uses: actions-rust-lang/setup-rust-toolchain@v1.8.0 - name: Install cargo-nextest uses: taiki-e/install-action@v2.24.1 diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 26e81523..d1ad2ee6 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -54,7 +54,7 @@ jobs: echo 'OPENSSL_DIR=C:\Program Files\OpenSSL' | Out-File -FilePath $env:GITHUB_ENV -Append - name: Install Rust (${{ matrix.version.name }}) - uses: actions-rust-lang/setup-rust-toolchain@v1.6.0 + uses: actions-rust-lang/setup-rust-toolchain@v1.8.0 with: toolchain: ${{ matrix.version.version }} @@ -127,7 +127,7 @@ jobs: - uses: actions/checkout@v4 - name: Install Rust (nightly) - uses: actions-rust-lang/setup-rust-toolchain@v1.6.0 + uses: actions-rust-lang/setup-rust-toolchain@v1.8.0 with: toolchain: nightly diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml index bdd15198..038c0360 100644 --- a/.github/workflows/coverage.yml +++ b/.github/workflows/coverage.yml @@ -18,7 +18,7 @@ jobs: - uses: actions/checkout@v4 - name: Install Rust - uses: actions-rust-lang/setup-rust-toolchain@v1.6.0 + uses: actions-rust-lang/setup-rust-toolchain@v1.8.0 with: components: llvm-tools-preview diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index a30c38ad..7ba03b73 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -18,7 +18,7 @@ jobs: steps: - uses: actions/checkout@v4 - - uses: actions-rust-lang/setup-rust-toolchain@v1.6.0 + - uses: actions-rust-lang/setup-rust-toolchain@v1.8.0 with: toolchain: nightly components: rustfmt @@ -35,7 +35,7 @@ jobs: steps: - uses: actions/checkout@v4 - - uses: actions-rust-lang/setup-rust-toolchain@v1.6.0 + - uses: actions-rust-lang/setup-rust-toolchain@v1.8.0 with: { components: clippy } - uses: giraffate/clippy-action@v1.0.1 @@ -50,7 +50,7 @@ jobs: - uses: actions/checkout@v4 - name: Install Rust (nightly-2023-10-10) - uses: actions-rust-lang/setup-rust-toolchain@v1.6.0 + uses: actions-rust-lang/setup-rust-toolchain@v1.8.0 with: toolchain: nightly-2023-10-10 diff --git a/.github/workflows/upload-doc.yml b/.github/workflows/upload-doc.yml index 3a97ddc7..62be1753 100644 --- a/.github/workflows/upload-doc.yml +++ b/.github/workflows/upload-doc.yml @@ -20,7 +20,7 @@ jobs: steps: - uses: actions/checkout@v4 - - uses: actions-rust-lang/setup-rust-toolchain@v1.6.0 + - uses: actions-rust-lang/setup-rust-toolchain@v1.8.0 with: { toolchain: nightly } - name: Build Docs From d85903b31a2ec2ee7c54fc3755222b40d9375141 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 15 Jan 2024 18:28:26 +0000 Subject: [PATCH 128/410] build(deps): bump taiki-e/install-action from 2.24.1 to 2.25.2 (#521) Bumps [taiki-e/install-action](https://github.com/taiki-e/install-action) from 2.24.1 to 2.25.2. - [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.24.1...v2.25.2) --- updated-dependencies: - dependency-name: taiki-e/install-action 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 | 6 +++--- .github/workflows/ci.yml | 2 +- .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 79a98743..357690bb 100644 --- a/.github/workflows/ci-post-merge.yml +++ b/.github/workflows/ci-post-merge.yml @@ -57,7 +57,7 @@ jobs: toolchain: ${{ matrix.version }} - name: Install cargo-hack and cargo-ci-cache-clean - uses: taiki-e/install-action@v2.24.1 + uses: taiki-e/install-action@v2.25.2 with: tool: cargo-hack,cargo-ci-cache-clean @@ -115,7 +115,7 @@ jobs: toolchain: nightly - name: Install cargo-hack & cargo-minimal-versions - uses: taiki-e/install-action@v2.24.1 + uses: taiki-e/install-action@v2.25.2 with: tool: cargo-hack,cargo-minimal-versions @@ -132,7 +132,7 @@ jobs: uses: actions-rust-lang/setup-rust-toolchain@v1.8.0 - name: Install cargo-nextest - uses: taiki-e/install-action@v2.24.1 + uses: taiki-e/install-action@v2.25.2 with: tool: cargo-nextest diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index d1ad2ee6..a3b47270 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -59,7 +59,7 @@ jobs: toolchain: ${{ matrix.version.version }} - name: Install cargo-hack and cargo-ci-cache-clean - uses: taiki-e/install-action@v2.24.1 + uses: taiki-e/install-action@v2.25.2 with: tool: cargo-hack,cargo-ci-cache-clean diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml index 038c0360..28516225 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.24.1 + uses: taiki-e/install-action@v2.25.2 with: tool: cargo-llvm-cov diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 7ba03b73..e0495b98 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -55,7 +55,7 @@ jobs: toolchain: nightly-2023-10-10 - name: Install just - uses: taiki-e/install-action@v2.24.1 + uses: taiki-e/install-action@v2.25.2 with: tool: just From 079f0f66f0a6e985c5055fc89923e9cf3fc9d963 Mon Sep 17 00:00:00 2001 From: Rob Ede Date: Wed, 17 Jan 2024 04:23:48 +0000 Subject: [PATCH 129/410] chore(tls): clippy --- actix-tls/Cargo.toml | 8 ++++---- actix-tls/src/connect/info.rs | 2 ++ actix-tls/src/connect/uri.rs | 4 +--- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/actix-tls/Cargo.toml b/actix-tls/Cargo.toml index baf1615a..e5a0998d 100755 --- a/actix-tls/Cargo.toml +++ b/actix-tls/Cargo.toml @@ -41,7 +41,7 @@ accept = [] connect = [] # use openssl impls -openssl = ["tls-openssl", "tokio-openssl"] +openssl = ["dep:tls-openssl", "dep:tokio-openssl"] # alias for backwards compat rustls = ["rustls-0_20"] @@ -61,10 +61,10 @@ rustls-0_22-webpki-roots = ["dep:tokio-rustls-025", "dep:rustls-pki-types-1", "d rustls-0_22-native-roots = ["dep:tokio-rustls-025", "dep:rustls-pki-types-1", "dep:rustls-native-certs-07"] # use native-tls impls -native-tls = ["tokio-native-tls"] +native-tls = ["dep:tokio-native-tls"] # support http::Uri as connect address -uri = ["http", "http-1"] +uri = ["dep:http-0_2", "dep:http-1"] [dependencies] actix-rt = { version = "2.2", default-features = false } @@ -79,7 +79,7 @@ tokio-util = "0.7" tracing = { version = "0.1.30", default-features = false, features = ["log"] } # uri -http = { version = "0.2.3", optional = true } +http-0_2 = { package = "http", version = "0.2.3", optional = true } http-1 = { package = "http", version = "1", optional = true } # openssl diff --git a/actix-tls/src/connect/info.rs b/actix-tls/src/connect/info.rs index 7bd1e5f3..f34cfb6e 100644 --- a/actix-tls/src/connect/info.rs +++ b/actix-tls/src/connect/info.rs @@ -118,6 +118,7 @@ impl ConnectInfo { /// let mut addrs = conn.addrs(); /// assert_eq!(addrs.next().unwrap(), addr); /// ``` + #[allow(clippy::implied_bounds_in_impls)] pub fn addrs( &self, ) -> impl Iterator @@ -149,6 +150,7 @@ impl ConnectInfo { /// let mut addrs = conn.take_addrs(); /// assert_eq!(addrs.next().unwrap(), addr); /// ``` + #[allow(clippy::implied_bounds_in_impls)] pub fn take_addrs( &mut self, ) -> impl Iterator diff --git a/actix-tls/src/connect/uri.rs b/actix-tls/src/connect/uri.rs index d260bab9..6bdb9e5d 100644 --- a/actix-tls/src/connect/uri.rs +++ b/actix-tls/src/connect/uri.rs @@ -1,8 +1,6 @@ -use http as http_02; - use super::Host; -impl Host for http_02::Uri { +impl Host for http_0_2::Uri { fn hostname(&self) -> &str { self.host().unwrap_or("") } From 968ad3b8548df3829ffdfd33a4bd75f25b8ad74f Mon Sep 17 00:00:00 2001 From: Rob Ede Date: Wed, 17 Jan 2024 04:26:46 +0000 Subject: [PATCH 130/410] chore(actix-tls): prepare release 3.2.0 --- actix-tls/CHANGES.md | 2 ++ actix-tls/Cargo.toml | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/actix-tls/CHANGES.md b/actix-tls/CHANGES.md index 2c49bebc..7bf90865 100644 --- a/actix-tls/CHANGES.md +++ b/actix-tls/CHANGES.md @@ -2,6 +2,8 @@ ## Unreleased +## 3.2.0 + - Support Rustls v0.22. - Added `{accept, connect}::rustls_0_22` modules. - Add `rustls-0_21-native-roots` and `rustls-0_20-native-roots` crate features which utilize the `rustls-native-certs` crate to enable a `native_roots_cert_store()` functions in each rustls-based `connect` module. diff --git a/actix-tls/Cargo.toml b/actix-tls/Cargo.toml index e5a0998d..630b7e08 100755 --- a/actix-tls/Cargo.toml +++ b/actix-tls/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "actix-tls" -version = "3.1.1" +version = "3.2.0" authors = [ "Nikolay Kim ", "Rob Ede ", From bd1467e92800191c2520374eabb3506f760bfec9 Mon Sep 17 00:00:00 2001 From: Rob Ede Date: Wed, 17 Jan 2024 04:27:52 +0000 Subject: [PATCH 131/410] chore(tls): changelog wording --- actix-tls/CHANGES.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/actix-tls/CHANGES.md b/actix-tls/CHANGES.md index 7bf90865..d6f16209 100644 --- a/actix-tls/CHANGES.md +++ b/actix-tls/CHANGES.md @@ -5,7 +5,7 @@ ## 3.2.0 - Support Rustls v0.22. -- Added `{accept, connect}::rustls_0_22` modules. +- Add `{accept, connect}::rustls_0_22` modules. - Add `rustls-0_21-native-roots` and `rustls-0_20-native-roots` crate features which utilize the `rustls-native-certs` crate to enable a `native_roots_cert_store()` functions in each rustls-based `connect` module. - Implement `Host` for `http::Uri` (`http` crate version `1`). @@ -16,8 +16,8 @@ ## 3.1.0 - Support Rustls v0.21. -- Added `{accept, connect}::rustls_0_21` modules. -- Added `{accept, connect}::rustls_0_20` alias for `{accept, connect}::rustls` modules. +- Add `{accept, connect}::rustls_0_21` modules. +- Add `{accept, connect}::rustls_0_20` alias for `{accept, connect}::rustls` modules. - Minimum supported Rust version (MSRV) is now 1.65. ## 3.0.4 From 1a5d85ec8b107e28106c188ab7945e8df36f3171 Mon Sep 17 00:00:00 2001 From: Rob Ede Date: Wed, 17 Jan 2024 04:29:44 +0000 Subject: [PATCH 132/410] fix(tls): resolve http imports --- actix-tls/tests/test_connect.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/actix-tls/tests/test_connect.rs b/actix-tls/tests/test_connect.rs index 58ffa4db..d3a68276 100644 --- a/actix-tls/tests/test_connect.rs +++ b/actix-tls/tests/test_connect.rs @@ -109,7 +109,7 @@ async fn test_openssl_uri() { }); let connector = Connector::default().service(); - let addr = http::Uri::try_from(format!("https://localhost:{}", srv.port())).unwrap(); + let addr = http_0_2::Uri::try_from(format!("https://localhost:{}", srv.port())).unwrap(); let con = connector.call(addr.into()).await.unwrap(); assert_eq!(con.peer_addr().unwrap(), srv.addr()); } @@ -145,7 +145,7 @@ async fn test_rustls_uri() { }); let conn = Connector::default().service(); - let addr = http::Uri::try_from(format!("https://localhost:{}", srv.port())).unwrap(); + let addr = http_1::Uri::try_from(format!("https://localhost:{}", srv.port())).unwrap(); let con = conn.call(addr.into()).await.unwrap(); assert_eq!(con.peer_addr().unwrap(), srv.addr()); } From 07e7f82345cea4c799c7f1057b9376778114ccc9 Mon Sep 17 00:00:00 2001 From: Rob Ede Date: Tue, 30 Jan 2024 21:16:42 +0000 Subject: [PATCH 133/410] chore(actix-codec): prepare release 0.5.2 --- actix-codec/CHANGES.md | 27 ++++++++++----------------- actix-codec/Cargo.toml | 2 +- 2 files changed, 11 insertions(+), 18 deletions(-) diff --git a/actix-codec/CHANGES.md b/actix-codec/CHANGES.md index ec54e407..61db9714 100644 --- a/actix-codec/CHANGES.md +++ b/actix-codec/CHANGES.md @@ -2,20 +2,18 @@ ## Unreleased +## 0.5.2 + - Minimum supported Rust version (MSRV) is now 1.65. ## 0.5.1 -- Logs emitted now use the `tracing` crate with `log` compatibility. [#451] +- Logs emitted now use the `tracing` crate with `log` compatibility. - Minimum supported Rust version (MSRV) is now 1.49. -[#451]: https://github.com/actix/actix-net/pull/451 - ## 0.5.0 -- Updated `tokio-util` dependency to `0.7.0`. [#446] - -[#446]: https://github.com/actix/actix-net/pull/446 +- Updated `tokio-util` dependency to `0.7.0`. ## 0.4.2 @@ -23,11 +21,8 @@ ## 0.4.1 -- Added `LinesCodec.` [#338] -- `Framed::poll_ready` flushes when the buffer is full. [#409] - -[#338]: https://github.com/actix/actix-net/pull/338 -[#409]: https://github.com/actix/actix-net/pull/409 +- Added `LinesCodec`. +- `Framed::poll_ready` flushes when the buffer is full. ## 0.4.0 @@ -35,12 +30,10 @@ ## 0.4.0-beta.1 -- Replace `pin-project` with `pin-project-lite`. [#237] -- Upgrade `tokio` dependency to `1`. [#237] -- Upgrade `tokio-util` dependency to `0.6`. [#237] -- Upgrade `bytes` dependency to `1`. [#237] - -[#237]: https://github.com/actix/actix-net/pull/237 +- Replace `pin-project` with `pin-project-lite`. +- Upgrade `tokio` dependency to `1`. +- Upgrade `tokio-util` dependency to `0.6`. +- Upgrade `bytes` dependency to `1`. ## 0.3.0 diff --git a/actix-codec/Cargo.toml b/actix-codec/Cargo.toml index 91fefc7c..d71c7c25 100644 --- a/actix-codec/Cargo.toml +++ b/actix-codec/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "actix-codec" -version = "0.5.1" +version = "0.5.2" authors = [ "Nikolay Kim ", "Rob Ede ", From fd32a0a97a91444e4486eae09fa84e3bdc9bc174 Mon Sep 17 00:00:00 2001 From: Rob Ede Date: Tue, 30 Jan 2024 21:51:12 +0000 Subject: [PATCH 134/410] ci: workaround half crate msrv --- .github/workflows/ci.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index a3b47270..f392c326 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -69,6 +69,8 @@ jobs: - name: workaround MSRV issues if: matrix.version.name == 'msrv' run: | + cargo update -p=ciborium --precise=0.2.1 + cargo update -p=ciborium-ll --precise=0.2.1 cargo update -p=time --precise=0.3.16 cargo update -p=clap --precise=4.3.24 cargo update -p=clap_lex --precise=0.5.0 From 7737ba5cfbe8913d7681835363596aa44b003bf6 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 30 Jan 2024 22:40:17 +0000 Subject: [PATCH 135/410] build(deps): bump codecov/codecov-action from 3.1.4 to 3.1.6 (#529) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/coverage.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml index 28516225..28235b20 100644 --- a/.github/workflows/coverage.yml +++ b/.github/workflows/coverage.yml @@ -31,7 +31,7 @@ jobs: run: cargo llvm-cov --workspace --all-features --codecov --output-path codecov.json - name: Upload coverage to Codecov - uses: codecov/codecov-action@v3.1.4 + uses: codecov/codecov-action@v3.1.6 with: files: codecov.json fail_ci_if_error: true From 88833355e4551f63e2426137c1d806bee8a7895a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 30 Jan 2024 22:41:04 +0000 Subject: [PATCH 136/410] build(deps): bump taiki-e/install-action from 2.25.2 to 2.26.7 (#527) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/ci-post-merge.yml | 6 +++--- .github/workflows/ci.yml | 2 +- .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 357690bb..8103a742 100644 --- a/.github/workflows/ci-post-merge.yml +++ b/.github/workflows/ci-post-merge.yml @@ -57,7 +57,7 @@ jobs: toolchain: ${{ matrix.version }} - name: Install cargo-hack and cargo-ci-cache-clean - uses: taiki-e/install-action@v2.25.2 + uses: taiki-e/install-action@v2.26.7 with: tool: cargo-hack,cargo-ci-cache-clean @@ -115,7 +115,7 @@ jobs: toolchain: nightly - name: Install cargo-hack & cargo-minimal-versions - uses: taiki-e/install-action@v2.25.2 + uses: taiki-e/install-action@v2.26.7 with: tool: cargo-hack,cargo-minimal-versions @@ -132,7 +132,7 @@ jobs: uses: actions-rust-lang/setup-rust-toolchain@v1.8.0 - name: Install cargo-nextest - uses: taiki-e/install-action@v2.25.2 + uses: taiki-e/install-action@v2.26.7 with: tool: cargo-nextest diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index f392c326..f829d8b9 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -59,7 +59,7 @@ jobs: toolchain: ${{ matrix.version.version }} - name: Install cargo-hack and cargo-ci-cache-clean - uses: taiki-e/install-action@v2.25.2 + uses: taiki-e/install-action@v2.26.7 with: tool: cargo-hack,cargo-ci-cache-clean diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml index 28235b20..5124a33d 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.25.2 + uses: taiki-e/install-action@v2.26.7 with: tool: cargo-llvm-cov diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index e0495b98..343b103b 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -55,7 +55,7 @@ jobs: toolchain: nightly-2023-10-10 - name: Install just - uses: taiki-e/install-action@v2.25.2 + uses: taiki-e/install-action@v2.26.7 with: tool: just From a1ae524512f70ba36bd9b1f6f10ad38dae7b6baa Mon Sep 17 00:00:00 2001 From: Rob Ede Date: Thu, 1 Feb 2024 06:42:41 +0000 Subject: [PATCH 137/410] docs: clean changelog --- actix-rt/CHANGES.md | 137 ++++++++++++++-------------------------- actix-server/CHANGES.md | 118 +++++++++++----------------------- 2 files changed, 83 insertions(+), 172 deletions(-) diff --git a/actix-rt/CHANGES.md b/actix-rt/CHANGES.md index dc2d0fc3..6a6b18b4 100644 --- a/actix-rt/CHANGES.md +++ b/actix-rt/CHANGES.md @@ -10,150 +10,105 @@ ## 2.8.0 -- Add `#[track_caller]` attribute to `spawn` functions and methods. [#454] -- Update `tokio-uring` dependency to `0.4`. [#473] +- Add `#[track_caller]` attribute to `spawn` functions and methods. +- Update `tokio-uring` dependency to `0.4`. - Minimum supported Rust version (MSRV) is now 1.59. -[#454]: https://github.com/actix/actix-net/pull/454 -[#473]: https://github.com/actix/actix-net/pull/473 - ## 2.7.0 -- Update `tokio-uring` dependency to `0.3`. [#448] +- Update `tokio-uring` dependency to `0.3`. - Minimum supported Rust version (MSRV) is now 1.49. -[#448]: https://github.com/actix/actix-net/pull/448 - ## 2.6.0 -- Update `tokio-uring` dependency to `0.2`. [#436] - -[#436]: https://github.com/actix/actix-net/pull/436 +- Update `tokio-uring` dependency to `0.2`. ## 2.5.1 -- Expose `System::with_tokio_rt` and `Arbiter::with_tokio_rt`. [#430] - -[#430]: https://github.com/actix/actix-net/pull/430 +- Expose `System::with_tokio_rt` and `Arbiter::with_tokio_rt`. ## 2.5.0 -- Add `System::run_with_code` to allow retrieving the exit code on stop. [#411] - -[#411]: https://github.com/actix/actix-net/pull/411 +- Add `System::run_with_code` to allow retrieving the exit code on stop. ## 2.4.0 -- Add `Arbiter::try_current` for situations where thread may or may not have Arbiter context. [#408] -- Start io-uring with `System::new` when feature is enabled. [#395] - -[#395]: https://github.com/actix/actix-net/pull/395 -[#408]: https://github.com/actix/actix-net/pull/408 +- Add `Arbiter::try_current` for situations where thread may or may not have Arbiter context. +- Start io-uring with `System::new` when feature is enabled. ## 2.3.0 -- The `spawn` method can now resolve with non-unit outputs. [#369] -- Add experimental (semver-exempt) `io-uring` feature for enabling async file I/O on linux. [#374] - -[#369]: https://github.com/actix/actix-net/pull/369 -[#374]: https://github.com/actix/actix-net/pull/374 +- The `spawn` method can now resolve with non-unit outputs. +- Add experimental (semver-exempt) `io-uring` feature for enabling async file I/O on linux. ## 2.2.0 -- **BREAKING** `ActixStream::{poll_read_ready, poll_write_ready}` methods now return `Ready` object in ok variant. [#293] +- **BREAKING** `ActixStream::{poll_read_ready, poll_write_ready}` methods now return `Ready` object in ok variant. - Breakage is acceptable since `ActixStream` was not intended to be public. -[#293]: https://github.com/actix/actix-net/pull/293 - ## 2.1.0 -- Add `ActixStream` extension trait to include readiness methods. [#276] -- Re-export `tokio::net::TcpSocket` in `net` module [#282] - -[#276]: https://github.com/actix/actix-net/pull/276 -[#282]: https://github.com/actix/actix-net/pull/282 +- Add `ActixStream` extension trait to include readiness methods. +- Re-export `tokio::net::TcpSocket` in `net` module ## 2.0.2 -- Add `Arbiter::handle` to get a handle of an owned Arbiter. [#274] -- Add `System::try_current` for situations where actix may or may not be running a System. [#275] - -[#274]: https://github.com/actix/actix-net/pull/274 -[#275]: https://github.com/actix/actix-net/pull/275 +- Add `Arbiter::handle` to get a handle of an owned Arbiter. +- Add `System::try_current` for situations where actix may or may not be running a System. ## 2.0.1 -- Expose `JoinError` from Tokio. [#271] - -[#271]: https://github.com/actix/actix-net/pull/271 +- Expose `JoinError` from Tokio. ## 2.0.0 -- Remove all Arbiter-local storage methods. [#262] -- Re-export `tokio::pin`. [#262] - -[#262]: https://github.com/actix/actix-net/pull/262 +- Remove all Arbiter-local storage methods. +- Re-export `tokio::pin`. ## 2.0.0-beta.3 -- Remove `run_in_tokio`, `attach_to_tokio` and `AsyncSystemRunner`. [#253] -- Return `JoinHandle` from `actix_rt::spawn`. [#253] -- Remove old `Arbiter::spawn`. Implementation is now inlined into `actix_rt::spawn`. [#253] -- Rename `Arbiter::{send => spawn}` and `Arbiter::{exec_fn => spawn_fn}`. [#253] -- Remove `Arbiter::exec`. [#253] -- Remove deprecated `Arbiter::local_join` and `Arbiter::is_running`. [#253] -- `Arbiter::spawn` now accepts !Unpin futures. [#256] -- `System::new` no longer takes arguments. [#257] -- Remove `System::with_current`. [#257] -- Remove `Builder`. [#257] -- Add `System::with_init` as replacement for `Builder::run`. [#257] -- Rename `System::{is_set => is_registered}`. [#257] -- Add `ArbiterHandle` for sending messages to non-current-thread arbiters. [#257]. -- `System::arbiter` now returns an `&ArbiterHandle`. [#257] -- `Arbiter::current` now returns an `ArbiterHandle` instead. [#257] -- `Arbiter::join` now takes self by value. [#257] - -[#253]: https://github.com/actix/actix-net/pull/253 -[#254]: https://github.com/actix/actix-net/pull/254 -[#256]: https://github.com/actix/actix-net/pull/256 -[#257]: https://github.com/actix/actix-net/pull/257 +- Remove `run_in_tokio`, `attach_to_tokio` and `AsyncSystemRunner`. +- Return `JoinHandle` from `actix_rt::spawn`. +- Remove old `Arbiter::spawn`. Implementation is now inlined into `actix_rt::spawn`. +- Rename `Arbiter::{send => spawn}` and `Arbiter::{exec_fn => spawn_fn}`. +- Remove `Arbiter::exec`. +- Remove deprecated `Arbiter::local_join` and `Arbiter::is_running`. +- `Arbiter::spawn` now accepts !Unpin futures. +- `System::new` no longer takes arguments. +- Remove `System::with_current`. +- Remove `Builder`. +- Add `System::with_init` as replacement for `Builder::run`. +- Rename `System::{is_set => is_registered}`. +- Add `ArbiterHandle` for sending messages to non-current-thread arbiters. +- `System::arbiter` now returns an `&ArbiterHandle`. +- `Arbiter::current` now returns an `ArbiterHandle` instead. +- `Arbiter::join` now takes self by value. ## 2.0.0-beta.2 -- Add `task` mod with re-export of `tokio::task::{spawn_blocking, yield_now, JoinHandle}` [#245] +- Add `task` mod with re-export of `tokio::task::{spawn_blocking, yield_now, JoinHandle}` - Add default "macros" feature to allow faster compile times when using `default-features=false`. -[#245]: https://github.com/actix/actix-net/pull/245 - ## 2.0.0-beta.1 -- Add `System::attach_to_tokio` method. [#173] -- Update `tokio` dependency to `1.0`. [#236] -- Rename `time` module `delay_for` to `sleep`, `delay_until` to `sleep_until`, `Delay` to `Sleep` to stay aligned with Tokio's naming. [#236] +- Add `System::attach_to_tokio` method. +- Update `tokio` dependency to `1.0`. +- Rename `time` module `delay_for` to `sleep`, `delay_until` to `sleep_until`, `Delay` to `Sleep` to stay aligned with Tokio's naming. - Remove `'static` lifetime requirement for `Runtime::block_on` and `SystemRunner::block_on`. - - These methods now accept `&self` when calling. [#236] -- Remove `'static` lifetime requirement for `System::run` and `Builder::run`. [#236] -- `Arbiter::spawn` now panics when `System` is not in scope. [#207] -- Fix work load issue by removing `PENDING` thread local. [#207] - -[#207]: https://github.com/actix/actix-net/pull/207 -[#236]: https://github.com/actix/actix-net/pull/236 + - These methods now accept `&self` when calling. +- Remove `'static` lifetime requirement for `System::run` and `Builder::run`. +- `Arbiter::spawn` now panics when `System` is not in scope. +- Fix work load issue by removing `PENDING` thread local. ## 1.1.1 -- Fix memory leak due to [#94] (see [#129] for more detail) - -[#129]: https://github.com/actix/actix-net/issues/129 +- Fix memory leak due to ## 1.1.0 _(YANKED)_ -- Expose `System::is_set` to check if current system has ben started [#99] -- Add `Arbiter::is_running` to check if event loop is running [#124] -- Add `Arbiter::local_join` associated function to get be able to `await` for spawned futures [#94] - -[#94]: https://github.com/actix/actix-net/pull/94 -[#99]: https://github.com/actix/actix-net/pull/99 -[#124]: https://github.com/actix/actix-net/pull/124 +- Expose `System::is_set` to check if current system has ben started +- Add `Arbiter::is_running` to check if event loop is running +- Add `Arbiter::local_join` associated function to get be able to `await` for spawned futures ## 1.0.0 diff --git a/actix-server/CHANGES.md b/actix-server/CHANGES.md index 9150031e..4a0dd3d6 100644 --- a/actix-server/CHANGES.md +++ b/actix-server/CHANGES.md @@ -10,9 +10,7 @@ ## 2.2.0 - Minimum supported Rust version (MSRV) is now 1.59. -- Update `tokio-uring` dependency to `0.4`. [#473] - -[#473]: https://github.com/actix/actix-net/pull/473 +- Update `tokio-uring` dependency to `0.4`. ## 2.1.1 @@ -20,12 +18,9 @@ ## 2.1.0 -- Update `tokio-uring` dependency to `0.3`. [#448] -- Logs emitted now use the `tracing` crate with `log` compatibility. [#448] -- Wait for accept thread to stop before sending completion signal. [#443] - -[#443]: https://github.com/actix/actix-net/pull/443 -[#448]: https://github.com/actix/actix-net/pull/448 +- Update `tokio-uring` dependency to `0.3`. +- Logs emitted now use the `tracing` crate with `log` compatibility. +- Wait for accept thread to stop before sending completion signal. ## 2.0.0 @@ -33,9 +28,7 @@ ## 2.0.0-rc.4 -- Update `tokio-uring` dependency to `0.2`. [#436] - -[#436]: https://github.com/actix/actix-net/pull/436 +- Update `tokio-uring` dependency to `0.2`. ## 2.0.0-rc.3 @@ -43,117 +36,80 @@ ## 2.0.0-rc.2 -- Simplify `TestServer`. [#431] - -[#431]: https://github.com/actix/actix-net/pull/431 +- Simplify `TestServer`. ## 2.0.0-rc.1 -- Hide implementation details of `Server`. [#424] -- `Server` now runs only after awaiting it. [#425] - -[#424]: https://github.com/actix/actix-net/pull/424 -[#425]: https://github.com/actix/actix-net/pull/425 +- Hide implementation details of `Server`. +- `Server` now runs only after awaiting it. ## 2.0.0-beta.9 -- Restore `Arbiter` support lost in `beta.8`. [#417] - -[#417]: https://github.com/actix/actix-net/pull/417 +- Restore `Arbiter` support lost in `beta.8`. ## 2.0.0-beta.8 -- Fix non-unix signal handler. [#410] - -[#410]: https://github.com/actix/actix-net/pull/410 +- Fix non-unix signal handler. ## 2.0.0-beta.7 -- Server can be started in regular Tokio runtime. [#408] -- Expose new `Server` type whose `Future` impl resolves when server stops. [#408] -- Rename `Server` to `ServerHandle`. [#407] -- Add `Server::handle` to obtain handle to server. [#408] -- Rename `ServerBuilder::{maxconn => max_concurrent_connections}`. [#407] -- Deprecate crate-level `new` shortcut for server builder. [#408] +- Server can be started in regular Tokio runtime. +- Expose new `Server` type whose `Future` impl resolves when server stops. +- Rename `Server` to `ServerHandle`. +- Add `Server::handle` to obtain handle to server. +- Rename `ServerBuilder::{maxconn => max_concurrent_connections}`. +- Deprecate crate-level `new` shortcut for server builder. - Minimum supported Rust version (MSRV) is now 1.52. -[#407]: https://github.com/actix/actix-net/pull/407 -[#408]: https://github.com/actix/actix-net/pull/408 - ## 2.0.0-beta.6 -- Add experimental (semver-exempt) `io-uring` feature for enabling async file I/O on linux. [#374] -- Server no long listens to `SIGHUP` signal. Previously, the received was not used but did block subsequent exit signals from working. [#389] -- Remove `config` module. `ServiceConfig`, `ServiceRuntime` public types are removed due to this change. [#349] -- Remove `ServerBuilder::configure` [#349] - -[#374]: https://github.com/actix/actix-net/pull/374 -[#349]: https://github.com/actix/actix-net/pull/349 -[#389]: https://github.com/actix/actix-net/pull/389 +- Add experimental (semver-exempt) `io-uring` feature for enabling async file I/O on linux. +- Server no long listens to `SIGHUP` signal. Previously, the received was not used but did block subsequent exit signals from working. +- Remove `config` module. `ServiceConfig`, `ServiceRuntime` public types are removed due to this change. +- Remove `ServerBuilder::configure`. ## 2.0.0-beta.5 -- Server shutdown notifies all workers to exit regardless if shutdown is graceful. This causes all workers to shutdown immediately in force shutdown case. [#333] - -[#333]: https://github.com/actix/actix-net/pull/333 +- Server shutdown notifies all workers to exit regardless if shutdown is graceful. This causes all workers to shutdown immediately in force shutdown case. ## 2.0.0-beta.4 - Prevent panic when `shutdown_timeout` is very large. [f9262db] -[f9262db]: https://github.com/actix/actix-net/commit/f9262db - ## 2.0.0-beta.3 -- Hidden `ServerBuilder::start` method has been removed. Use `ServerBuilder::run`. [#246] -- Add retry for EINTR signal (`io::Interrupted`) in `Accept`'s poll loop. [#264] -- Add `ServerBuilder::worker_max_blocking_threads` to customize blocking thread pool size. [#265] -- Update `actix-rt` to `2.0.0`. [#273] - -[#246]: https://github.com/actix/actix-net/pull/246 -[#264]: https://github.com/actix/actix-net/pull/264 -[#265]: https://github.com/actix/actix-net/pull/265 -[#273]: https://github.com/actix/actix-net/pull/273 +- Hidden `ServerBuilder::start` method has been removed. Use `ServerBuilder::run`. +- Add retry for EINTR signal (`io::Interrupted`) in `Accept`'s poll loop. +- Add `ServerBuilder::worker_max_blocking_threads` to customize blocking thread pool size. +- Update `actix-rt` to `2.0.0`. ## 2.0.0-beta.2 -- Merge `actix-testing` to `actix-server` as `test_server` mod. [#242] - -[#242]: https://github.com/actix/actix-net/pull/242 +- Merge `actix-testing` to `actix-server` as `test_server` mod. ## 2.0.0-beta.1 -- Added explicit info log message on accept queue pause. [#215] -- Prevent double registration of sockets when back-pressure is resolved. [#223] -- Update `mio` dependency to `0.7.3`. [#239] -- Remove `socket2` dependency. [#239] -- `ServerBuilder::backlog` now accepts `u32` instead of `i32`. [#239] -- Remove `AcceptNotify` type and pass `WakerQueue` to `Worker` to wake up `Accept`'s `Poll`. [#239] -- Convert `mio::net::TcpStream` to `actix_rt::net::TcpStream`(`UnixStream` for uds) using `FromRawFd` and `IntoRawFd`(`FromRawSocket` and `IntoRawSocket` on windows). [#239] -- Remove `AsyncRead` and `AsyncWrite` trait bound for `socket::FromStream` trait. [#239] - -[#215]: https://github.com/actix/actix-net/pull/215 -[#223]: https://github.com/actix/actix-net/pull/223 -[#239]: https://github.com/actix/actix-net/pull/239 +- Added explicit info log message on accept queue pause. +- Prevent double registration of sockets when back-pressure is resolved. +- Update `mio` dependency to `0.7.3`. +- Remove `socket2` dependency. +- `ServerBuilder::backlog` now accepts `u32` instead of `i32`. +- Remove `AcceptNotify` type and pass `WakerQueue` to `Worker` to wake up `Accept`'s `Poll`. +- Convert `mio::net::TcpStream` to `actix_rt::net::TcpStream`(`UnixStream` for uds) using `FromRawFd` and `IntoRawFd`(`FromRawSocket` and `IntoRawSocket` on windows). +- Remove `AsyncRead` and `AsyncWrite` trait bound for `socket::FromStream` trait. ## 1.0.4 - Update actix-codec to 0.3.0. -- Workers must be greater than 0. [#167] - -[#167]: https://github.com/actix/actix-net/pull/167 +- Workers must be greater than 0. ## 1.0.3 -- Replace deprecated `net2` crate with `socket2` [#140] - -[#140]: https://github.com/actix/actix-net/pull/140 +- Replace deprecated `net2` crate with `socket2`. ## 1.0.2 -- Avoid error by calling `reregister()` on Windows [#103] - -[#103]: https://github.com/actix/actix-net/pull/103 +- Avoid error by calling `reregister()` on Windows. ## 1.0.1 From e427911cdbd70bcf8bad80b6d5c9b8c0c6535dc0 Mon Sep 17 00:00:00 2001 From: Rob Ede Date: Sat, 3 Feb 2024 16:39:21 +0000 Subject: [PATCH 138/410] feat(tls): rustls-0_22 create feature --- actix-rt/src/lib.rs | 1 + actix-tls/CHANGES.md | 2 ++ actix-tls/Cargo.toml | 5 +++-- actix-tls/src/accept/mod.rs | 8 ++------ 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/actix-rt/src/lib.rs b/actix-rt/src/lib.rs index 6f8057de..fc2a56ba 100644 --- a/actix-rt/src/lib.rs +++ b/actix-rt/src/lib.rs @@ -34,6 +34,7 @@ //! ``` //! //! # `io-uring` Support +//! //! There is experimental support for using io-uring with this crate by enabling the //! `io-uring` feature. For now, it is semver exempt. //! diff --git a/actix-tls/CHANGES.md b/actix-tls/CHANGES.md index d6f16209..8f7e8a3c 100644 --- a/actix-tls/CHANGES.md +++ b/actix-tls/CHANGES.md @@ -2,6 +2,8 @@ ## Unreleased +- Add `rustls-0_22` create feature which excludes any root certificate methods or re-exports. + ## 3.2.0 - Support Rustls v0.22. diff --git a/actix-tls/Cargo.toml b/actix-tls/Cargo.toml index 630b7e08..cbfa0f12 100755 --- a/actix-tls/Cargo.toml +++ b/actix-tls/Cargo.toml @@ -57,8 +57,9 @@ rustls-0_21-webpki-roots = ["tokio-rustls-024", "webpki-roots-025"] rustls-0_21-native-roots = ["tokio-rustls-024", "dep:rustls-native-certs-06"] # use rustls v0.22 impls -rustls-0_22-webpki-roots = ["dep:tokio-rustls-025", "dep:rustls-pki-types-1", "dep:webpki-roots-026"] -rustls-0_22-native-roots = ["dep:tokio-rustls-025", "dep:rustls-pki-types-1", "dep:rustls-native-certs-07"] +rustls-0_22 = ["dep:tokio-rustls-025", "dep:rustls-pki-types-1"] +rustls-0_22-webpki-roots = ["rustls-0_22", "dep:webpki-roots-026"] +rustls-0_22-native-roots = ["rustls-0_22", "dep:rustls-native-certs-07"] # use native-tls impls native-tls = ["dep:tokio-native-tls"] diff --git a/actix-tls/src/accept/mod.rs b/actix-tls/src/accept/mod.rs index e884bd33..2302723e 100644 --- a/actix-tls/src/accept/mod.rs +++ b/actix-tls/src/accept/mod.rs @@ -22,10 +22,7 @@ pub use rustls_0_20 as rustls; #[cfg(feature = "rustls-0_21")] pub mod rustls_0_21; -#[cfg(any( - feature = "rustls-0_22-webpki-roots", - feature = "rustls-0_22-native-roots", -))] +#[cfg(feature = "rustls-0_22")] pub mod rustls_0_22; #[cfg(feature = "native-tls")] @@ -37,8 +34,7 @@ pub(crate) static MAX_CONN: AtomicUsize = AtomicUsize::new(256); feature = "openssl", feature = "rustls-0_20", feature = "rustls-0_21", - feature = "rustls-0_22-webpki-roots", - feature = "rustls-0_22-native-roots", + feature = "rustls-0_22", feature = "native-tls", ))] pub(crate) const DEFAULT_TLS_HANDSHAKE_TIMEOUT: std::time::Duration = From 9a3f3eef6ab2e245bed4b565b336bfbaf3acc6dd Mon Sep 17 00:00:00 2001 From: Rob Ede Date: Sat, 3 Feb 2024 17:01:47 +0000 Subject: [PATCH 139/410] test(tls): fix accept-openssl test --- .cargo/config.toml | 5 +++-- actix-tls/Cargo.toml | 4 ++-- actix-tls/src/connect/mod.rs | 5 +---- actix-tls/tests/accept-openssl.rs | 37 +++++++++++++++++-------------- actix-tls/tests/accept-rustls.rs | 10 ++++----- 5 files changed, 30 insertions(+), 31 deletions(-) diff --git a/.cargo/config.toml b/.cargo/config.toml index 8f1ff8a7..537e721c 100644 --- a/.cargo/config.toml +++ b/.cargo/config.toml @@ -15,8 +15,9 @@ ci-check-linux = "hack --workspace --feature-powerset --depth=2 check --tests -- # tests avoiding io-uring feature ci-test = "hack --feature-powerset --depth=2 --exclude-features=io-uring test --lib --tests --no-fail-fast -- --nocapture" -ci-test-rustls-020 = "hack --feature-powerset --depth=2 --exclude-features=io-uring,rustls-0_21 test --lib --tests --no-fail-fast -- --nocapture" -ci-test-rustls-021 = "hack --feature-powerset --depth=2 --exclude-features=io-uring,rustls-0_20 test --lib --tests --no-fail-fast -- --nocapture" +ci-test-rustls-020 = "hack --feature-powerset --depth=2 --exclude-features=io-uring,rustls-0_21,rustls-0_22 test --lib --tests --no-fail-fast -- --nocapture" +ci-test-rustls-021 = "hack --feature-powerset --depth=2 --exclude-features=io-uring,rustls-0_20,rustls-0_22 test --lib --tests --no-fail-fast -- --nocapture" +ci-test-rustls-022 = "hack --feature-powerset --depth=2 --exclude-features=io-uring,rustls-0_20,rustls-0_21 test --lib --tests --no-fail-fast -- --nocapture" # tests avoiding io-uring feature on Windows ci-test-win = "hack --feature-powerset --depth=2 --exclude-features=io-uring test --lib --tests --no-fail-fast -- --nocapture" diff --git a/actix-tls/Cargo.toml b/actix-tls/Cargo.toml index cbfa0f12..f103d447 100755 --- a/actix-tls/Cargo.toml +++ b/actix-tls/Cargo.toml @@ -117,11 +117,11 @@ bytes = "1" env_logger = "0.10" futures-util = { version = "0.3.17", default-features = false, features = ["sink"] } itertools = "0.12" -rcgen = "0.11" +rcgen = "0.12" rustls-pemfile = "2" tokio-rustls-025 = { package = "tokio-rustls", version = "0.25" } trust-dns-resolver = "0.23" [[example]] name = "accept-rustls" -required-features = ["accept", "rustls-0_22-webpki-roots"] +required-features = ["accept", "rustls-0_22"] diff --git a/actix-tls/src/connect/mod.rs b/actix-tls/src/connect/mod.rs index b742e76e..1e77d98a 100644 --- a/actix-tls/src/connect/mod.rs +++ b/actix-tls/src/connect/mod.rs @@ -46,10 +46,7 @@ pub use rustls_0_20 as rustls; ))] pub mod rustls_0_21; -#[cfg(any( - feature = "rustls-0_22-webpki-roots", - feature = "rustls-0_22-native-roots", -))] +#[cfg(feature = "rustls-0_22")] pub mod rustls_0_22; #[cfg(feature = "native-tls")] diff --git a/actix-tls/tests/accept-openssl.rs b/actix-tls/tests/accept-openssl.rs index a3506b1b..e571a282 100644 --- a/actix-tls/tests/accept-openssl.rs +++ b/actix-tls/tests/accept-openssl.rs @@ -12,11 +12,13 @@ use std::{io::Write as _, sync::Arc}; use actix_rt::net::TcpStream; use actix_server::TestServer; use actix_service::ServiceFactoryExt as _; -use actix_tls::accept::openssl::{Acceptor, TlsStream}; +use actix_tls::{ + accept::openssl::{Acceptor, TlsStream}, + connect::rustls_0_22::reexports::ClientConfig, +}; use actix_utils::future::ok; use rustls_pki_types_1::ServerName; -use tokio_rustls::rustls::{ClientConfig, RootCertStore}; -use tokio_rustls_025 as tokio_rustls; +use tokio_rustls_025::rustls::RootCertStore; fn new_cert_and_key() -> (String, String) { let cert = @@ -47,39 +49,40 @@ fn openssl_acceptor(cert: String, key: String) -> tls_openssl::ssl::SslAcceptor builder.build() } -#[allow(dead_code)] mod danger { + use rustls_pki_types_1::{CertificateDer, ServerName, UnixTime}; use tokio_rustls_025::rustls; + /// Disables certificate verification to allow self-signed certs from rcgen. #[derive(Debug)] pub struct NoCertificateVerification; impl rustls::client::danger::ServerCertVerifier for NoCertificateVerification { fn verify_server_cert( &self, - end_entity: &rustls_pki_types_1::CertificateDer::CertificateDer<'_>, - intermediates: &[rustls_pki_types_1::CertificateDer::CertificateDer<'_>], - server_name: &rustls_pki_types_1::CertificateDer::ServerName<'_>, - ocsp_response: &[u8], - now: rustls_pki_types_1::CertificateDer::UnixTime, + _end_entity: &CertificateDer<'_>, + _intermediates: &[CertificateDer<'_>], + _server_name: &ServerName<'_>, + _ocsp_response: &[u8], + _now: UnixTime, ) -> Result { Ok(rustls::client::danger::ServerCertVerified::assertion()) } fn verify_tls12_signature( &self, - message: &[u8], - cert: &rustls_pki_types_1::CertificateDer<'_>, - dss: &rustls::DigitallySignedStruct, + _message: &[u8], + _cert: &rustls_pki_types_1::CertificateDer<'_>, + _dss: &rustls::DigitallySignedStruct, ) -> Result { Ok(rustls::client::danger::HandshakeSignatureValid::assertion()) } fn verify_tls13_signature( &self, - message: &[u8], - cert: &rustls_pki_types_1::CertificateDer<'_>, - dss: &rustls::DigitallySignedStruct, + _message: &[u8], + _cert: &rustls_pki_types_1::CertificateDer<'_>, + _dss: &rustls::DigitallySignedStruct, ) -> Result { Ok(rustls::client::danger::HandshakeSignatureValid::assertion()) } @@ -134,13 +137,13 @@ async fn accepts_connections() { let config = rustls_connector(cert, key); let config = Arc::new(config); - let mut conn = tokio_rustls::rustls::ClientConnection::new( + let mut conn = tokio_rustls_025::rustls::ClientConnection::new( config, ServerName::try_from("localhost").unwrap(), ) .unwrap(); - let mut stream = tokio_rustls::rustls::Stream::new(&mut conn, &mut sock); + let mut stream = tokio_rustls_025::rustls::Stream::new(&mut conn, &mut sock); stream.flush().expect("TLS handshake failed"); } diff --git a/actix-tls/tests/accept-rustls.rs b/actix-tls/tests/accept-rustls.rs index 554f0fc1..bed2f6c3 100644 --- a/actix-tls/tests/accept-rustls.rs +++ b/actix-tls/tests/accept-rustls.rs @@ -15,14 +15,13 @@ use actix_rt::net::TcpStream; use actix_server::TestServer; use actix_service::ServiceFactoryExt as _; use actix_tls::{ - accept::rustls_0_21::{Acceptor, TlsStream}, + accept::rustls_0_22::{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; -use tokio_rustls::rustls::{self, Certificate, PrivateKey, ServerConfig}; -use tokio_rustls_024 as tokio_rustls; fn new_cert_and_key() -> (String, String) { let cert = @@ -35,7 +34,7 @@ fn new_cert_and_key() -> (String, String) { (cert, key) } -fn rustls_server_config(cert: String, key: String) -> rustls::ServerConfig { +fn rustls_server_config(cert: String, key: String) -> ServerConfig { // Load TLS key and cert files let cert = &mut BufReader::new(cert.as_bytes()); @@ -47,9 +46,8 @@ fn rustls_server_config(cert: String, key: String) -> rustls::ServerConfig { .unwrap(); let mut config = ServerConfig::builder() - .with_safe_defaults() .with_no_client_auth() - .with_single_cert(cert_chain, PrivateKey(keys.remove(0))) + .with_single_cert(cert_chain, PrivateKeyDer::Pkcs8(keys.remove(0))) .unwrap(); config.alpn_protocols = vec![b"http/1.1".to_vec()]; From 57fd6ea8098d1f2d281c305fc331216c4fe1992e Mon Sep 17 00:00:00 2001 From: Rob Ede Date: Sat, 3 Feb 2024 20:26:15 +0000 Subject: [PATCH 140/410] chore(actix-tls): prepare release 3.3.0 (#530) --- .github/workflows/ci-post-merge.yml | 10 +++++----- .github/workflows/ci.yml | 10 +++++----- actix-tls/CHANGES.md | 2 ++ actix-tls/Cargo.toml | 2 +- actix-tls/README.md | 21 +++++++++++++++++++++ actix-tls/src/connect/rustls_0_22.rs | 13 ++++++------- 6 files changed, 40 insertions(+), 18 deletions(-) create mode 100644 actix-tls/README.md diff --git a/.github/workflows/ci-post-merge.yml b/.github/workflows/ci-post-merge.yml index 8103a742..88bbceb6 100644 --- a/.github/workflows/ci-post-merge.yml +++ b/.github/workflows/ci-post-merge.yml @@ -44,12 +44,12 @@ jobs: - name: Install OpenSSL if: matrix.target.os == 'windows-latest' - run: choco install openssl -y --forcex64 --no-progress - - name: Set OpenSSL dir in env - if: matrix.target.os == 'windows-latest' + shell: bash run: | - echo 'OPENSSL_DIR=C:\Program Files\OpenSSL-Win64' | Out-File -FilePath $env:GITHUB_ENV -Append - echo 'OPENSSL_DIR=C:\Program Files\OpenSSL' | Out-File -FilePath $env:GITHUB_ENV -Append + set -e + choco install openssl --version=1.1.1.2100 -y --no-progress + echo 'OPENSSL_DIR=C:\Program Files\OpenSSL' >> $GITHUB_ENV + echo "RUSTFLAGS=-C target-feature=+crt-static" >> $GITHUB_ENV - name: Install Rust (${{ matrix.version }}) uses: actions-rust-lang/setup-rust-toolchain@v1.8.0 diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index f829d8b9..4f29e0b9 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -46,12 +46,12 @@ jobs: - name: Install OpenSSL if: matrix.target.os == 'windows-latest' - run: choco install openssl -y --forcex64 --no-progress - - name: Set OpenSSL dir in env - if: matrix.target.os == 'windows-latest' + shell: bash run: | - echo 'OPENSSL_DIR=C:\Program Files\OpenSSL-Win64' | Out-File -FilePath $env:GITHUB_ENV -Append - echo 'OPENSSL_DIR=C:\Program Files\OpenSSL' | Out-File -FilePath $env:GITHUB_ENV -Append + set -e + choco install openssl --version=1.1.1.2100 -y --no-progress + echo 'OPENSSL_DIR=C:\Program Files\OpenSSL' >> $GITHUB_ENV + echo "RUSTFLAGS=-C target-feature=+crt-static" >> $GITHUB_ENV - name: Install Rust (${{ matrix.version.name }}) uses: actions-rust-lang/setup-rust-toolchain@v1.8.0 diff --git a/actix-tls/CHANGES.md b/actix-tls/CHANGES.md index 8f7e8a3c..57932a30 100644 --- a/actix-tls/CHANGES.md +++ b/actix-tls/CHANGES.md @@ -2,6 +2,8 @@ ## Unreleased +## 3.3.0 + - Add `rustls-0_22` create feature which excludes any root certificate methods or re-exports. ## 3.2.0 diff --git a/actix-tls/Cargo.toml b/actix-tls/Cargo.toml index f103d447..7078efeb 100755 --- a/actix-tls/Cargo.toml +++ b/actix-tls/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "actix-tls" -version = "3.2.0" +version = "3.3.0" authors = [ "Nikolay Kim ", "Rob Ede ", diff --git a/actix-tls/README.md b/actix-tls/README.md new file mode 100644 index 00000000..555a601b --- /dev/null +++ b/actix-tls/README.md @@ -0,0 +1,21 @@ +# `actix-tls` + +> TLS acceptor and connector services for the Actix ecosystem. + + + +[![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.3.0)](https://docs.rs/actix-tls/3.3.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) +![MIT or Apache 2.0 licensed](https://img.shields.io/crates/l/actix-tls.svg) +
+[![Dependency Status](https://deps.rs/crate/actix-tls/3.3.0/status.svg)](https://deps.rs/crate/actix-tls/3.3.0) +![Download](https://img.shields.io/crates/d/actix-tls.svg) +[![Chat on Discord](https://img.shields.io/discord/771444961383153695?label=chat&logo=discord)](https://discord.gg/NWpN5mmg3x) + + + +## Resources + +- [Library Documentation](https://docs.rs/actix-tls) +- [Examples](/actix-tls/examples) diff --git a/actix-tls/src/connect/rustls_0_22.rs b/actix-tls/src/connect/rustls_0_22.rs index bb6f5f83..c3e8b35d 100644 --- a/actix-tls/src/connect/rustls_0_22.rs +++ b/actix-tls/src/connect/rustls_0_22.rs @@ -16,9 +16,8 @@ use actix_utils::future::{ok, Ready}; use futures_core::ready; use rustls_pki_types_1::ServerName; use tokio_rustls::{ - client::TlsStream as AsyncTlsStream, - rustls::{ClientConfig, RootCertStore}, - Connect as RustlsConnect, TlsConnector as RustlsTlsConnector, + client::TlsStream as AsyncTlsStream, rustls::ClientConfig, Connect as RustlsConnect, + TlsConnector as RustlsTlsConnector, }; use tokio_rustls_025 as tokio_rustls; @@ -36,8 +35,8 @@ pub mod reexports { /// /// See [`rustls_native_certs::load_native_certs()`] for more info on behavior and errors. #[cfg(feature = "rustls-0_22-native-roots")] -pub fn native_roots_cert_store() -> io::Result { - let mut root_certs = RootCertStore::empty(); +pub fn native_roots_cert_store() -> io::Result { + let mut root_certs = tokio_rustls::rustls::RootCertStore::empty(); for cert in rustls_native_certs_07::load_native_certs()? { root_certs.add(cert).unwrap(); @@ -48,8 +47,8 @@ pub fn native_roots_cert_store() -> io::Result { /// Returns standard root certificates from `webpki-roots` crate as a rustls certificate store. #[cfg(feature = "rustls-0_22-webpki-roots")] -pub fn webpki_roots_cert_store() -> RootCertStore { - let mut root_certs = RootCertStore::empty(); +pub fn webpki_roots_cert_store() -> tokio_rustls::rustls::RootCertStore { + let mut root_certs = tokio_rustls::rustls::RootCertStore::empty(); root_certs.extend(webpki_roots_026::TLS_SERVER_ROOTS.to_owned()); root_certs } From 21be7d84bd220af7c18824b41e652becee448aea Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 5 Feb 2024 21:10:06 +0000 Subject: [PATCH 141/410] build(deps): bump codecov/codecov-action from 3.1.6 to 4.0.1 (#532) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Rob Ede --- .github/workflows/coverage.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml index 5124a33d..7b4d6024 100644 --- a/.github/workflows/coverage.yml +++ b/.github/workflows/coverage.yml @@ -31,7 +31,9 @@ jobs: run: cargo llvm-cov --workspace --all-features --codecov --output-path codecov.json - name: Upload coverage to Codecov - uses: codecov/codecov-action@v3.1.6 + uses: codecov/codecov-action@v4.0.1 with: files: codecov.json fail_ci_if_error: true + env: + CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} From bd8bd1020b5741188bc4a570d5cfde5e52e58511 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 5 Feb 2024 21:10:17 +0000 Subject: [PATCH 142/410] build(deps): bump taiki-e/install-action from 2.26.7 to 2.26.13 (#531) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/ci-post-merge.yml | 6 +++--- .github/workflows/ci.yml | 2 +- .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 88bbceb6..18ae7a3d 100644 --- a/.github/workflows/ci-post-merge.yml +++ b/.github/workflows/ci-post-merge.yml @@ -57,7 +57,7 @@ jobs: toolchain: ${{ matrix.version }} - name: Install cargo-hack and cargo-ci-cache-clean - uses: taiki-e/install-action@v2.26.7 + uses: taiki-e/install-action@v2.26.13 with: tool: cargo-hack,cargo-ci-cache-clean @@ -115,7 +115,7 @@ jobs: toolchain: nightly - name: Install cargo-hack & cargo-minimal-versions - uses: taiki-e/install-action@v2.26.7 + uses: taiki-e/install-action@v2.26.13 with: tool: cargo-hack,cargo-minimal-versions @@ -132,7 +132,7 @@ jobs: uses: actions-rust-lang/setup-rust-toolchain@v1.8.0 - name: Install cargo-nextest - uses: taiki-e/install-action@v2.26.7 + uses: taiki-e/install-action@v2.26.13 with: tool: cargo-nextest diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 4f29e0b9..5083c865 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -59,7 +59,7 @@ jobs: toolchain: ${{ matrix.version.version }} - name: Install cargo-hack and cargo-ci-cache-clean - uses: taiki-e/install-action@v2.26.7 + uses: taiki-e/install-action@v2.26.13 with: tool: cargo-hack,cargo-ci-cache-clean diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml index 7b4d6024..8249e765 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.26.7 + uses: taiki-e/install-action@v2.26.13 with: tool: cargo-llvm-cov diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 343b103b..493bf242 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -55,7 +55,7 @@ jobs: toolchain: nightly-2023-10-10 - name: Install just - uses: taiki-e/install-action@v2.26.7 + uses: taiki-e/install-action@v2.26.13 with: tool: just From 5792d9f01047e2e4f488233bde61016b18edddec Mon Sep 17 00:00:00 2001 From: Rob Ede Date: Mon, 19 Feb 2024 11:29:31 +0000 Subject: [PATCH 143/410] docs: fix repo links --- actix-server/Cargo.toml | 2 +- actix-tracing/Cargo.toml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/actix-server/Cargo.toml b/actix-server/Cargo.toml index 3a939218..bd801caf 100755 --- a/actix-server/Cargo.toml +++ b/actix-server/Cargo.toml @@ -10,7 +10,7 @@ description = "General purpose TCP server built for the Actix ecosystem" keywords = ["network", "tcp", "server", "framework", "async"] categories = ["network-programming", "asynchronous"] homepage = "https://actix.rs" -repository = "https://github.com/actix/actix-net.git" +repository = "https://github.com/actix/actix-net/tree/master/actix-server" license = "MIT OR Apache-2.0" edition.workspace = true rust-version.workspace = true diff --git a/actix-tracing/Cargo.toml b/actix-tracing/Cargo.toml index 0c64e9ab..21974a7d 100644 --- a/actix-tracing/Cargo.toml +++ b/actix-tracing/Cargo.toml @@ -5,7 +5,7 @@ authors = ["Rajasekharan Vengalil "] description = "Support for tokio tracing with Actix services" keywords = ["network", "framework", "tracing"] homepage = "https://actix.rs" -repository = "https://github.com/actix/actix-net.git" +repository = "https://github.com/actix/actix-net/tree/master/actix-tracing" documentation = "https://docs.rs/actix-tracing" categories = ["network-programming", "asynchronous"] license = "MIT OR Apache-2.0" From 3cb247874e3999f96e964ba05ee635ce2ffe8421 Mon Sep 17 00:00:00 2001 From: Rob Ede Date: Mon, 19 Feb 2024 11:31:41 +0000 Subject: [PATCH 144/410] ci: workaround ahash msrv --- .github/workflows/ci.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 5083c865..dc52ab14 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -69,6 +69,7 @@ jobs: - name: workaround MSRV issues if: matrix.version.name == 'msrv' run: | + cargo update -p=ahash --precise=0.8.7 cargo update -p=ciborium --precise=0.2.1 cargo update -p=ciborium-ll --precise=0.2.1 cargo update -p=time --precise=0.3.16 From 39bab048004228af794a9c0a9d9bd1192253fa53 Mon Sep 17 00:00:00 2001 From: Rob Ede Date: Mon, 19 Feb 2024 11:36:15 +0000 Subject: [PATCH 145/410] chore: remove redundant imports --- actix-rt/src/arbiter.rs | 2 +- actix-rt/src/system.rs | 2 +- actix-tracing/src/lib.rs | 2 +- bytestring/src/lib.rs | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/actix-rt/src/arbiter.rs b/actix-rt/src/arbiter.rs index 48cc752f..ee647aef 100644 --- a/actix-rt/src/arbiter.rs +++ b/actix-rt/src/arbiter.rs @@ -16,7 +16,7 @@ use crate::system::{System, SystemCommand}; pub(crate) static COUNT: AtomicUsize = AtomicUsize::new(0); thread_local!( - static HANDLE: RefCell> = RefCell::new(None); + static HANDLE: RefCell> = const { RefCell::new(None) }; ); pub(crate) enum ArbiterCommand { diff --git a/actix-rt/src/system.rs b/actix-rt/src/system.rs index 4c276beb..367a2d21 100644 --- a/actix-rt/src/system.rs +++ b/actix-rt/src/system.rs @@ -16,7 +16,7 @@ use crate::{arbiter::ArbiterHandle, Arbiter}; static SYSTEM_COUNT: AtomicUsize = AtomicUsize::new(0); thread_local!( - static CURRENT: RefCell> = RefCell::new(None); + static CURRENT: RefCell> = const { RefCell::new(None) }; ); /// A manager for a per-thread distributed async runtime. diff --git a/actix-tracing/src/lib.rs b/actix-tracing/src/lib.rs index b1b9061b..4107b429 100644 --- a/actix-tracing/src/lib.rs +++ b/actix-tracing/src/lib.rs @@ -131,7 +131,7 @@ mod test { use super::*; thread_local! { - static SPAN: RefCell> = RefCell::new(Vec::new()); + static SPAN: RefCell> = const { RefCell::new(Vec::new()) }; } #[derive(Default)] diff --git a/bytestring/src/lib.rs b/bytestring/src/lib.rs index 80ab085e..6cb164dc 100644 --- a/bytestring/src/lib.rs +++ b/bytestring/src/lib.rs @@ -13,7 +13,7 @@ use alloc::{ string::{String, ToString}, vec::Vec, }; -use core::{borrow::Borrow, convert::TryFrom, fmt, hash, ops, str}; +use core::{borrow::Borrow, fmt, hash, ops, str}; use bytes::Bytes; From 40b10847df4c22a4ae7cc9c74c7e3060223da9a8 Mon Sep 17 00:00:00 2001 From: Rob Ede Date: Mon, 19 Feb 2024 12:10:47 +0000 Subject: [PATCH 146/410] chore: remove redundant imports --- actix-tls/src/connect/rustls_0_20.rs | 1 - actix-tls/src/connect/rustls_0_21.rs | 1 - actix-tls/tests/test_connect.rs | 4 ---- 3 files changed, 6 deletions(-) diff --git a/actix-tls/src/connect/rustls_0_20.rs b/actix-tls/src/connect/rustls_0_20.rs index 19553044..5a114b2a 100644 --- a/actix-tls/src/connect/rustls_0_20.rs +++ b/actix-tls/src/connect/rustls_0_20.rs @@ -3,7 +3,6 @@ //! See [`TlsConnector`] for main connector service factory docs. use std::{ - convert::TryFrom, future::Future, io, pin::Pin, diff --git a/actix-tls/src/connect/rustls_0_21.rs b/actix-tls/src/connect/rustls_0_21.rs index 7474327a..bf922ede 100644 --- a/actix-tls/src/connect/rustls_0_21.rs +++ b/actix-tls/src/connect/rustls_0_21.rs @@ -3,7 +3,6 @@ //! See [`TlsConnector`] for main connector service factory docs. use std::{ - convert::TryFrom, future::Future, io, pin::Pin, diff --git a/actix-tls/tests/test_connect.rs b/actix-tls/tests/test_connect.rs index d3a68276..820df7e3 100644 --- a/actix-tls/tests/test_connect.rs +++ b/actix-tls/tests/test_connect.rs @@ -98,8 +98,6 @@ async fn service_factory() { #[cfg(all(feature = "openssl", feature = "uri"))] #[actix_rt::test] async fn test_openssl_uri() { - use std::convert::TryFrom; - let srv = TestServer::start(|| { fn_service(|io: TcpStream| async { let mut framed = Framed::new(io, BytesCodec); @@ -134,8 +132,6 @@ async fn test_rustls_uri_http1() { #[cfg(all(feature = "rustls-0_22", feature = "uri"))] #[actix_rt::test] async fn test_rustls_uri() { - use std::convert::TryFrom; - let srv = TestServer::start(|| { fn_service(|io: TcpStream| async { let mut framed = Framed::new(io, BytesCodec); From 0f71fd5a7a7aa6dd81106d65995707455f4a3e23 Mon Sep 17 00:00:00 2001 From: Rob Ede Date: Mon, 19 Feb 2024 12:19:08 +0000 Subject: [PATCH 147/410] chore: remove redundant imports --- actix-service/src/apply.rs | 4 +--- actix-service/src/fn_service.rs | 1 - actix-service/src/map.rs | 4 +--- actix-service/src/map_err.rs | 4 +--- actix-service/src/transform.rs | 1 - 5 files changed, 3 insertions(+), 11 deletions(-) diff --git a/actix-service/src/apply.rs b/actix-service/src/apply.rs index d33bdcd8..8c7097c0 100644 --- a/actix-service/src/apply.rs +++ b/actix-service/src/apply.rs @@ -208,15 +208,13 @@ where #[cfg(test)] mod tests { - use core::task::Poll; - use futures_util::future::lazy; use super::*; use crate::{ ok, pipeline::{pipeline, pipeline_factory}, - Ready, Service, ServiceFactory, + Ready, }; #[derive(Clone)] diff --git a/actix-service/src/fn_service.rs b/actix-service/src/fn_service.rs index 2dac8697..c0f8a9c3 100644 --- a/actix-service/src/fn_service.rs +++ b/actix-service/src/fn_service.rs @@ -351,7 +351,6 @@ mod tests { use futures_util::future::lazy; use super::*; - use crate::{ok, Service, ServiceFactory}; #[actix_rt::test] async fn test_fn_service() { diff --git a/actix-service/src/map.rs b/actix-service/src/map.rs index 49ddd9fe..97aec16e 100644 --- a/actix-service/src/map.rs +++ b/actix-service/src/map.rs @@ -202,9 +202,7 @@ mod tests { use futures_util::future::lazy; use super::*; - use crate::{ - ok, IntoServiceFactory, Ready, Service, ServiceExt, ServiceFactory, ServiceFactoryExt, - }; + use crate::{ok, IntoServiceFactory, Ready, ServiceExt, ServiceFactoryExt}; struct Srv; diff --git a/actix-service/src/map_err.rs b/actix-service/src/map_err.rs index 780a64c7..da77b242 100644 --- a/actix-service/src/map_err.rs +++ b/actix-service/src/map_err.rs @@ -205,9 +205,7 @@ mod tests { use futures_util::future::lazy; use super::*; - use crate::{ - err, ok, IntoServiceFactory, Ready, Service, ServiceExt, ServiceFactory, ServiceFactoryExt, - }; + use crate::{err, ok, IntoServiceFactory, Ready, ServiceExt, ServiceFactoryExt}; struct Srv; diff --git a/actix-service/src/transform.rs b/actix-service/src/transform.rs index e39f3058..e29d2b2b 100644 --- a/actix-service/src/transform.rs +++ b/actix-service/src/transform.rs @@ -226,7 +226,6 @@ mod tests { use actix_utils::future::{ready, Ready}; use super::*; - use crate::Service; // pseudo-doctest for Transform trait pub struct TimeoutTransform { From 850f6c0491822b41b3c6f9e46065a9e61b277a29 Mon Sep 17 00:00:00 2001 From: Rob Ede Date: Mon, 19 Feb 2024 12:32:06 +0000 Subject: [PATCH 148/410] chore: allow unused trait in test --- actix-utils/src/future/poll_fn.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/actix-utils/src/future/poll_fn.rs b/actix-utils/src/future/poll_fn.rs index 0c798f46..09638bcf 100644 --- a/actix-utils/src/future/poll_fn.rs +++ b/actix-utils/src/future/poll_fn.rs @@ -103,6 +103,7 @@ mod tests { #[allow(dead_code)] fn require_sync(_t: &T) {} + #[allow(unused)] trait AmbiguousIfUnpin
{ fn some_item(&self) {} } From db925bf8e6086c7cb2f3631844d753575505f183 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 1 Mar 2024 18:05:48 +0000 Subject: [PATCH 149/410] build(deps): bump taiki-e/install-action from 2.26.13 to 2.27.11 (#536) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/ci-post-merge.yml | 6 +++--- .github/workflows/ci.yml | 2 +- .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 18ae7a3d..90cf7acf 100644 --- a/.github/workflows/ci-post-merge.yml +++ b/.github/workflows/ci-post-merge.yml @@ -57,7 +57,7 @@ jobs: toolchain: ${{ matrix.version }} - name: Install cargo-hack and cargo-ci-cache-clean - uses: taiki-e/install-action@v2.26.13 + uses: taiki-e/install-action@v2.27.11 with: tool: cargo-hack,cargo-ci-cache-clean @@ -115,7 +115,7 @@ jobs: toolchain: nightly - name: Install cargo-hack & cargo-minimal-versions - uses: taiki-e/install-action@v2.26.13 + uses: taiki-e/install-action@v2.27.11 with: tool: cargo-hack,cargo-minimal-versions @@ -132,7 +132,7 @@ jobs: uses: actions-rust-lang/setup-rust-toolchain@v1.8.0 - name: Install cargo-nextest - uses: taiki-e/install-action@v2.26.13 + uses: taiki-e/install-action@v2.27.11 with: tool: cargo-nextest diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index dc52ab14..2ffb6aab 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -59,7 +59,7 @@ jobs: toolchain: ${{ matrix.version.version }} - name: Install cargo-hack and cargo-ci-cache-clean - uses: taiki-e/install-action@v2.26.13 + uses: taiki-e/install-action@v2.27.11 with: tool: cargo-hack,cargo-ci-cache-clean diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml index 8249e765..5af02116 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.26.13 + uses: taiki-e/install-action@v2.27.11 with: tool: cargo-llvm-cov diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 493bf242..d16e27e8 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -55,7 +55,7 @@ jobs: toolchain: nightly-2023-10-10 - name: Install just - uses: taiki-e/install-action@v2.26.13 + uses: taiki-e/install-action@v2.27.11 with: tool: just From eb5cec0064b267f7cfa14d755403ab0d2729a720 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 1 Mar 2024 18:06:10 +0000 Subject: [PATCH 150/410] build(deps): bump codecov/codecov-action from 4.0.1 to 4.0.2 (#535) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/coverage.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml index 5af02116..8caed9a2 100644 --- a/.github/workflows/coverage.yml +++ b/.github/workflows/coverage.yml @@ -31,7 +31,7 @@ jobs: run: cargo llvm-cov --workspace --all-features --codecov --output-path codecov.json - name: Upload coverage to Codecov - uses: codecov/codecov-action@v4.0.1 + uses: codecov/codecov-action@v4.0.2 with: files: codecov.json fail_ci_if_error: true From b4990023c474c4e24a10d27f058457e11443e731 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 5 Mar 2024 17:49:17 +0000 Subject: [PATCH 151/410] build(deps): bump taiki-e/install-action from 2.27.11 to 2.28.1 (#537) Bumps [taiki-e/install-action](https://github.com/taiki-e/install-action) from 2.27.11 to 2.28.1. - [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.27.11...v2.28.1) --- updated-dependencies: - dependency-name: taiki-e/install-action 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 | 6 +++--- .github/workflows/ci.yml | 2 +- .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 90cf7acf..f681f67a 100644 --- a/.github/workflows/ci-post-merge.yml +++ b/.github/workflows/ci-post-merge.yml @@ -57,7 +57,7 @@ jobs: toolchain: ${{ matrix.version }} - name: Install cargo-hack and cargo-ci-cache-clean - uses: taiki-e/install-action@v2.27.11 + uses: taiki-e/install-action@v2.28.1 with: tool: cargo-hack,cargo-ci-cache-clean @@ -115,7 +115,7 @@ jobs: toolchain: nightly - name: Install cargo-hack & cargo-minimal-versions - uses: taiki-e/install-action@v2.27.11 + uses: taiki-e/install-action@v2.28.1 with: tool: cargo-hack,cargo-minimal-versions @@ -132,7 +132,7 @@ jobs: uses: actions-rust-lang/setup-rust-toolchain@v1.8.0 - name: Install cargo-nextest - uses: taiki-e/install-action@v2.27.11 + uses: taiki-e/install-action@v2.28.1 with: tool: cargo-nextest diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 2ffb6aab..623587df 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -59,7 +59,7 @@ jobs: toolchain: ${{ matrix.version.version }} - name: Install cargo-hack and cargo-ci-cache-clean - uses: taiki-e/install-action@v2.27.11 + uses: taiki-e/install-action@v2.28.1 with: tool: cargo-hack,cargo-ci-cache-clean diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml index 8caed9a2..fa2506d7 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.27.11 + uses: taiki-e/install-action@v2.28.1 with: tool: cargo-llvm-cov diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index d16e27e8..84883106 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -55,7 +55,7 @@ jobs: toolchain: nightly-2023-10-10 - name: Install just - uses: taiki-e/install-action@v2.27.11 + uses: taiki-e/install-action@v2.28.1 with: tool: just From 481cf554140c7f64a6c0e6b93a800a327937c17b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 5 Mar 2024 17:51:42 +0000 Subject: [PATCH 152/410] build(deps): bump codecov/codecov-action from 4.0.2 to 4.1.0 (#538) Bumps [codecov/codecov-action](https://github.com/codecov/codecov-action) from 4.0.2 to 4.1.0. - [Release notes](https://github.com/codecov/codecov-action/releases) - [Changelog](https://github.com/codecov/codecov-action/blob/main/CHANGELOG.md) - [Commits](https://github.com/codecov/codecov-action/compare/v4.0.2...v4.1.0) --- updated-dependencies: - dependency-name: codecov/codecov-action 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/coverage.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml index fa2506d7..13fe3121 100644 --- a/.github/workflows/coverage.yml +++ b/.github/workflows/coverage.yml @@ -31,7 +31,7 @@ jobs: run: cargo llvm-cov --workspace --all-features --codecov --output-path codecov.json - name: Upload coverage to Codecov - uses: codecov/codecov-action@v4.0.2 + uses: codecov/codecov-action@v4.1.0 with: files: codecov.json fail_ci_if_error: true From 10bd847177c6c5ecbbdc37ecba78bc36508f1a91 Mon Sep 17 00:00:00 2001 From: Rob Ede Date: Thu, 2 May 2024 01:28:38 +0100 Subject: [PATCH 153/410] ci: fix msrv checks --- .github/workflows/ci.yml | 13 +++---------- Cargo.toml | 2 +- justfile | 12 ++++++++++++ 3 files changed, 16 insertions(+), 11 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 623587df..47aba831 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -58,24 +58,17 @@ jobs: with: toolchain: ${{ matrix.version.version }} - - name: Install cargo-hack and cargo-ci-cache-clean + - name: Install just, cargo-hack, cargo-ci-cache-clean uses: taiki-e/install-action@v2.28.1 with: - tool: cargo-hack,cargo-ci-cache-clean + tool: just,cargo-hack,cargo-ci-cache-clean - name: Generate Cargo.lock run: cargo generate-lockfile - name: workaround MSRV issues if: matrix.version.name == 'msrv' - run: | - cargo update -p=ahash --precise=0.8.7 - cargo update -p=ciborium --precise=0.2.1 - cargo update -p=ciborium-ll --precise=0.2.1 - cargo update -p=time --precise=0.3.16 - cargo update -p=clap --precise=4.3.24 - cargo update -p=clap_lex --precise=0.5.0 - cargo update -p=anstyle --precise=1.0.2 + run: just downgrade-msrv - name: check lib if: > diff --git a/Cargo.toml b/Cargo.toml index 696de4a5..ae46b5d7 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,4 +1,5 @@ [workspace] +resolver = "2" members = [ "actix-codec", "actix-macros", @@ -12,7 +13,6 @@ members = [ "local-channel", "local-waker", ] -resolver = "2" [workspace.package] license = "MIT OR Apache-2.0" diff --git a/justfile b/justfile index 86bd8412..511d2180 100644 --- a/justfile +++ b/justfile @@ -1,6 +1,18 @@ _list: @just --list +# Downgrade dev-dependencies necessary to run MSRV checks/tests. +[private] +downgrade-msrv: + cargo update -p=ahash --precise=0.8.7 + cargo update -p=ciborium --precise=0.2.1 + cargo update -p=ciborium-ll --precise=0.2.1 + cargo update -p=time --precise=0.3.16 + cargo update -p=clap --precise=4.3.24 + cargo update -p=clap_lex --precise=0.5.0 + cargo update -p=anstyle --precise=1.0.2 + cargo update -p=trybuild --precise=1.0.89 + # Document crates in workspace. doc: RUSTDOCFLAGS="--cfg=docsrs" cargo +nightly doc --no-deps --workspace --features=rustls,openssl From b826bf8471b5b75c433e411630f62c254cdcf6ae Mon Sep 17 00:00:00 2001 From: Rob Ede Date: Thu, 2 May 2024 01:48:55 +0100 Subject: [PATCH 154/410] ci: relax ahash msrv pin --- justfile | 1 - 1 file changed, 1 deletion(-) diff --git a/justfile b/justfile index 511d2180..364e8be9 100644 --- a/justfile +++ b/justfile @@ -4,7 +4,6 @@ _list: # Downgrade dev-dependencies necessary to run MSRV checks/tests. [private] downgrade-msrv: - cargo update -p=ahash --precise=0.8.7 cargo update -p=ciborium --precise=0.2.1 cargo update -p=ciborium-ll --precise=0.2.1 cargo update -p=time --precise=0.3.16 From 875218488c555aa8b72839ade920c1230341fdb3 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 2 May 2024 02:20:21 +0100 Subject: [PATCH 155/410] build(deps): bump taiki-e/install-action from 2.28.1 to 2.33.12 (#553) Bumps [taiki-e/install-action](https://github.com/taiki-e/install-action) from 2.28.1 to 2.33.12. - [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.28.1...v2.33.12) --- updated-dependencies: - dependency-name: taiki-e/install-action 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 | 6 +++--- .github/workflows/ci.yml | 2 +- .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 f681f67a..ed611bfb 100644 --- a/.github/workflows/ci-post-merge.yml +++ b/.github/workflows/ci-post-merge.yml @@ -57,7 +57,7 @@ jobs: toolchain: ${{ matrix.version }} - name: Install cargo-hack and cargo-ci-cache-clean - uses: taiki-e/install-action@v2.28.1 + uses: taiki-e/install-action@v2.33.12 with: tool: cargo-hack,cargo-ci-cache-clean @@ -115,7 +115,7 @@ jobs: toolchain: nightly - name: Install cargo-hack & cargo-minimal-versions - uses: taiki-e/install-action@v2.28.1 + uses: taiki-e/install-action@v2.33.12 with: tool: cargo-hack,cargo-minimal-versions @@ -132,7 +132,7 @@ jobs: uses: actions-rust-lang/setup-rust-toolchain@v1.8.0 - name: Install cargo-nextest - uses: taiki-e/install-action@v2.28.1 + uses: taiki-e/install-action@v2.33.12 with: tool: cargo-nextest diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 47aba831..c53a2917 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -59,7 +59,7 @@ jobs: toolchain: ${{ matrix.version.version }} - name: Install just, cargo-hack, cargo-ci-cache-clean - uses: taiki-e/install-action@v2.28.1 + uses: taiki-e/install-action@v2.33.12 with: tool: just,cargo-hack,cargo-ci-cache-clean diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml index 13fe3121..8887579e 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.28.1 + uses: taiki-e/install-action@v2.33.12 with: tool: cargo-llvm-cov diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 84883106..1045955e 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -55,7 +55,7 @@ jobs: toolchain: nightly-2023-10-10 - name: Install just - uses: taiki-e/install-action@v2.28.1 + uses: taiki-e/install-action@v2.33.12 with: tool: just From d5171c2ab3cd754a89240be08d598983a2d26ebd Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 2 May 2024 02:20:35 +0100 Subject: [PATCH 156/410] build(deps): bump taiki-e/cache-cargo-install-action from 1.3.0 to 2.0.0 (#551) Bumps [taiki-e/cache-cargo-install-action](https://github.com/taiki-e/cache-cargo-install-action) from 1.3.0 to 2.0.0. - [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/v1.3.0...v2.0.0) --- updated-dependencies: - dependency-name: taiki-e/cache-cargo-install-action dependency-type: direct:production update-type: version-update:semver-major ... 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 1045955e..1e7dac41 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -60,7 +60,7 @@ jobs: tool: just - name: Install cargo-check-external-types - uses: taiki-e/cache-cargo-install-action@v1.3.0 + uses: taiki-e/cache-cargo-install-action@v2.0.0 with: tool: cargo-check-external-types@0.1.10 From 234a4c9c7fb160aff587f623b88188de9ac02ac3 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 2 May 2024 02:20:46 +0100 Subject: [PATCH 157/410] build(deps): bump JamesIves/github-pages-deploy-action (#549) Bumps [JamesIves/github-pages-deploy-action](https://github.com/jamesives/github-pages-deploy-action) from 4.5.0 to 4.6.0. - [Release notes](https://github.com/jamesives/github-pages-deploy-action/releases) - [Commits](https://github.com/jamesives/github-pages-deploy-action/compare/v4.5.0...v4.6.0) --- updated-dependencies: - dependency-name: JamesIves/github-pages-deploy-action 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/upload-doc.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/upload-doc.yml b/.github/workflows/upload-doc.yml index 62be1753..2d70e7ff 100644 --- a/.github/workflows/upload-doc.yml +++ b/.github/workflows/upload-doc.yml @@ -30,7 +30,7 @@ jobs: run: echo '' > target/doc/index.html - name: Deploy to GitHub Pages - uses: JamesIves/github-pages-deploy-action@v4.5.0 + uses: JamesIves/github-pages-deploy-action@v4.6.0 with: folder: target/doc single-commit: true From 85191934c86456a442548a73d9c9842a992ebce5 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 2 May 2024 03:24:47 +0100 Subject: [PATCH 158/410] build(deps): bump codecov/codecov-action from 4.1.0 to 4.3.0 (#548) Bumps [codecov/codecov-action](https://github.com/codecov/codecov-action) from 4.1.0 to 4.3.0. - [Release notes](https://github.com/codecov/codecov-action/releases) - [Changelog](https://github.com/codecov/codecov-action/blob/main/CHANGELOG.md) - [Commits](https://github.com/codecov/codecov-action/compare/v4.1.0...v4.3.0) --- updated-dependencies: - dependency-name: codecov/codecov-action 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/coverage.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml index 8887579e..5698e271 100644 --- a/.github/workflows/coverage.yml +++ b/.github/workflows/coverage.yml @@ -31,7 +31,7 @@ jobs: run: cargo llvm-cov --workspace --all-features --codecov --output-path codecov.json - name: Upload coverage to Codecov - uses: codecov/codecov-action@v4.1.0 + uses: codecov/codecov-action@v4.3.0 with: files: codecov.json fail_ci_if_error: true From f947374a7310305d071e10268bd52ae1402f1620 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 6 May 2024 22:02:32 +0100 Subject: [PATCH 159/410] build(deps): bump codecov/codecov-action from 4.3.0 to 4.3.1 (#556) Bumps [codecov/codecov-action](https://github.com/codecov/codecov-action) from 4.3.0 to 4.3.1. - [Release notes](https://github.com/codecov/codecov-action/releases) - [Changelog](https://github.com/codecov/codecov-action/blob/main/CHANGELOG.md) - [Commits](https://github.com/codecov/codecov-action/compare/v4.3.0...v4.3.1) --- updated-dependencies: - dependency-name: codecov/codecov-action 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/coverage.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml index 5698e271..5c228c97 100644 --- a/.github/workflows/coverage.yml +++ b/.github/workflows/coverage.yml @@ -31,7 +31,7 @@ jobs: run: cargo llvm-cov --workspace --all-features --codecov --output-path codecov.json - name: Upload coverage to Codecov - uses: codecov/codecov-action@v4.3.0 + uses: codecov/codecov-action@v4.3.1 with: files: codecov.json fail_ci_if_error: true From 95ca8f0318dd03a4d085f533f469c2e5d9740002 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 6 May 2024 22:02:51 +0100 Subject: [PATCH 160/410] build(deps): bump taiki-e/install-action from 2.33.12 to 2.33.17 (#555) Bumps [taiki-e/install-action](https://github.com/taiki-e/install-action) from 2.33.12 to 2.33.17. - [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.33.12...v2.33.17) --- updated-dependencies: - dependency-name: taiki-e/install-action 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/ci-post-merge.yml | 6 +++--- .github/workflows/ci.yml | 2 +- .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 ed611bfb..621ba81d 100644 --- a/.github/workflows/ci-post-merge.yml +++ b/.github/workflows/ci-post-merge.yml @@ -57,7 +57,7 @@ jobs: toolchain: ${{ matrix.version }} - name: Install cargo-hack and cargo-ci-cache-clean - uses: taiki-e/install-action@v2.33.12 + uses: taiki-e/install-action@v2.33.17 with: tool: cargo-hack,cargo-ci-cache-clean @@ -115,7 +115,7 @@ jobs: toolchain: nightly - name: Install cargo-hack & cargo-minimal-versions - uses: taiki-e/install-action@v2.33.12 + uses: taiki-e/install-action@v2.33.17 with: tool: cargo-hack,cargo-minimal-versions @@ -132,7 +132,7 @@ jobs: uses: actions-rust-lang/setup-rust-toolchain@v1.8.0 - name: Install cargo-nextest - uses: taiki-e/install-action@v2.33.12 + uses: taiki-e/install-action@v2.33.17 with: tool: cargo-nextest diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index c53a2917..f77d2cb9 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -59,7 +59,7 @@ jobs: toolchain: ${{ matrix.version.version }} - name: Install just, cargo-hack, cargo-ci-cache-clean - uses: taiki-e/install-action@v2.33.12 + uses: taiki-e/install-action@v2.33.17 with: tool: just,cargo-hack,cargo-ci-cache-clean diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml index 5c228c97..a9074a51 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.33.12 + uses: taiki-e/install-action@v2.33.17 with: tool: cargo-llvm-cov diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 1e7dac41..b6f88db5 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -55,7 +55,7 @@ jobs: toolchain: nightly-2023-10-10 - name: Install just - uses: taiki-e/install-action@v2.33.12 + uses: taiki-e/install-action@v2.33.17 with: tool: just From 3147dbe7ca91bcf45715bfd93819ac1acab62593 Mon Sep 17 00:00:00 2001 From: Rob Ede Date: Sat, 11 May 2024 15:10:56 +0100 Subject: [PATCH 161/410] ci: rely more on just recipes (#558) --- .cargo/config.toml | 7 +--- .github/workflows/ci-post-merge.yml | 10 +++--- .github/workflows/ci.yml | 45 +++++++++-------------- actix-tls/src/connect/rustls_0_20.rs | 2 ++ actix-tls/src/connect/rustls_0_21.rs | 2 ++ actix-tls/src/connect/rustls_0_22.rs | 2 ++ actix-tracing/Cargo.toml | 2 +- justfile | 53 +++++++++++++++++++++++----- 8 files changed, 74 insertions(+), 49 deletions(-) diff --git a/.cargo/config.toml b/.cargo/config.toml index 537e721c..33cf3dc1 100644 --- a/.cargo/config.toml +++ b/.cargo/config.toml @@ -2,8 +2,6 @@ lint = "clippy --workspace --tests --examples --bins -- -Dclippy::todo" lint-all = "clippy --workspace --all-features --tests --examples --bins -- -Dclippy::todo" -ci-doctest = "test --workspace --all-features --doc --no-fail-fast -- --nocapture" - # just check the library (without dev deps) ci-check-min = "hack --workspace check --no-default-features" ci-check-lib = "hack --workspace --feature-powerset --depth=2 --exclude-features=io-uring check" @@ -19,8 +17,5 @@ ci-test-rustls-020 = "hack --feature-powerset --depth=2 --exclude-features=io-ur ci-test-rustls-021 = "hack --feature-powerset --depth=2 --exclude-features=io-uring,rustls-0_20,rustls-0_22 test --lib --tests --no-fail-fast -- --nocapture" ci-test-rustls-022 = "hack --feature-powerset --depth=2 --exclude-features=io-uring,rustls-0_20,rustls-0_21 test --lib --tests --no-fail-fast -- --nocapture" -# tests avoiding io-uring feature on Windows -ci-test-win = "hack --feature-powerset --depth=2 --exclude-features=io-uring test --lib --tests --no-fail-fast -- --nocapture" - # test with io-uring feature -ci-test-linux = "hack --feature-powerset --depth=2 --exclude-features=rustls-0_20 test --lib --tests --no-fail-fast -- --nocapture" +ci-test-linux = "hack --feature-powerset --depth=2 --exclude-features=rustls-0_20,rustls-0_21 test --lib --tests --no-fail-fast -- --nocapture" diff --git a/.github/workflows/ci-post-merge.yml b/.github/workflows/ci-post-merge.yml index 621ba81d..e27a2fe8 100644 --- a/.github/workflows/ci-post-merge.yml +++ b/.github/workflows/ci-post-merge.yml @@ -56,10 +56,10 @@ jobs: with: toolchain: ${{ matrix.version }} - - name: Install cargo-hack and cargo-ci-cache-clean + - name: Install just, cargo-hack, cargo-nextest, cargo-ci-cache-clean uses: taiki-e/install-action@v2.33.17 with: - tool: cargo-hack,cargo-ci-cache-clean + tool: just,cargo-hack,cargo-nextest,cargo-ci-cache-clean - name: check lib if: > @@ -84,10 +84,8 @@ jobs: run: cargo ci-check-linux - name: tests - if: > - matrix.target.os != 'ubuntu-latest' - && matrix.target.triple != 'x86_64-pc-windows-gnu' - run: cargo ci-test + if: matrix.target.os != 'ubuntu-latest' + run: just test-code - name: tests if: matrix.target.os == 'ubuntu-latest' run: >- diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index f77d2cb9..412ed481 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -25,7 +25,7 @@ jobs: - { name: Windows (MinGW), os: windows-latest, triple: x86_64-pc-windows-gnu } - { name: Windows (32-bit), os: windows-latest, triple: i686-pc-windows-msvc } version: - - { name: msrv, version: 1.65.0 } + - { name: msrv, version: 1.70.0 } - { name: stable, version: stable } name: ${{ matrix.target.name }} / ${{ matrix.version.name }} @@ -58,17 +58,17 @@ jobs: with: toolchain: ${{ matrix.version.version }} - - name: Install just, cargo-hack, cargo-ci-cache-clean + - name: Install just, cargo-hack, cargo-nextest, cargo-ci-cache-clean uses: taiki-e/install-action@v2.33.17 with: - tool: just,cargo-hack,cargo-ci-cache-clean + tool: just,cargo-hack,cargo-nextest,cargo-ci-cache-clean - name: Generate Cargo.lock run: cargo generate-lockfile - name: workaround MSRV issues if: matrix.version.name == 'msrv' - run: just downgrade-msrv + run: just downgrade-for-msrv - name: check lib if: > @@ -79,7 +79,7 @@ jobs: if: matrix.target.os == 'ubuntu-latest' run: cargo ci-check-lib-linux - name: check lib - if: matrix.target.triple == 'x86_64-pc-windows-gnu' + if: matrix.target.triple != 'x86_64-pc-windows-gnu' run: cargo ci-check-min - name: check full @@ -93,30 +93,15 @@ jobs: run: cargo ci-check-linux - name: tests - if: matrix.target.os == 'macos-latest' - run: cargo ci-test - - name: tests - if: > - matrix.target.os == 'windows-latest' - && matrix.target.triple != 'x86_64-pc-windows-gnu' - run: cargo ci-test-win - - name: tests - if: matrix.target.os == 'ubuntu-latest' - run: >- - sudo bash -c " - ulimit -Sl 512 - && ulimit -Hl 512 - && PATH=$PATH:/usr/share/rust/.cargo/bin - && RUSTUP_TOOLCHAIN=${{ matrix.version.version }} cargo ci-test-rustls-020 - && RUSTUP_TOOLCHAIN=${{ matrix.version.version }} cargo ci-test-rustls-021 - && RUSTUP_TOOLCHAIN=${{ matrix.version.version }} cargo ci-test-linux - " + run: just test + + # TODO: re-instate some io-uring tests for PRs - name: CI cache clean run: cargo-ci-cache-clean - rustdoc: - name: rustdoc + docs: + name: Documentation runs-on: ubuntu-latest steps: @@ -127,6 +112,10 @@ jobs: with: toolchain: nightly - - name: doc tests io-uring - run: | - sudo bash -c "ulimit -Sl 512 && ulimit -Hl 512 && PATH=$PATH:/usr/share/rust/.cargo/bin && RUSTUP_TOOLCHAIN=nightly cargo ci-doctest" + - name: Install just + uses: taiki-e/install-action@v2.33.17 + with: + tool: just + + - name: doc tests + run: just test-docs diff --git a/actix-tls/src/connect/rustls_0_20.rs b/actix-tls/src/connect/rustls_0_20.rs index 5a114b2a..fc65b686 100644 --- a/actix-tls/src/connect/rustls_0_20.rs +++ b/actix-tls/src/connect/rustls_0_20.rs @@ -34,6 +34,8 @@ pub mod reexports { /// Returns root certificates via `rustls-native-certs` crate as a rustls certificate store. /// /// See [`rustls_native_certs::load_native_certs()`] for more info on behavior and errors. +/// +/// [`rustls_native_certs::load_native_certs()`]: rustls_native_certs_06::load_native_certs() #[cfg(feature = "rustls-0_20-native-roots")] pub fn native_roots_cert_store() -> io::Result { let mut root_certs = RootCertStore::empty(); diff --git a/actix-tls/src/connect/rustls_0_21.rs b/actix-tls/src/connect/rustls_0_21.rs index bf922ede..071cb98e 100644 --- a/actix-tls/src/connect/rustls_0_21.rs +++ b/actix-tls/src/connect/rustls_0_21.rs @@ -34,6 +34,8 @@ pub mod reexports { /// Returns root certificates via `rustls-native-certs` crate as a rustls certificate store. /// /// See [`rustls_native_certs::load_native_certs()`] for more info on behavior and errors. +/// +/// [`rustls_native_certs::load_native_certs()`]: rustls_native_certs_06::load_native_certs() #[cfg(feature = "rustls-0_21-native-roots")] pub fn native_roots_cert_store() -> io::Result { let mut root_certs = RootCertStore::empty(); diff --git a/actix-tls/src/connect/rustls_0_22.rs b/actix-tls/src/connect/rustls_0_22.rs index c3e8b35d..7db1c7d8 100644 --- a/actix-tls/src/connect/rustls_0_22.rs +++ b/actix-tls/src/connect/rustls_0_22.rs @@ -34,6 +34,8 @@ pub mod reexports { /// Returns root certificates via `rustls-native-certs` crate as a rustls certificate store. /// /// See [`rustls_native_certs::load_native_certs()`] for more info on behavior and errors. +/// +/// [`rustls_native_certs::load_native_certs()`]: rustls_native_certs_07::load_native_certs() #[cfg(feature = "rustls-0_22-native-roots")] pub fn native_roots_cert_store() -> io::Result { let mut root_certs = tokio_rustls::rustls::RootCertStore::empty(); diff --git a/actix-tracing/Cargo.toml b/actix-tracing/Cargo.toml index 21974a7d..6e06beed 100644 --- a/actix-tracing/Cargo.toml +++ b/actix-tracing/Cargo.toml @@ -27,6 +27,6 @@ actix-utils = "3" tracing = "0.1.35" tracing-futures = "0.2" -[dev_dependencies] +[dev-dependencies] actix-rt = "2" slab = "0.4" diff --git a/justfile b/justfile index 364e8be9..f17a6f67 100644 --- a/justfile +++ b/justfile @@ -3,7 +3,7 @@ _list: # Downgrade dev-dependencies necessary to run MSRV checks/tests. [private] -downgrade-msrv: +downgrade-for-msrv: cargo update -p=ciborium --precise=0.2.1 cargo update -p=ciborium-ll --precise=0.2.1 cargo update -p=time --precise=0.3.16 @@ -12,14 +12,51 @@ downgrade-msrv: cargo update -p=anstyle --precise=1.0.2 cargo update -p=trybuild --precise=1.0.89 +msrv := ``` + cargo metadata --format-version=1 \ + | jq -r 'first(.packages[] | .name = "actix-tls") | .rust_version' +``` +msrv_full := msrv + ".0" # comment out if the MSRV has a patch version specified +msrv_rustup := "+" + msrv_full + +non_linux_all_features_list := ``` + cargo metadata --format-version=1 \ + | jq '.packages[] | select(.source == null) | .features | keys' \ + | jq -r --slurp \ + --arg exclusions "tokio-uring,io-uring" \ + 'add | unique | . - ($exclusions | split(",")) | join(",")' +``` + +all_crate_features := if os() == "linux" { + "--all-features" +} else { + "--features='" + non_linux_all_features_list + "'" +} + +# Test workspace code. +test toolchain="": + cargo {{ toolchain }} test --lib --tests --package=actix-macros + cargo {{ toolchain }} nextest run --workspace --exclude=actix-macros --no-default-features + cargo {{ toolchain }} nextest run --workspace --exclude=actix-macros {{ all_crate_features }} + +# Test workspace using MSRV. +test-msrv: downgrade-for-msrv (test msrv_rustup) + +# Test workspace docs. +test-docs toolchain="": && doc + cargo {{ toolchain }} test --doc --workspace {{ all_crate_features }} --no-fail-fast -- --nocapture + +# Test workspace. +test-all toolchain="": (test toolchain) (test-docs) + # Document crates in workspace. -doc: - RUSTDOCFLAGS="--cfg=docsrs" cargo +nightly doc --no-deps --workspace --features=rustls,openssl +doc *args: + RUSTDOCFLAGS="--cfg=docsrs -Dwarnings" cargo +nightly doc --no-deps --workspace {{ all_crate_features }} {{ args }} # Document crates in workspace and watch for changes. doc-watch: - RUSTDOCFLAGS="--cfg=docsrs" cargo +nightly doc --no-deps --workspace --features=rustls-0_20,rustls-0_21,rustls-0_20-native-roots,rustls-0_21-native-roots,openssl --open - cargo watch -- RUSTDOCFLAGS="--cfg=docsrs" cargo +nightly doc --no-deps --workspace --features=rustls-0_20,rustls-0_21,rustls-0_20-native-roots,rustls-0_21-native-roots,openssl + @just doc --open + cargo watch -- just doc # Check for unintentional external type exposure on all crates in workspace. check-external-types-all toolchain="+nightly": @@ -27,7 +64,7 @@ check-external-types-all toolchain="+nightly": set -euo pipefail exit=0 for f in $(find . -mindepth 2 -maxdepth 2 -name Cargo.toml | grep -vE "\-codegen/|\-derive/|\-macros/"); do - if ! just check-external-types-manifest "$f" {{toolchain}}; then exit=1; fi + if ! just check-external-types-manifest "$f" {{ toolchain }}; then exit=1; fi echo echo done @@ -40,9 +77,9 @@ check-external-types-all-table toolchain="+nightly": for f in $(find . -mindepth 2 -maxdepth 2 -name Cargo.toml | grep -vE "\-codegen/|\-derive/|\-macros/"); do echo echo "Checking for $f" - just check-external-types-manifest "$f" {{toolchain}} --output-format=markdown-table + just check-external-types-manifest "$f" {{ toolchain }} --output-format=markdown-table done # Check for unintentional external type exposure on a crate. check-external-types-manifest manifest_path toolchain="+nightly" *extra_args="": - cargo {{toolchain}} check-external-types --manifest-path "{{manifest_path}}" {{extra_args}} + cargo {{ toolchain }} check-external-types --manifest-path "{{ manifest_path }}" {{ extra_args }} From f4139a08785767b3b3ee6813c750f8448bc36786 Mon Sep 17 00:00:00 2001 From: Rob Ede Date: Sat, 11 May 2024 17:39:34 +0100 Subject: [PATCH 162/410] chore: update MSRV to 1.70 --- .github/workflows/ci-post-merge.yml | 2 +- Cargo.toml | 2 +- actix-codec/CHANGES.md | 2 ++ actix-macros/CHANGES.md | 2 ++ actix-macros/Cargo.toml | 3 ++- actix-macros/tests/trybuild.rs | 2 +- actix-rt/CHANGES.md | 2 ++ actix-server/CHANGES.md | 2 ++ actix-service/CHANGES.md | 2 +- actix-tls/CHANGES.md | 2 ++ actix-tracing/CHANGES.md | 2 +- actix-utils/CHANGES.md | 2 +- bytestring/CHANGES.md | 2 ++ justfile | 2 +- local-channel/CHANGES.md | 2 ++ local-waker/CHANGES.md | 2 ++ 16 files changed, 25 insertions(+), 8 deletions(-) diff --git a/.github/workflows/ci-post-merge.yml b/.github/workflows/ci-post-merge.yml index e27a2fe8..1ce0fef6 100644 --- a/.github/workflows/ci-post-merge.yml +++ b/.github/workflows/ci-post-merge.yml @@ -85,7 +85,7 @@ jobs: - name: tests if: matrix.target.os != 'ubuntu-latest' - run: just test-code + run: just test - name: tests if: matrix.target.os == 'ubuntu-latest' run: >- diff --git a/Cargo.toml b/Cargo.toml index ae46b5d7..c130eaf9 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -17,7 +17,7 @@ members = [ [workspace.package] license = "MIT OR Apache-2.0" edition = "2021" -rust-version = "1.65" +rust-version = "1.70" [patch.crates-io] actix-codec = { path = "actix-codec" } diff --git a/actix-codec/CHANGES.md b/actix-codec/CHANGES.md index 61db9714..fa2bfddd 100644 --- a/actix-codec/CHANGES.md +++ b/actix-codec/CHANGES.md @@ -2,6 +2,8 @@ ## Unreleased +- Minimum supported Rust version (MSRV) is now 1.70. + ## 0.5.2 - Minimum supported Rust version (MSRV) is now 1.65. diff --git a/actix-macros/CHANGES.md b/actix-macros/CHANGES.md index 570c4e1e..99ecfa97 100644 --- a/actix-macros/CHANGES.md +++ b/actix-macros/CHANGES.md @@ -2,6 +2,8 @@ ## Unreleased +- Minimum supported Rust version (MSRV) is now 1.70. + ## 0.2.4 - Update `syn` dependency to `2`. diff --git a/actix-macros/Cargo.toml b/actix-macros/Cargo.toml index b96daeb9..925721ea 100644 --- a/actix-macros/Cargo.toml +++ b/actix-macros/Cargo.toml @@ -33,5 +33,6 @@ proc-macro2 = "1.0.60" actix-rt = "2" futures-util = { version = "0.3.17", default-features = false } -rustversion = "1" +# rustversion = "1" +rustversion = { path = "/Users/rob/Development/forks/rustversion" } trybuild = "1" diff --git a/actix-macros/tests/trybuild.rs b/actix-macros/tests/trybuild.rs index b37b84ba..ab425d6d 100644 --- a/actix-macros/tests/trybuild.rs +++ b/actix-macros/tests/trybuild.rs @@ -1,4 +1,4 @@ -#[rustversion::stable(1.65)] // MSRV +#[rustversion::stable(1.70)] // MSRV #[test] fn compile_macros() { let t = trybuild::TestCases::new(); diff --git a/actix-rt/CHANGES.md b/actix-rt/CHANGES.md index 6a6b18b4..1535612b 100644 --- a/actix-rt/CHANGES.md +++ b/actix-rt/CHANGES.md @@ -2,6 +2,8 @@ ## Unreleased +- Minimum supported Rust version (MSRV) is now 1.70. + ## 2.9.0 - Add `actix_rt::System::runtime()` method to retrieve the underlying `actix_rt::Runtime` runtime. diff --git a/actix-server/CHANGES.md b/actix-server/CHANGES.md index 4a0dd3d6..ce4c6b27 100644 --- a/actix-server/CHANGES.md +++ b/actix-server/CHANGES.md @@ -2,6 +2,8 @@ ## Unreleased +- Minimum supported Rust version (MSRV) is now 1.70. + ## 2.3.0 - Add support for MultiPath TCP (MPTCP) with `MpTcp` enum and `ServerBuilder::mptcp()` method. diff --git a/actix-service/CHANGES.md b/actix-service/CHANGES.md index 9a3b70a3..0ef39dc1 100644 --- a/actix-service/CHANGES.md +++ b/actix-service/CHANGES.md @@ -2,7 +2,7 @@ ## Unreleased -- Minimum supported Rust version (MSRV) is now 1.65. +- Minimum supported Rust version (MSRV) is now 1.70. ## 2.0.2 diff --git a/actix-tls/CHANGES.md b/actix-tls/CHANGES.md index 57932a30..3a5dafae 100644 --- a/actix-tls/CHANGES.md +++ b/actix-tls/CHANGES.md @@ -2,6 +2,8 @@ ## Unreleased +- Minimum supported Rust version (MSRV) is now 1.70. + ## 3.3.0 - Add `rustls-0_22` create feature which excludes any root certificate methods or re-exports. diff --git a/actix-tracing/CHANGES.md b/actix-tracing/CHANGES.md index 2e90e25c..15f1437a 100644 --- a/actix-tracing/CHANGES.md +++ b/actix-tracing/CHANGES.md @@ -2,7 +2,7 @@ ## Unreleased -- Minimum supported Rust version (MSRV) is now 1.65. +- Minimum supported Rust version (MSRV) is now 1.70. ## 0.1.0 diff --git a/actix-utils/CHANGES.md b/actix-utils/CHANGES.md index c68c3171..de510788 100644 --- a/actix-utils/CHANGES.md +++ b/actix-utils/CHANGES.md @@ -2,7 +2,7 @@ ## Unreleased -- Minimum supported Rust version (MSRV) is now 1.65. +- Minimum supported Rust version (MSRV) is now 1.70. ## 3.0.1 diff --git a/bytestring/CHANGES.md b/bytestring/CHANGES.md index 368ead4d..8a24680f 100644 --- a/bytestring/CHANGES.md +++ b/bytestring/CHANGES.md @@ -2,6 +2,8 @@ ## Unreleased +- Minimum supported Rust version (MSRV) is now 1.70. + ## 1.3.1 - No significant changes since `1.3.0`. diff --git a/justfile b/justfile index f17a6f67..c970a73c 100644 --- a/justfile +++ b/justfile @@ -14,7 +14,7 @@ downgrade-for-msrv: msrv := ``` cargo metadata --format-version=1 \ - | jq -r 'first(.packages[] | .name = "actix-tls") | .rust_version' + | jq -r 'first(.packages[] | select(.source == null and .name == "actix-tls")) | .rust_version' ``` msrv_full := msrv + ".0" # comment out if the MSRV has a patch version specified msrv_rustup := "+" + msrv_full diff --git a/local-channel/CHANGES.md b/local-channel/CHANGES.md index 3244f033..602d09b3 100644 --- a/local-channel/CHANGES.md +++ b/local-channel/CHANGES.md @@ -2,6 +2,8 @@ ## Unreleased +- Minimum supported Rust version (MSRV) is now 1.70. + ## 0.1.5 - No significant changes since `0.1.4`. diff --git a/local-waker/CHANGES.md b/local-waker/CHANGES.md index c83d06d4..a6adfbba 100644 --- a/local-waker/CHANGES.md +++ b/local-waker/CHANGES.md @@ -2,6 +2,8 @@ ## Unreleased +- Minimum supported Rust version (MSRV) is now 1.70. + ## 0.1.4 - Minimum supported Rust version (MSRV) is now 1.65. From f028a742401ac8c53285868d7ae27eac5f37db91 Mon Sep 17 00:00:00 2001 From: Rob Ede Date: Sat, 11 May 2024 17:41:31 +0100 Subject: [PATCH 163/410] build: fix rustversion spec --- actix-macros/Cargo.toml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/actix-macros/Cargo.toml b/actix-macros/Cargo.toml index 925721ea..b96daeb9 100644 --- a/actix-macros/Cargo.toml +++ b/actix-macros/Cargo.toml @@ -33,6 +33,5 @@ proc-macro2 = "1.0.60" actix-rt = "2" futures-util = { version = "0.3.17", default-features = false } -# rustversion = "1" -rustversion = { path = "/Users/rob/Development/forks/rustversion" } +rustversion = "1" trybuild = "1" From 5edbf9e3dc86d9efc4d106891ce257151113b3a7 Mon Sep 17 00:00:00 2001 From: Rob Ede Date: Sun, 12 May 2024 18:24:37 +0100 Subject: [PATCH 164/410] chore: switch to rustversion-msrv --- actix-macros/Cargo.toml | 3 +-- actix-macros/tests/trybuild.rs | 2 +- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/actix-macros/Cargo.toml b/actix-macros/Cargo.toml index b96daeb9..2f112ed4 100644 --- a/actix-macros/Cargo.toml +++ b/actix-macros/Cargo.toml @@ -31,7 +31,6 @@ proc-macro2 = "1.0.60" [dev-dependencies] actix-rt = "2" - futures-util = { version = "0.3.17", default-features = false } -rustversion = "1" +rustversion-msrv = "0.99" trybuild = "1" diff --git a/actix-macros/tests/trybuild.rs b/actix-macros/tests/trybuild.rs index ab425d6d..5cfb1b6e 100644 --- a/actix-macros/tests/trybuild.rs +++ b/actix-macros/tests/trybuild.rs @@ -1,4 +1,4 @@ -#[rustversion::stable(1.70)] // MSRV +#[rustversion_msrv::msrv] #[test] fn compile_macros() { let t = trybuild::TestCases::new(); From 9e7d612121987c8eb750b905307c069bb33c771f Mon Sep 17 00:00:00 2001 From: Rob Ede Date: Sun, 12 May 2024 18:25:02 +0100 Subject: [PATCH 165/410] ci: remove 32-bit windows support --- .github/workflows/ci-post-merge.yml | 1 - .github/workflows/ci.yml | 1 - 2 files changed, 2 deletions(-) diff --git a/.github/workflows/ci-post-merge.yml b/.github/workflows/ci-post-merge.yml index 1ce0fef6..27de0429 100644 --- a/.github/workflows/ci-post-merge.yml +++ b/.github/workflows/ci-post-merge.yml @@ -22,7 +22,6 @@ jobs: - { name: macOS, os: macos-latest, triple: x86_64-apple-darwin } - { name: Windows, os: windows-latest, triple: x86_64-pc-windows-msvc } - { name: Windows (MinGW), os: windows-latest, triple: x86_64-pc-windows-gnu } - - { name: Windows (32-bit), os: windows-latest, triple: i686-pc-windows-msvc } version: - nightly diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 412ed481..32893ee7 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -23,7 +23,6 @@ jobs: - { name: macOS, os: macos-latest, triple: x86_64-apple-darwin } - { name: Windows, os: windows-latest, triple: x86_64-pc-windows-msvc } - { name: Windows (MinGW), os: windows-latest, triple: x86_64-pc-windows-gnu } - - { name: Windows (32-bit), os: windows-latest, triple: i686-pc-windows-msvc } version: - { name: msrv, version: 1.70.0 } - { name: stable, version: stable } From 1db640f62ea54420c10f70932cbeccf00c097dfd Mon Sep 17 00:00:00 2001 From: Rob Ede Date: Sun, 12 May 2024 19:10:27 +0100 Subject: [PATCH 166/410] chore: update env logger --- actix-server/Cargo.toml | 2 +- actix-server/examples/file-reader.rs | 3 ++- actix-server/examples/tcp-echo.rs | 3 ++- actix-tls/Cargo.toml | 2 +- actix-tls/examples/accept-rustls.rs | 3 ++- justfile | 8 +------- 6 files changed, 9 insertions(+), 12 deletions(-) diff --git a/actix-server/Cargo.toml b/actix-server/Cargo.toml index bd801caf..118b86b0 100755 --- a/actix-server/Cargo.toml +++ b/actix-server/Cargo.toml @@ -45,6 +45,6 @@ actix-codec = "0.5" actix-rt = "2.8" bytes = "1" -env_logger = "0.10" +pretty_env_logger = "0.5" futures-util = { version = "0.3.17", default-features = false, features = ["sink", "async-await-macro"] } tokio = { version = "1.23.1", features = ["io-util", "rt-multi-thread", "macros", "fs"] } diff --git a/actix-server/examples/file-reader.rs b/actix-server/examples/file-reader.rs index f84cb510..4e446807 100644 --- a/actix-server/examples/file-reader.rs +++ b/actix-server/examples/file-reader.rs @@ -18,7 +18,8 @@ use futures_util::{SinkExt as _, StreamExt as _}; use tokio::{fs::File, io::AsyncReadExt as _}; async fn run() -> io::Result<()> { - env_logger::init_from_env(env_logger::Env::default().default_filter_or("info")); + pretty_env_logger::formatted_timed_builder() + .parse_env(pretty_env_logger::env_logger::Env::default().default_filter_or("info")); let addr = ("127.0.0.1", 8080); tracing::info!("starting server on port: {}", &addr.0); diff --git a/actix-server/examples/tcp-echo.rs b/actix-server/examples/tcp-echo.rs index eda24f83..df85a1d0 100644 --- a/actix-server/examples/tcp-echo.rs +++ b/actix-server/examples/tcp-echo.rs @@ -25,7 +25,8 @@ use futures_util::future::ok; use tokio::io::{AsyncReadExt as _, AsyncWriteExt as _}; async fn run() -> io::Result<()> { - env_logger::init_from_env(env_logger::Env::default().default_filter_or("info")); + pretty_env_logger::formatted_timed_builder() + .parse_env(pretty_env_logger::env_logger::Env::default().default_filter_or("info")); let count = Arc::new(AtomicUsize::new(0)); diff --git a/actix-tls/Cargo.toml b/actix-tls/Cargo.toml index 7078efeb..80f19ed8 100755 --- a/actix-tls/Cargo.toml +++ b/actix-tls/Cargo.toml @@ -114,7 +114,7 @@ actix-codec = "0.5" actix-rt = "2.2" actix-server = "2" bytes = "1" -env_logger = "0.10" +pretty_env_logger = "0.5" futures-util = { version = "0.3.17", default-features = false, features = ["sink"] } itertools = "0.12" rcgen = "0.12" diff --git a/actix-tls/examples/accept-rustls.rs b/actix-tls/examples/accept-rustls.rs index 6e1e267a..200ab149 100644 --- a/actix-tls/examples/accept-rustls.rs +++ b/actix-tls/examples/accept-rustls.rs @@ -41,7 +41,8 @@ use tracing::info; #[actix_rt::main] async fn main() -> io::Result<()> { - env_logger::init_from_env(env_logger::Env::default().default_filter_or("info")); + pretty_env_logger::formatted_timed_builder() + .parse_env(pretty_env_logger::env_logger::Env::default().default_filter_or("info")); let root_path = env!("CARGO_MANIFEST_DIR") .parse::() diff --git a/justfile b/justfile index c970a73c..188ab13d 100644 --- a/justfile +++ b/justfile @@ -4,13 +4,7 @@ _list: # Downgrade dev-dependencies necessary to run MSRV checks/tests. [private] downgrade-for-msrv: - cargo update -p=ciborium --precise=0.2.1 - cargo update -p=ciborium-ll --precise=0.2.1 - cargo update -p=time --precise=0.3.16 - cargo update -p=clap --precise=4.3.24 - cargo update -p=clap_lex --precise=0.5.0 - cargo update -p=anstyle --precise=1.0.2 - cargo update -p=trybuild --precise=1.0.89 + cargo update -p=clap --precise=4.4.18 msrv := ``` cargo metadata --format-version=1 \ From db7988609ea859b9a616183a54c3d1633621ca8b Mon Sep 17 00:00:00 2001 From: SleeplessOne1917 <28871516+SleeplessOne1917@users.noreply.github.com> Date: Sun, 12 May 2024 14:47:49 -0400 Subject: [PATCH 167/410] feat(actix-tls): support for rustls 0.23 (#554) * Add feature for using rustls 0.23 * Fix mistake * Fix use of wrong tokio rustls package * Fix accept openssl test * Use rustls 0.23 for the example * Install nasm in CI step for windows * Change outdated step name * Fix CI mistake * test: install default crypto provider in tests * docs: update changelog --------- Co-authored-by: Rob Ede --- .github/workflows/ci.yml | 4 + actix-tls/CHANGES.md | 3 +- actix-tls/Cargo.toml | 16 ++- actix-tls/examples/accept-rustls.rs | 4 +- actix-tls/src/accept/mod.rs | 4 + actix-tls/src/accept/rustls_0_23.rs | 198 +++++++++++++++++++++++++++ actix-tls/src/connect/mod.rs | 3 + actix-tls/src/connect/rustls_0_23.rs | 163 ++++++++++++++++++++++ actix-tls/tests/accept-openssl.rs | 18 ++- actix-tls/tests/accept-rustls.rs | 8 +- actix-tls/tests/test_connect.rs | 6 +- 11 files changed, 408 insertions(+), 19 deletions(-) create mode 100644 actix-tls/src/accept/rustls_0_23.rs create mode 100644 actix-tls/src/connect/rustls_0_23.rs diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 32893ee7..3ac91ec3 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -43,6 +43,10 @@ jobs: if: matrix.target.os == 'ubuntu-latest' run: ./scripts/free-disk-space.sh + - name: Install nasm + if: matrix.target.os == 'windows-latest' + uses: ilammy/setup-nasm@v1.5.1 + - name: Install OpenSSL if: matrix.target.os == 'windows-latest' shell: bash diff --git a/actix-tls/CHANGES.md b/actix-tls/CHANGES.md index 3a5dafae..cc8c6137 100644 --- a/actix-tls/CHANGES.md +++ b/actix-tls/CHANGES.md @@ -2,11 +2,12 @@ ## Unreleased +- Add `rustls-0_23`, `rustls-0_23-webpki-roots`, and `rustls-0_23-native-roots` crate features. - Minimum supported Rust version (MSRV) is now 1.70. ## 3.3.0 -- Add `rustls-0_22` create feature which excludes any root certificate methods or re-exports. +- Add `rustls-0_22` crate feature which excludes any root certificate methods or re-exports. ## 3.2.0 diff --git a/actix-tls/Cargo.toml b/actix-tls/Cargo.toml index 80f19ed8..f0dfaf81 100755 --- a/actix-tls/Cargo.toml +++ b/actix-tls/Cargo.toml @@ -61,6 +61,11 @@ rustls-0_22 = ["dep:tokio-rustls-025", "dep:rustls-pki-types-1"] rustls-0_22-webpki-roots = ["rustls-0_22", "dep:webpki-roots-026"] rustls-0_22-native-roots = ["rustls-0_22", "dep:rustls-native-certs-07"] +# use rustls v0.23 impls +rustls-0_23 = ["dep:tokio-rustls-026", "dep:rustls-pki-types-1"] +rustls-0_23-webpki-roots = ["rustls-0_23", "dep:webpki-roots-026"] +rustls-0_23-native-roots = ["rustls-0_23", "dep:rustls-native-certs-07"] + # use native-tls impls native-tls = ["dep:tokio-native-tls"] @@ -98,9 +103,12 @@ tokio-rustls-024 = { package = "tokio-rustls", version = "0.24", optional = true webpki-roots-025 = { package = "webpki-roots", version = "0.25", optional = true } # rustls v0.22 -rustls-pki-types-1 = { package = "rustls-pki-types", version = "1", optional = true } +rustls-pki-types-1 = { package = "rustls-pki-types", version = "1", optional = true } # Also used for rustls v0.23 tokio-rustls-025 = { package = "tokio-rustls", version = "0.25", optional = true } -webpki-roots-026 = { package = "webpki-roots", version = "0.26", optional = true } +webpki-roots-026 = { package = "webpki-roots", version = "0.26", optional = true } # Also used for rustls v0.23 + +# rustls v0.23 +tokio-rustls-026 = { package = "tokio-rustls", version = "0.26", optional = true } # native root certificates for rustls impls rustls-native-certs-06 = { package = "rustls-native-certs", version = "0.6", optional = true } @@ -119,9 +127,9 @@ futures-util = { version = "0.3.17", default-features = false, features = ["sink itertools = "0.12" rcgen = "0.12" rustls-pemfile = "2" -tokio-rustls-025 = { package = "tokio-rustls", version = "0.25" } +tokio-rustls-026 = { package = "tokio-rustls", version = "0.26", features = ["ring"] } trust-dns-resolver = "0.23" [[example]] name = "accept-rustls" -required-features = ["accept", "rustls-0_22"] +required-features = ["accept", "rustls-0_23"] diff --git a/actix-tls/examples/accept-rustls.rs b/actix-tls/examples/accept-rustls.rs index 200ab149..b94a01e7 100644 --- a/actix-tls/examples/accept-rustls.rs +++ b/actix-tls/examples/accept-rustls.rs @@ -30,13 +30,13 @@ use std::{ use actix_rt::net::TcpStream; use actix_server::Server; use actix_service::ServiceFactoryExt as _; -use actix_tls::accept::rustls_0_22::{Acceptor as RustlsAcceptor, TlsStream}; +use actix_tls::accept::rustls_0_23::{Acceptor as RustlsAcceptor, TlsStream}; use futures_util::future::ok; use itertools::Itertools as _; use rustls::server::ServerConfig; use rustls_pemfile::{certs, rsa_private_keys}; use rustls_pki_types_1::PrivateKeyDer; -use tokio_rustls_025::rustls; +use tokio_rustls_026::rustls; use tracing::info; #[actix_rt::main] diff --git a/actix-tls/src/accept/mod.rs b/actix-tls/src/accept/mod.rs index 2302723e..c9d6cd73 100644 --- a/actix-tls/src/accept/mod.rs +++ b/actix-tls/src/accept/mod.rs @@ -25,6 +25,9 @@ pub mod rustls_0_21; #[cfg(feature = "rustls-0_22")] pub mod rustls_0_22; +#[cfg(feature = "rustls-0_23")] +pub mod rustls_0_23; + #[cfg(feature = "native-tls")] pub mod native_tls; @@ -35,6 +38,7 @@ pub(crate) static MAX_CONN: AtomicUsize = AtomicUsize::new(256); feature = "rustls-0_20", feature = "rustls-0_21", feature = "rustls-0_22", + feature = "rustls-0_23", feature = "native-tls", ))] pub(crate) const DEFAULT_TLS_HANDSHAKE_TIMEOUT: std::time::Duration = diff --git a/actix-tls/src/accept/rustls_0_23.rs b/actix-tls/src/accept/rustls_0_23.rs new file mode 100644 index 00000000..9d2025ba --- /dev/null +++ b/actix-tls/src/accept/rustls_0_23.rs @@ -0,0 +1,198 @@ +//! `rustls` v0.23 based TLS connection acceptor service. +//! +//! See [`Acceptor`] for main service factory docs. + +use std::{ + convert::Infallible, + future::Future, + io::{self, IoSlice}, + pin::Pin, + sync::Arc, + task::{Context, Poll}, + time::Duration, +}; + +use actix_rt::{ + net::{ActixStream, Ready}, + time::{sleep, Sleep}, +}; +use actix_service::{Service, ServiceFactory}; +use actix_utils::{ + counter::{Counter, CounterGuard}, + future::{ready, Ready as FutReady}, +}; +use pin_project_lite::pin_project; +use tokio::io::{AsyncRead, AsyncWrite, ReadBuf}; +use tokio_rustls::{Accept, TlsAcceptor}; +use tokio_rustls_026 as tokio_rustls; + +use super::{TlsError, DEFAULT_TLS_HANDSHAKE_TIMEOUT, MAX_CONN_COUNTER}; + +pub mod reexports { + //! Re-exports from `rustls` that are useful for acceptors. + + pub use tokio_rustls_026::rustls::ServerConfig; +} + +/// Wraps a `rustls` based async TLS stream in order to implement [`ActixStream`]. +pub struct TlsStream(tokio_rustls::server::TlsStream); + +impl_more::impl_from!( in tokio_rustls::server::TlsStream => TlsStream); +impl_more::impl_deref_and_mut!( in TlsStream => tokio_rustls::server::TlsStream); + +impl AsyncRead for TlsStream { + fn poll_read( + self: Pin<&mut Self>, + cx: &mut Context<'_>, + buf: &mut ReadBuf<'_>, + ) -> Poll> { + Pin::new(&mut **self.get_mut()).poll_read(cx, buf) + } +} + +impl AsyncWrite for TlsStream { + fn poll_write( + self: Pin<&mut Self>, + cx: &mut Context<'_>, + buf: &[u8], + ) -> Poll> { + Pin::new(&mut **self.get_mut()).poll_write(cx, buf) + } + + fn poll_flush(self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll> { + Pin::new(&mut **self.get_mut()).poll_flush(cx) + } + + fn poll_shutdown(self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll> { + Pin::new(&mut **self.get_mut()).poll_shutdown(cx) + } + + fn poll_write_vectored( + self: Pin<&mut Self>, + cx: &mut Context<'_>, + bufs: &[IoSlice<'_>], + ) -> Poll> { + Pin::new(&mut **self.get_mut()).poll_write_vectored(cx, bufs) + } + + fn is_write_vectored(&self) -> bool { + (**self).is_write_vectored() + } +} + +impl ActixStream for TlsStream { + fn poll_read_ready(&self, cx: &mut Context<'_>) -> Poll> { + IO::poll_read_ready((**self).get_ref().0, cx) + } + + fn poll_write_ready(&self, cx: &mut Context<'_>) -> Poll> { + IO::poll_write_ready((**self).get_ref().0, cx) + } +} + +/// Accept TLS connections via the `rustls` crate. +pub struct Acceptor { + config: Arc, + handshake_timeout: Duration, +} + +impl Acceptor { + /// Constructs `rustls` based acceptor service factory. + pub fn new(config: reexports::ServerConfig) -> Self { + Acceptor { + config: Arc::new(config), + handshake_timeout: DEFAULT_TLS_HANDSHAKE_TIMEOUT, + } + } + + /// Limit the amount of time that the acceptor will wait for a TLS handshake to complete. + /// + /// Default timeout is 3 seconds. + pub fn set_handshake_timeout(&mut self, handshake_timeout: Duration) -> &mut Self { + self.handshake_timeout = handshake_timeout; + self + } +} + +impl Clone for Acceptor { + fn clone(&self) -> Self { + Self { + config: self.config.clone(), + handshake_timeout: self.handshake_timeout, + } + } +} + +impl ServiceFactory for Acceptor { + type Response = TlsStream; + type Error = TlsError; + type Config = (); + type Service = AcceptorService; + type InitError = (); + type Future = FutReady>; + + fn new_service(&self, _: ()) -> Self::Future { + let res = MAX_CONN_COUNTER.with(|conns| { + Ok(AcceptorService { + acceptor: self.config.clone().into(), + conns: conns.clone(), + handshake_timeout: self.handshake_timeout, + }) + }); + + ready(res) + } +} + +/// Rustls based acceptor service. +pub struct AcceptorService { + acceptor: TlsAcceptor, + conns: Counter, + handshake_timeout: Duration, +} + +impl Service for AcceptorService { + type Response = TlsStream; + type Error = TlsError; + type Future = AcceptFut; + + fn poll_ready(&self, cx: &mut Context<'_>) -> Poll> { + if self.conns.available(cx) { + Poll::Ready(Ok(())) + } else { + Poll::Pending + } + } + + fn call(&self, req: IO) -> Self::Future { + AcceptFut { + fut: self.acceptor.accept(req), + timeout: sleep(self.handshake_timeout), + _guard: self.conns.get(), + } + } +} + +pin_project! { + /// Accept future for Rustls service. + #[doc(hidden)] + pub struct AcceptFut { + fut: Accept, + #[pin] + timeout: Sleep, + _guard: CounterGuard, + } +} + +impl Future for AcceptFut { + type Output = Result, TlsError>; + + fn poll(self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll { + let mut this = self.project(); + match Pin::new(&mut this.fut).poll(cx) { + Poll::Ready(Ok(stream)) => Poll::Ready(Ok(TlsStream(stream))), + Poll::Ready(Err(err)) => Poll::Ready(Err(TlsError::Tls(err))), + Poll::Pending => this.timeout.poll(cx).map(|_| Err(TlsError::Timeout)), + } + } +} diff --git a/actix-tls/src/connect/mod.rs b/actix-tls/src/connect/mod.rs index 1e77d98a..04337daa 100644 --- a/actix-tls/src/connect/mod.rs +++ b/actix-tls/src/connect/mod.rs @@ -49,6 +49,9 @@ pub mod rustls_0_21; #[cfg(feature = "rustls-0_22")] pub mod rustls_0_22; +#[cfg(feature = "rustls-0_23")] +pub mod rustls_0_23; + #[cfg(feature = "native-tls")] pub mod native_tls; diff --git a/actix-tls/src/connect/rustls_0_23.rs b/actix-tls/src/connect/rustls_0_23.rs new file mode 100644 index 00000000..4ea9aba3 --- /dev/null +++ b/actix-tls/src/connect/rustls_0_23.rs @@ -0,0 +1,163 @@ +//! Rustls based connector service. +//! +//! See [`TlsConnector`] for main connector service factory docs. + +use std::{ + future::Future, + io, + pin::Pin, + sync::Arc, + task::{Context, Poll}, +}; + +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::{ + client::TlsStream as AsyncTlsStream, rustls::ClientConfig, Connect as RustlsConnect, + TlsConnector as RustlsTlsConnector, +}; +use tokio_rustls_026 as tokio_rustls; + +use crate::connect::{Connection, Host}; + +pub mod reexports { + //! Re-exports from the `rustls` v0.23 ecosystem that are useful for connectors. + + pub use tokio_rustls_026::{client::TlsStream as AsyncTlsStream, rustls::ClientConfig}; + #[cfg(feature = "rustls-0_23-webpki-roots")] + pub use webpki_roots_026::TLS_SERVER_ROOTS; +} + +/// Returns root certificates via `rustls-native-certs` crate as a rustls certificate store. +/// +/// See [`rustls_native_certs::load_native_certs()`] for more info on behavior and errors. +/// +/// [`rustls_native_certs::load_native_certs()`]: rustls_native_certs_07::load_native_certs() +#[cfg(feature = "rustls-0_23-native-roots")] +pub fn native_roots_cert_store() -> io::Result { + let mut root_certs = tokio_rustls::rustls::RootCertStore::empty(); + + for cert in rustls_native_certs_07::load_native_certs()? { + root_certs.add(cert).unwrap(); + } + + Ok(root_certs) +} + +/// Returns standard root certificates from `webpki-roots` crate as a rustls certificate store. +#[cfg(feature = "rustls-0_23-webpki-roots")] +pub fn webpki_roots_cert_store() -> tokio_rustls::rustls::RootCertStore { + let mut root_certs = tokio_rustls::rustls::RootCertStore::empty(); + root_certs.extend(webpki_roots_026::TLS_SERVER_ROOTS.to_owned()); + root_certs +} + +/// Connector service factory using `rustls`. +#[derive(Clone)] +pub struct TlsConnector { + connector: Arc, +} + +impl TlsConnector { + /// Constructs new connector service factory from a `rustls` client configuration. + pub fn new(connector: Arc) -> Self { + TlsConnector { connector } + } + + /// Constructs new connector service from a `rustls` client configuration. + pub fn service(connector: Arc) -> TlsConnectorService { + TlsConnectorService { connector } + } +} + +impl ServiceFactory> for TlsConnector +where + R: Host, + IO: ActixStream + 'static, +{ + type Response = Connection>; + type Error = io::Error; + type Config = (); + type Service = TlsConnectorService; + type InitError = (); + type Future = Ready>; + + fn new_service(&self, _: ()) -> Self::Future { + ok(TlsConnectorService { + connector: self.connector.clone(), + }) + } +} + +/// Connector service using `rustls`. +#[derive(Clone)] +pub struct TlsConnectorService { + connector: Arc, +} + +impl Service> for TlsConnectorService +where + R: Host, + IO: ActixStream, +{ + type Response = Connection>; + type Error = io::Error; + type Future = ConnectFut; + + actix_service::always_ready!(); + + fn call(&self, connection: Connection) -> Self::Future { + tracing::trace!("TLS handshake start for: {:?}", connection.hostname()); + let (stream, conn) = connection.replace_io(()); + + match ServerName::try_from(conn.hostname()) { + Ok(host) => ConnectFut::Future { + connect: RustlsTlsConnector::from(Arc::clone(&self.connector)) + .connect(host.to_owned(), stream), + connection: Some(conn), + }, + Err(_) => ConnectFut::InvalidServerName, + } + } +} + +/// Connect future for Rustls service. +#[doc(hidden)] +#[allow(clippy::large_enum_variant)] +pub enum ConnectFut { + InvalidServerName, + Future { + connect: RustlsConnect, + connection: Option>, + }, +} + +impl Future for ConnectFut +where + R: Host, + IO: ActixStream, +{ + type Output = io::Result>>; + + fn poll(self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll { + match self.get_mut() { + Self::InvalidServerName => Poll::Ready(Err(io::Error::new( + io::ErrorKind::InvalidInput, + "connection parameters specified invalid server name", + ))), + + Self::Future { + connect, + connection, + } => { + let stream = ready!(Pin::new(connect).poll(cx))?; + let connection = connection.take().unwrap(); + tracing::trace!("TLS handshake success: {:?}", connection.hostname()); + Poll::Ready(Ok(connection.replace_io(stream).1)) + } + } + } +} diff --git a/actix-tls/tests/accept-openssl.rs b/actix-tls/tests/accept-openssl.rs index e571a282..ecafbf76 100644 --- a/actix-tls/tests/accept-openssl.rs +++ b/actix-tls/tests/accept-openssl.rs @@ -3,7 +3,7 @@ #![cfg(all( feature = "accept", feature = "connect", - feature = "rustls-0_22", + feature = "rustls-0_23", feature = "openssl" ))] @@ -14,11 +14,11 @@ use actix_server::TestServer; use actix_service::ServiceFactoryExt as _; use actix_tls::{ accept::openssl::{Acceptor, TlsStream}, - connect::rustls_0_22::reexports::ClientConfig, + connect::rustls_0_23::reexports::ClientConfig, }; use actix_utils::future::ok; use rustls_pki_types_1::ServerName; -use tokio_rustls_025::rustls::RootCertStore; +use tokio_rustls_026::rustls::RootCertStore; fn new_cert_and_key() -> (String, String) { let cert = @@ -51,7 +51,7 @@ fn openssl_acceptor(cert: String, key: String) -> tls_openssl::ssl::SslAcceptor mod danger { use rustls_pki_types_1::{CertificateDer, ServerName, UnixTime}; - use tokio_rustls_025::rustls; + use tokio_rustls_026::rustls; /// Disables certificate verification to allow self-signed certs from rcgen. #[derive(Debug)] @@ -63,7 +63,7 @@ mod danger { _end_entity: &CertificateDer<'_>, _intermediates: &[CertificateDer<'_>], _server_name: &ServerName<'_>, - _ocsp_response: &[u8], + _ocsp: &[u8], _now: UnixTime, ) -> Result { Ok(rustls::client::danger::ServerCertVerified::assertion()) @@ -111,6 +111,10 @@ fn rustls_connector(_cert: String, _key: String) -> ClientConfig { #[actix_rt::test] async fn accepts_connections() { + tokio_rustls_026::rustls::crypto::aws_lc_rs::default_provider() + .install_default() + .unwrap(); + let (cert, key) = new_cert_and_key(); let srv = TestServer::start({ @@ -137,13 +141,13 @@ async fn accepts_connections() { let config = rustls_connector(cert, key); let config = Arc::new(config); - let mut conn = tokio_rustls_025::rustls::ClientConnection::new( + let mut conn = tokio_rustls_026::rustls::ClientConnection::new( config, ServerName::try_from("localhost").unwrap(), ) .unwrap(); - let mut stream = tokio_rustls_025::rustls::Stream::new(&mut conn, &mut sock); + let mut stream = tokio_rustls_026::rustls::Stream::new(&mut conn, &mut sock); stream.flush().expect("TLS handshake failed"); } diff --git a/actix-tls/tests/accept-rustls.rs b/actix-tls/tests/accept-rustls.rs index bed2f6c3..bc29971c 100644 --- a/actix-tls/tests/accept-rustls.rs +++ b/actix-tls/tests/accept-rustls.rs @@ -3,7 +3,7 @@ #![cfg(all( feature = "accept", feature = "connect", - feature = "rustls-0_22", + feature = "rustls-0_23", feature = "openssl" ))] @@ -15,7 +15,7 @@ use actix_rt::net::TcpStream; use actix_server::TestServer; use actix_service::ServiceFactoryExt as _; use actix_tls::{ - accept::rustls_0_22::{reexports::ServerConfig, Acceptor, TlsStream}, + accept::rustls_0_23::{reexports::ServerConfig, Acceptor, TlsStream}, connect::openssl::reexports::SslConnector, }; use actix_utils::future::ok; @@ -73,6 +73,10 @@ fn openssl_connector(cert: String, key: String) -> SslConnector { #[actix_rt::test] async fn accepts_connections() { + tokio_rustls_026::rustls::crypto::aws_lc_rs::default_provider() + .install_default() + .unwrap(); + let (cert, key) = new_cert_and_key(); let srv = TestServer::start({ diff --git a/actix-tls/tests/test_connect.rs b/actix-tls/tests/test_connect.rs index 820df7e3..c0a7fa76 100644 --- a/actix-tls/tests/test_connect.rs +++ b/actix-tls/tests/test_connect.rs @@ -30,7 +30,7 @@ async fn test_string() { assert_eq!(con.peer_addr().unwrap(), srv.addr()); } -#[cfg(feature = "rustls-0_22")] +#[cfg(feature = "rustls-0_23")] #[actix_rt::test] async fn test_rustls_string() { let srv = TestServer::start(|| { @@ -112,7 +112,7 @@ async fn test_openssl_uri() { assert_eq!(con.peer_addr().unwrap(), srv.addr()); } -#[cfg(all(feature = "rustls-0_22", feature = "uri"))] +#[cfg(all(feature = "rustls-0_23", feature = "uri"))] #[actix_rt::test] async fn test_rustls_uri_http1() { let srv = TestServer::start(|| { @@ -129,7 +129,7 @@ async fn test_rustls_uri_http1() { assert_eq!(con.peer_addr().unwrap(), srv.addr()); } -#[cfg(all(feature = "rustls-0_22", feature = "uri"))] +#[cfg(all(feature = "rustls-0_23", feature = "uri"))] #[actix_rt::test] async fn test_rustls_uri() { let srv = TestServer::start(|| { From af8e6cd656a523ab63aa574d57b2c02c61faca9b Mon Sep 17 00:00:00 2001 From: Rob Ede Date: Sun, 12 May 2024 21:35:39 +0100 Subject: [PATCH 168/410] ci: read MSRV from manifest (#559) --- .github/workflows/ci.yml | 9 ++++++++- justfile | 7 +++++++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 3ac91ec3..0d93bd1c 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -13,7 +13,14 @@ concurrency: cancel-in-progress: true jobs: + read_msrv: + name: Read MSRV + uses: actions-rust-lang/msrv/.github/workflows/msrv.yml@main + build_and_test: + needs: + - read_msrv + strategy: fail-fast: false matrix: @@ -24,7 +31,7 @@ jobs: - { name: Windows, os: windows-latest, triple: x86_64-pc-windows-msvc } - { name: Windows (MinGW), os: windows-latest, triple: x86_64-pc-windows-gnu } version: - - { name: msrv, version: 1.70.0 } + - { name: msrv, version: "${{ needs.read_msrv.outputs.msrv }}" } - { name: stable, version: stable } name: ${{ matrix.target.name }} / ${{ matrix.version.name }} diff --git a/justfile b/justfile index 188ab13d..fe4b8a92 100644 --- a/justfile +++ b/justfile @@ -27,6 +27,13 @@ all_crate_features := if os() == "linux" { "--features='" + non_linux_all_features_list + "'" } +m: + cargo metadata --format-version=1 \ + | jq -r 'first(.packages[] | select(.source == null)) | .rust_version' \ + | sed -E 's/^1\.([0-9]{2})$/1\.\1\.0/' \ + | xargs -0 printf "msrv=%s" \ + | tee /dev/stderr + # Test workspace code. test toolchain="": cargo {{ toolchain }} test --lib --tests --package=actix-macros From 2632c984cc0133f61a146938e6c921c89c81b793 Mon Sep 17 00:00:00 2001 From: Rob Ede Date: Sun, 12 May 2024 21:53:26 +0100 Subject: [PATCH 169/410] ci: fix nightly windows builds --- .github/workflows/ci-post-merge.yml | 4 ++++ justfile | 6 +++--- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ci-post-merge.yml b/.github/workflows/ci-post-merge.yml index 27de0429..e6935198 100644 --- a/.github/workflows/ci-post-merge.yml +++ b/.github/workflows/ci-post-merge.yml @@ -41,6 +41,10 @@ jobs: if: matrix.target.os == 'ubuntu-latest' run: ./scripts/free-disk-space.sh + - name: Install nasm + if: matrix.target.os == 'windows-latest' + uses: ilammy/setup-nasm@v1.5.1 + - name: Install OpenSSL if: matrix.target.os == 'windows-latest' shell: bash diff --git a/justfile b/justfile index fe4b8a92..ad188756 100644 --- a/justfile +++ b/justfile @@ -8,10 +8,10 @@ downgrade-for-msrv: msrv := ``` cargo metadata --format-version=1 \ - | jq -r 'first(.packages[] | select(.source == null and .name == "actix-tls")) | .rust_version' + | jq -r 'first(.packages[] | select(.source == null and .name == "actix-tls")) | .rust_version' \ + | sed -E 's/^1\.([0-9]{2})$/1\.\1\.0/' ``` -msrv_full := msrv + ".0" # comment out if the MSRV has a patch version specified -msrv_rustup := "+" + msrv_full +msrv_rustup := "+" + msrv non_linux_all_features_list := ``` cargo metadata --format-version=1 \ From 73451070db6fba544d515065c4db10062d0635f9 Mon Sep 17 00:00:00 2001 From: asonix Date: Sun, 12 May 2024 16:09:59 -0500 Subject: [PATCH 170/410] actix-tls: Disable default features for rustls 0.23 via tokio-rustls 0.26 (#560) * actix-tls: Disable default features for rustls 0.23 via tokio-rustls 0.26 This also fixes a panic in accept-rustls due to both ring and aws-lc-rs being enabled for that example * Switch a test from aws-lc-rs to ring since aws-lc-rs is no longer enabled in dev-dependencies * Switch another test from aws-lc-rs to ring since aws-lc-rs is no longer enabled in dev-dependencies * Go the other way - use aws_lc_rs instead of ring --------- Co-authored-by: Rob Ede --- actix-tls/Cargo.toml | 4 ++-- actix-tls/tests/accept-openssl.rs | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) mode change 100755 => 100644 actix-tls/Cargo.toml diff --git a/actix-tls/Cargo.toml b/actix-tls/Cargo.toml old mode 100755 new mode 100644 index f0dfaf81..8fce2836 --- a/actix-tls/Cargo.toml +++ b/actix-tls/Cargo.toml @@ -108,7 +108,7 @@ tokio-rustls-025 = { package = "tokio-rustls", version = "0.25", optional = true webpki-roots-026 = { package = "webpki-roots", version = "0.26", optional = true } # Also used for rustls v0.23 # rustls v0.23 -tokio-rustls-026 = { package = "tokio-rustls", version = "0.26", optional = true } +tokio-rustls-026 = { package = "tokio-rustls", version = "0.26", default-features = false, optional = true } # native root certificates for rustls impls rustls-native-certs-06 = { package = "rustls-native-certs", version = "0.6", optional = true } @@ -127,7 +127,7 @@ futures-util = { version = "0.3.17", default-features = false, features = ["sink itertools = "0.12" rcgen = "0.12" rustls-pemfile = "2" -tokio-rustls-026 = { package = "tokio-rustls", version = "0.26", features = ["ring"] } +tokio-rustls-026 = { package = "tokio-rustls", version = "0.26" } trust-dns-resolver = "0.23" [[example]] diff --git a/actix-tls/tests/accept-openssl.rs b/actix-tls/tests/accept-openssl.rs index ecafbf76..217e8e5d 100644 --- a/actix-tls/tests/accept-openssl.rs +++ b/actix-tls/tests/accept-openssl.rs @@ -88,7 +88,7 @@ mod danger { } fn supported_verify_schemes(&self) -> Vec { - rustls::crypto::ring::default_provider() + rustls::crypto::aws_lc_rs::default_provider() .signature_verification_algorithms .supported_schemes() } From 8cf79d3d1364cd91fb933640c7614a40586d1eb6 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 13 May 2024 21:43:50 +0100 Subject: [PATCH 171/410] build(deps): bump taiki-e/install-action from 2.33.17 to 2.33.22 (#561) Bumps [taiki-e/install-action](https://github.com/taiki-e/install-action) from 2.33.17 to 2.33.22. - [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.33.17...v2.33.22) --- updated-dependencies: - dependency-name: taiki-e/install-action 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/ci-post-merge.yml | 6 +++--- .github/workflows/ci.yml | 4 ++-- .github/workflows/coverage.yml | 2 +- .github/workflows/lint.yml | 2 +- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/.github/workflows/ci-post-merge.yml b/.github/workflows/ci-post-merge.yml index e6935198..8299e4da 100644 --- a/.github/workflows/ci-post-merge.yml +++ b/.github/workflows/ci-post-merge.yml @@ -60,7 +60,7 @@ jobs: toolchain: ${{ matrix.version }} - name: Install just, cargo-hack, cargo-nextest, cargo-ci-cache-clean - uses: taiki-e/install-action@v2.33.17 + uses: taiki-e/install-action@v2.33.22 with: tool: just,cargo-hack,cargo-nextest,cargo-ci-cache-clean @@ -116,7 +116,7 @@ jobs: toolchain: nightly - name: Install cargo-hack & cargo-minimal-versions - uses: taiki-e/install-action@v2.33.17 + uses: taiki-e/install-action@v2.33.22 with: tool: cargo-hack,cargo-minimal-versions @@ -133,7 +133,7 @@ jobs: uses: actions-rust-lang/setup-rust-toolchain@v1.8.0 - name: Install cargo-nextest - uses: taiki-e/install-action@v2.33.17 + uses: taiki-e/install-action@v2.33.22 with: tool: cargo-nextest diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 0d93bd1c..516b84fa 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -69,7 +69,7 @@ jobs: toolchain: ${{ matrix.version.version }} - name: Install just, cargo-hack, cargo-nextest, cargo-ci-cache-clean - uses: taiki-e/install-action@v2.33.17 + uses: taiki-e/install-action@v2.33.22 with: tool: just,cargo-hack,cargo-nextest,cargo-ci-cache-clean @@ -123,7 +123,7 @@ jobs: toolchain: nightly - name: Install just - uses: taiki-e/install-action@v2.33.17 + uses: taiki-e/install-action@v2.33.22 with: tool: just diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml index a9074a51..943f6322 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.33.17 + uses: taiki-e/install-action@v2.33.22 with: tool: cargo-llvm-cov diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index b6f88db5..f3092e27 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -55,7 +55,7 @@ jobs: toolchain: nightly-2023-10-10 - name: Install just - uses: taiki-e/install-action@v2.33.17 + uses: taiki-e/install-action@v2.33.22 with: tool: just From 38ae7625690e99a4dede60962703d9eefd3da16d Mon Sep 17 00:00:00 2001 From: Rob Ede Date: Sat, 18 May 2024 17:34:18 +0100 Subject: [PATCH 172/410] ci: fix msrv just variable --- justfile | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) diff --git a/justfile b/justfile index ad188756..eb046683 100644 --- a/justfile +++ b/justfile @@ -8,7 +8,7 @@ downgrade-for-msrv: msrv := ``` cargo metadata --format-version=1 \ - | jq -r 'first(.packages[] | select(.source == null and .name == "actix-tls")) | .rust_version' \ + | jq -r 'first(.packages[] | select(.source == null and .rust_version)) | .rust_version' \ | sed -E 's/^1\.([0-9]{2})$/1\.\1\.0/' ``` msrv_rustup := "+" + msrv @@ -27,13 +27,6 @@ all_crate_features := if os() == "linux" { "--features='" + non_linux_all_features_list + "'" } -m: - cargo metadata --format-version=1 \ - | jq -r 'first(.packages[] | select(.source == null)) | .rust_version' \ - | sed -E 's/^1\.([0-9]{2})$/1\.\1\.0/' \ - | xargs -0 printf "msrv=%s" \ - | tee /dev/stderr - # Test workspace code. test toolchain="": cargo {{ toolchain }} test --lib --tests --package=actix-macros @@ -48,7 +41,7 @@ test-docs toolchain="": && doc cargo {{ toolchain }} test --doc --workspace {{ all_crate_features }} --no-fail-fast -- --nocapture # Test workspace. -test-all toolchain="": (test toolchain) (test-docs) +test-all toolchain="": (test toolchain) (test-docs toolchain) # Document crates in workspace. doc *args: From 24be36b18d0a649867de0a7a9740cc7599e4bf13 Mon Sep 17 00:00:00 2001 From: Rob Ede Date: Sat, 18 May 2024 18:14:26 +0100 Subject: [PATCH 173/410] chore: prepare actix-tls release v3.4.0 --- .cargo/config.toml | 6 ------ actix-tls/CHANGES.md | 2 ++ actix-tls/Cargo.toml | 20 +++++++++++++------- actix-tls/README.md | 4 ++-- 4 files changed, 17 insertions(+), 15 deletions(-) diff --git a/.cargo/config.toml b/.cargo/config.toml index 33cf3dc1..dd92a9d4 100644 --- a/.cargo/config.toml +++ b/.cargo/config.toml @@ -13,9 +13,3 @@ ci-check-linux = "hack --workspace --feature-powerset --depth=2 check --tests -- # tests avoiding io-uring feature ci-test = "hack --feature-powerset --depth=2 --exclude-features=io-uring test --lib --tests --no-fail-fast -- --nocapture" -ci-test-rustls-020 = "hack --feature-powerset --depth=2 --exclude-features=io-uring,rustls-0_21,rustls-0_22 test --lib --tests --no-fail-fast -- --nocapture" -ci-test-rustls-021 = "hack --feature-powerset --depth=2 --exclude-features=io-uring,rustls-0_20,rustls-0_22 test --lib --tests --no-fail-fast -- --nocapture" -ci-test-rustls-022 = "hack --feature-powerset --depth=2 --exclude-features=io-uring,rustls-0_20,rustls-0_21 test --lib --tests --no-fail-fast -- --nocapture" - -# test with io-uring feature -ci-test-linux = "hack --feature-powerset --depth=2 --exclude-features=rustls-0_20,rustls-0_21 test --lib --tests --no-fail-fast -- --nocapture" diff --git a/actix-tls/CHANGES.md b/actix-tls/CHANGES.md index cc8c6137..5b7ffb04 100644 --- a/actix-tls/CHANGES.md +++ b/actix-tls/CHANGES.md @@ -2,6 +2,8 @@ ## Unreleased +## 3.4.0 + - Add `rustls-0_23`, `rustls-0_23-webpki-roots`, and `rustls-0_23-native-roots` crate features. - Minimum supported Rust version (MSRV) is now 1.70. diff --git a/actix-tls/Cargo.toml b/actix-tls/Cargo.toml index 8fce2836..eb23cb6d 100644 --- a/actix-tls/Cargo.toml +++ b/actix-tls/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "actix-tls" -version = "3.3.0" +version = "3.4.0" authors = [ "Nikolay Kim ", "Rob Ede ", @@ -92,24 +92,26 @@ http-1 = { package = "http", version = "1", optional = true } tls-openssl = { package = "openssl", version = "0.10.55", optional = true } tokio-openssl = { version = "0.6", optional = true } +# rustls PKI types +rustls-pki-types-1 = { package = "rustls-pki-types", version = "1", optional = true } + # rustls v0.20 tokio-rustls-023 = { package = "tokio-rustls", version = "0.23", optional = true } -webpki-roots-022 = { package = "webpki-roots", version = "0.22", optional = true } # rustls v0.21 -rustls-021 = { package = "rustls", version = "0.21.6", optional = true } -rustls-webpki-0101 = { package = "rustls-webpki", version = "0.101.4", optional = true } tokio-rustls-024 = { package = "tokio-rustls", version = "0.24", optional = true } -webpki-roots-025 = { package = "webpki-roots", version = "0.25", optional = true } # rustls v0.22 -rustls-pki-types-1 = { package = "rustls-pki-types", version = "1", optional = true } # Also used for rustls v0.23 tokio-rustls-025 = { package = "tokio-rustls", version = "0.25", optional = true } -webpki-roots-026 = { package = "webpki-roots", version = "0.26", optional = true } # Also used for rustls v0.23 # rustls v0.23 tokio-rustls-026 = { package = "tokio-rustls", version = "0.26", default-features = false, optional = true } +# webpki-roots used with rustls features +webpki-roots-022 = { package = "webpki-roots", version = "0.22", optional = true } +webpki-roots-025 = { package = "webpki-roots", version = "0.25", optional = true } +webpki-roots-026 = { package = "webpki-roots", version = "0.26", optional = true } + # native root certificates for rustls impls rustls-native-certs-06 = { package = "rustls-native-certs", version = "0.6", optional = true } rustls-native-certs-07 = { package = "rustls-native-certs", version = "0.7", optional = true } @@ -117,6 +119,10 @@ rustls-native-certs-07 = { package = "rustls-native-certs", version = "0.7", opt # native-tls tokio-native-tls = { version = "0.3", optional = true } +[target.'cfg(any())'.dependencies] +rustls-021 = { package = "rustls", version = "0.21.6", optional = true } # force version with add_trust_anchors method +rustls-webpki-0101 = { package = "rustls-webpki", version = "0.101.4", optional = true } # force secure version + [dev-dependencies] actix-codec = "0.5" actix-rt = "2.2" diff --git a/actix-tls/README.md b/actix-tls/README.md index 555a601b..554f2615 100644 --- a/actix-tls/README.md +++ b/actix-tls/README.md @@ -5,11 +5,11 @@ [![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.3.0)](https://docs.rs/actix-tls/3.3.0) +[![Documentation](https://docs.rs/actix-tls/badge.svg?version=3.4.0)](https://docs.rs/actix-tls/3.4.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) ![MIT or Apache 2.0 licensed](https://img.shields.io/crates/l/actix-tls.svg)
-[![Dependency Status](https://deps.rs/crate/actix-tls/3.3.0/status.svg)](https://deps.rs/crate/actix-tls/3.3.0) +[![Dependency Status](https://deps.rs/crate/actix-tls/3.4.0/status.svg)](https://deps.rs/crate/actix-tls/3.4.0) ![Download](https://img.shields.io/crates/d/actix-tls.svg) [![Chat on Discord](https://img.shields.io/discord/771444961383153695?label=chat&logo=discord)](https://discord.gg/NWpN5mmg3x) From 55e89d1f300b7c5f75118a092a925f8e1a43c440 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 20 May 2024 19:05:28 +0000 Subject: [PATCH 174/410] --- (#564) updated-dependencies: - dependency-name: JamesIves/github-pages-deploy-action 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/upload-doc.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/upload-doc.yml b/.github/workflows/upload-doc.yml index 2d70e7ff..60ddab09 100644 --- a/.github/workflows/upload-doc.yml +++ b/.github/workflows/upload-doc.yml @@ -30,7 +30,7 @@ jobs: run: echo '' > target/doc/index.html - name: Deploy to GitHub Pages - uses: JamesIves/github-pages-deploy-action@v4.6.0 + uses: JamesIves/github-pages-deploy-action@v4.6.1 with: folder: target/doc single-commit: true From 3696cda155784396a731466f6224200610b6d42c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 20 May 2024 20:06:51 +0100 Subject: [PATCH 175/410] --- (#562) updated-dependencies: - dependency-name: itertools dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- actix-tls/Cargo.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/actix-tls/Cargo.toml b/actix-tls/Cargo.toml index eb23cb6d..cb90fb7f 100644 --- a/actix-tls/Cargo.toml +++ b/actix-tls/Cargo.toml @@ -130,7 +130,7 @@ actix-server = "2" bytes = "1" pretty_env_logger = "0.5" futures-util = { version = "0.3.17", default-features = false, features = ["sink"] } -itertools = "0.12" +itertools = "0.13" rcgen = "0.12" rustls-pemfile = "2" tokio-rustls-026 = { package = "tokio-rustls", version = "0.26" } From 2d1b5468d0e24e68300d3c638ba74b89f7061696 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 20 May 2024 19:08:43 +0000 Subject: [PATCH 176/410] --- (#563) updated-dependencies: - dependency-name: codecov/codecov-action 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/coverage.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml index 943f6322..ad7b2597 100644 --- a/.github/workflows/coverage.yml +++ b/.github/workflows/coverage.yml @@ -31,7 +31,7 @@ jobs: run: cargo llvm-cov --workspace --all-features --codecov --output-path codecov.json - name: Upload coverage to Codecov - uses: codecov/codecov-action@v4.3.1 + uses: codecov/codecov-action@v4.4.1 with: files: codecov.json fail_ci_if_error: true From 375c3528107d326f2d68933b8a5c36ee6d64508d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 20 May 2024 19:11:09 +0000 Subject: [PATCH 177/410] --- (#565) updated-dependencies: - dependency-name: taiki-e/install-action 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/ci-post-merge.yml | 6 +++--- .github/workflows/ci.yml | 4 ++-- .github/workflows/coverage.yml | 2 +- .github/workflows/lint.yml | 2 +- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/.github/workflows/ci-post-merge.yml b/.github/workflows/ci-post-merge.yml index 8299e4da..e42057a2 100644 --- a/.github/workflows/ci-post-merge.yml +++ b/.github/workflows/ci-post-merge.yml @@ -60,7 +60,7 @@ jobs: toolchain: ${{ matrix.version }} - name: Install just, cargo-hack, cargo-nextest, cargo-ci-cache-clean - uses: taiki-e/install-action@v2.33.22 + uses: taiki-e/install-action@v2.33.26 with: tool: just,cargo-hack,cargo-nextest,cargo-ci-cache-clean @@ -116,7 +116,7 @@ jobs: toolchain: nightly - name: Install cargo-hack & cargo-minimal-versions - uses: taiki-e/install-action@v2.33.22 + uses: taiki-e/install-action@v2.33.26 with: tool: cargo-hack,cargo-minimal-versions @@ -133,7 +133,7 @@ jobs: uses: actions-rust-lang/setup-rust-toolchain@v1.8.0 - name: Install cargo-nextest - uses: taiki-e/install-action@v2.33.22 + uses: taiki-e/install-action@v2.33.26 with: tool: cargo-nextest diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 516b84fa..7a96b25b 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -69,7 +69,7 @@ jobs: toolchain: ${{ matrix.version.version }} - name: Install just, cargo-hack, cargo-nextest, cargo-ci-cache-clean - uses: taiki-e/install-action@v2.33.22 + uses: taiki-e/install-action@v2.33.26 with: tool: just,cargo-hack,cargo-nextest,cargo-ci-cache-clean @@ -123,7 +123,7 @@ jobs: toolchain: nightly - name: Install just - uses: taiki-e/install-action@v2.33.22 + uses: taiki-e/install-action@v2.33.26 with: tool: just diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml index ad7b2597..8d9494e3 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.33.22 + uses: taiki-e/install-action@v2.33.26 with: tool: cargo-llvm-cov diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index f3092e27..1e773596 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -55,7 +55,7 @@ jobs: toolchain: nightly-2023-10-10 - name: Install just - uses: taiki-e/install-action@v2.33.22 + uses: taiki-e/install-action@v2.33.26 with: tool: just From a7ef438f258a125eb3a49374c9f36750fba63861 Mon Sep 17 00:00:00 2001 From: Rob Ede Date: Mon, 27 May 2024 22:25:32 +0100 Subject: [PATCH 178/410] ci: use mold linker on linux jobs --- .github/workflows/ci-post-merge.yml | 4 ++++ .github/workflows/ci.yml | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/.github/workflows/ci-post-merge.yml b/.github/workflows/ci-post-merge.yml index e42057a2..5145fc85 100644 --- a/.github/workflows/ci-post-merge.yml +++ b/.github/workflows/ci-post-merge.yml @@ -41,6 +41,10 @@ jobs: if: matrix.target.os == 'ubuntu-latest' run: ./scripts/free-disk-space.sh + - name: Setup mold linker + if: matrix.target.os == 'ubuntu-latest' + uses: rui314/setup-mold@v1 + - name: Install nasm if: matrix.target.os == 'windows-latest' uses: ilammy/setup-nasm@v1.5.1 diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 7a96b25b..ebe55c0e 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -50,6 +50,10 @@ jobs: if: matrix.target.os == 'ubuntu-latest' run: ./scripts/free-disk-space.sh + - name: Setup mold linker + if: matrix.target.os == 'ubuntu-latest' + uses: rui314/setup-mold@v1 + - name: Install nasm if: matrix.target.os == 'windows-latest' uses: ilammy/setup-nasm@v1.5.1 From 786014cc2f3cab73466cdb10c5e83a4a6a10ff56 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 27 May 2024 21:24:55 +0000 Subject: [PATCH 179/410] build(deps): bump taiki-e/install-action from 2.33.26 to 2.33.34 (#566) Bumps [taiki-e/install-action](https://github.com/taiki-e/install-action) from 2.33.26 to 2.33.34. - [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.33.26...v2.33.34) --- updated-dependencies: - dependency-name: taiki-e/install-action 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/ci-post-merge.yml | 6 +++--- .github/workflows/ci.yml | 4 ++-- .github/workflows/coverage.yml | 2 +- .github/workflows/lint.yml | 2 +- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/.github/workflows/ci-post-merge.yml b/.github/workflows/ci-post-merge.yml index 5145fc85..6d6952f6 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.33.26 + uses: taiki-e/install-action@v2.33.34 with: tool: just,cargo-hack,cargo-nextest,cargo-ci-cache-clean @@ -120,7 +120,7 @@ jobs: toolchain: nightly - name: Install cargo-hack & cargo-minimal-versions - uses: taiki-e/install-action@v2.33.26 + uses: taiki-e/install-action@v2.33.34 with: tool: cargo-hack,cargo-minimal-versions @@ -137,7 +137,7 @@ jobs: uses: actions-rust-lang/setup-rust-toolchain@v1.8.0 - name: Install cargo-nextest - uses: taiki-e/install-action@v2.33.26 + uses: taiki-e/install-action@v2.33.34 with: tool: cargo-nextest diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index ebe55c0e..a677684f 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.33.26 + uses: taiki-e/install-action@v2.33.34 with: tool: just,cargo-hack,cargo-nextest,cargo-ci-cache-clean @@ -127,7 +127,7 @@ jobs: toolchain: nightly - name: Install just - uses: taiki-e/install-action@v2.33.26 + uses: taiki-e/install-action@v2.33.34 with: tool: just diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml index 8d9494e3..ff1767fb 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.33.26 + uses: taiki-e/install-action@v2.33.34 with: tool: cargo-llvm-cov diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 1e773596..a57aac5c 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -55,7 +55,7 @@ jobs: toolchain: nightly-2023-10-10 - name: Install just - uses: taiki-e/install-action@v2.33.26 + uses: taiki-e/install-action@v2.33.34 with: tool: just From 18071d1fc028a21ca7956dc81cd9645357c08d26 Mon Sep 17 00:00:00 2001 From: Rob Ede Date: Mon, 27 May 2024 22:57:33 +0100 Subject: [PATCH 180/410] ci: disable io-uring tests --- .github/workflows/ci-post-merge.yml | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/.github/workflows/ci-post-merge.yml b/.github/workflows/ci-post-merge.yml index 6d6952f6..30001e04 100644 --- a/.github/workflows/ci-post-merge.yml +++ b/.github/workflows/ci-post-merge.yml @@ -91,19 +91,20 @@ jobs: run: cargo ci-check-linux - name: tests - if: matrix.target.os != 'ubuntu-latest' run: just test - - name: tests - if: matrix.target.os == 'ubuntu-latest' - run: >- - sudo bash -c " - ulimit -Sl 512 - && ulimit -Hl 512 - && PATH=$PATH:/usr/share/rust/.cargo/bin - && RUSTUP_TOOLCHAIN=${{ matrix.version }} cargo ci-test-rustls-020 - && RUSTUP_TOOLCHAIN=${{ matrix.version }} cargo ci-test-rustls-021 - && RUSTUP_TOOLCHAIN=${{ matrix.version }} cargo ci-test-linux - " + + # TODO: re-instate some io-uring tests PRs + # - name: tests + # if: matrix.target.os == 'ubuntu-latest' + # run: >- + # sudo bash -c " + # ulimit -Sl 512 + # && ulimit -Hl 512 + # && PATH=$PATH:/usr/share/rust/.cargo/bin + # && RUSTUP_TOOLCHAIN=${{ matrix.version }} cargo ci-test-rustls-020 + # && RUSTUP_TOOLCHAIN=${{ matrix.version }} cargo ci-test-rustls-021 + # && RUSTUP_TOOLCHAIN=${{ matrix.version }} cargo ci-test-linux + # " - name: CI cache clean run: cargo-ci-cache-clean From 451a44c2e042f9f62512f7913ba6f66c0a6e89db Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 3 Jun 2024 18:25:40 +0000 Subject: [PATCH 181/410] build(deps): bump taiki-e/install-action from 2.33.34 to 2.34.1 (#567) Bumps [taiki-e/install-action](https://github.com/taiki-e/install-action) from 2.33.34 to 2.34.1. - [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.33.34...v2.34.1) --- updated-dependencies: - dependency-name: taiki-e/install-action 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 | 6 +++--- .github/workflows/ci.yml | 4 ++-- .github/workflows/coverage.yml | 2 +- .github/workflows/lint.yml | 2 +- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/.github/workflows/ci-post-merge.yml b/.github/workflows/ci-post-merge.yml index 30001e04..274c3ebe 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.33.34 + uses: taiki-e/install-action@v2.34.1 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.33.34 + uses: taiki-e/install-action@v2.34.1 with: tool: cargo-hack,cargo-minimal-versions @@ -138,7 +138,7 @@ jobs: uses: actions-rust-lang/setup-rust-toolchain@v1.8.0 - name: Install cargo-nextest - uses: taiki-e/install-action@v2.33.34 + uses: taiki-e/install-action@v2.34.1 with: tool: cargo-nextest diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index a677684f..e7d47f7c 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.33.34 + uses: taiki-e/install-action@v2.34.1 with: tool: just,cargo-hack,cargo-nextest,cargo-ci-cache-clean @@ -127,7 +127,7 @@ jobs: toolchain: nightly - name: Install just - uses: taiki-e/install-action@v2.33.34 + uses: taiki-e/install-action@v2.34.1 with: tool: just diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml index ff1767fb..06b0ccdd 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.33.34 + uses: taiki-e/install-action@v2.34.1 with: tool: cargo-llvm-cov diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index a57aac5c..630d92c6 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -55,7 +55,7 @@ jobs: toolchain: nightly-2023-10-10 - name: Install just - uses: taiki-e/install-action@v2.33.34 + uses: taiki-e/install-action@v2.34.1 with: tool: just From a524f15e34140fc40761a4d6d17af4cb76aa37b1 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 7 Jun 2024 18:51:27 +0100 Subject: [PATCH 182/410] build(deps): update tokio-uring requirement from 0.4 to 0.5 (#568) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Rob Ede --- .github/workflows/ci.yml | 4 +--- actix-rt/Cargo.toml | 2 +- actix-rt/tests/tests.rs | 2 +- actix-server/Cargo.toml | 2 +- justfile | 9 +++++++++ 5 files changed, 13 insertions(+), 6 deletions(-) mode change 100755 => 100644 actix-server/Cargo.toml diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index e7d47f7c..664d5e9e 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -15,7 +15,7 @@ concurrency: jobs: read_msrv: name: Read MSRV - uses: actions-rust-lang/msrv/.github/workflows/msrv.yml@main + uses: actions-rust-lang/msrv/.github/workflows/msrv.yml@v0.1.0 build_and_test: needs: @@ -109,8 +109,6 @@ jobs: - name: tests run: just test - # TODO: re-instate some io-uring tests for PRs - - name: CI cache clean run: cargo-ci-cache-clean diff --git a/actix-rt/Cargo.toml b/actix-rt/Cargo.toml index f3993606..0b59279c 100644 --- a/actix-rt/Cargo.toml +++ b/actix-rt/Cargo.toml @@ -33,7 +33,7 @@ tokio = { version = "1.23.1", features = ["rt", "net", "parking_lot", "signal", # runtime for `io-uring` feature [target.'cfg(target_os = "linux")'.dependencies] -tokio-uring = { version = "0.4", optional = true } +tokio-uring = { version = "0.5", optional = true } [dev-dependencies] tokio = { version = "1.23.1", features = ["full"] } diff --git a/actix-rt/tests/tests.rs b/actix-rt/tests/tests.rs index be7c3248..330e27ff 100644 --- a/actix-rt/tests/tests.rs +++ b/actix-rt/tests/tests.rs @@ -358,7 +358,7 @@ fn tokio_uring_arbiter() { let f = tokio_uring::fs::File::create("test.txt").await.unwrap(); let buf = b"Hello World!"; - let (res, _) = f.write_at(&buf[..], 0).await; + let (res, _) = f.write_all_at(&buf[..], 0).await; assert!(res.is_ok()); f.sync_all().await.unwrap(); diff --git a/actix-server/Cargo.toml b/actix-server/Cargo.toml old mode 100755 new mode 100644 index 118b86b0..f37cca97 --- a/actix-server/Cargo.toml +++ b/actix-server/Cargo.toml @@ -38,7 +38,7 @@ tracing = { version = "0.1.30", default-features = false, features = ["log"] } # runtime for `io-uring` feature [target.'cfg(target_os = "linux")'.dependencies] -tokio-uring = { version = "0.4", optional = true } +tokio-uring = { version = "0.5", optional = true } [dev-dependencies] actix-codec = "0.5" diff --git a/justfile b/justfile index eb046683..ae80165b 100644 --- a/justfile +++ b/justfile @@ -28,11 +28,20 @@ all_crate_features := if os() == "linux" { } # Test workspace code. +[macos, windows] test toolchain="": cargo {{ toolchain }} test --lib --tests --package=actix-macros cargo {{ toolchain }} nextest run --workspace --exclude=actix-macros --no-default-features cargo {{ toolchain }} nextest run --workspace --exclude=actix-macros {{ all_crate_features }} +# Test workspace code. +[linux] +test toolchain="": + cargo {{ toolchain }} test --lib --tests --package=actix-macros + cargo {{ toolchain }} nextest run --workspace --exclude=actix-macros --no-default-features + cargo {{ toolchain }} nextest run --workspace --exclude=actix-macros {{ non_linux_all_features_list }} + cargo {{ toolchain }} nextest run --workspace --exclude=actix-macros {{ all_crate_features }} + # Test workspace using MSRV. test-msrv: downgrade-for-msrv (test msrv_rustup) From 1bdb15ec20c602e224d6bc65dfbdf72d87caeab8 Mon Sep 17 00:00:00 2001 From: Rob Ede Date: Sun, 9 Jun 2024 06:12:07 +0100 Subject: [PATCH 183/410] chore(actix-rt): prepare release 2.10.0 --- actix-rt/CHANGES.md | 3 +++ actix-rt/Cargo.toml | 2 +- actix-rt/README.md | 4 ++-- actix-server/Cargo.toml | 2 +- 4 files changed, 7 insertions(+), 4 deletions(-) diff --git a/actix-rt/CHANGES.md b/actix-rt/CHANGES.md index 1535612b..05bc8e36 100644 --- a/actix-rt/CHANGES.md +++ b/actix-rt/CHANGES.md @@ -2,6 +2,9 @@ ## Unreleased +## 2.10.0 + +- Update `tokio-uring` dependency to `0.5`. - Minimum supported Rust version (MSRV) is now 1.70. ## 2.9.0 diff --git a/actix-rt/Cargo.toml b/actix-rt/Cargo.toml index 0b59279c..b46ad896 100644 --- a/actix-rt/Cargo.toml +++ b/actix-rt/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "actix-rt" -version = "2.9.0" +version = "2.10.0" authors = [ "Nikolay Kim ", "Rob Ede ", diff --git a/actix-rt/README.md b/actix-rt/README.md index ee206b03..6ceed8b5 100644 --- a/actix-rt/README.md +++ b/actix-rt/README.md @@ -3,11 +3,11 @@ > Tokio-based single-threaded async runtime for the Actix ecosystem. [![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.9.0)](https://docs.rs/actix-rt/2.9.0) +[![Documentation](https://docs.rs/actix-rt/badge.svg?version=2.10.0)](https://docs.rs/actix-rt/2.10.0) [![Version](https://img.shields.io/badge/rustc-1.46+-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.9.0/status.svg)](https://deps.rs/crate/actix-rt/2.9.0) +[![dependency status](https://deps.rs/crate/actix-rt/2.10.0/status.svg)](https://deps.rs/crate/actix-rt/2.10.0) ![Download](https://img.shields.io/crates/d/actix-rt.svg) [![Chat on Discord](https://img.shields.io/discord/771444961383153695?label=chat&logo=discord)](https://discord.gg/WghFtEH6Hb) diff --git a/actix-server/Cargo.toml b/actix-server/Cargo.toml index f37cca97..50a94db8 100644 --- a/actix-server/Cargo.toml +++ b/actix-server/Cargo.toml @@ -25,7 +25,7 @@ default = [] io-uring = ["tokio-uring", "actix-rt/io-uring"] [dependencies] -actix-rt = { version = "2.8", default-features = false } +actix-rt = { version = "2.10", default-features = false } actix-service = "2" actix-utils = "3" From 0c26ecf9fa8c5cdae6d45faea5e22f57764b19aa Mon Sep 17 00:00:00 2001 From: Rob Ede Date: Sun, 9 Jun 2024 06:12:28 +0100 Subject: [PATCH 184/410] chore(actix-server): prepare release 2.4.0 --- actix-server/CHANGES.md | 3 +++ actix-server/Cargo.toml | 2 +- actix-server/README.md | 4 ++-- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/actix-server/CHANGES.md b/actix-server/CHANGES.md index ce4c6b27..f185bbec 100644 --- a/actix-server/CHANGES.md +++ b/actix-server/CHANGES.md @@ -2,6 +2,9 @@ ## Unreleased +## 2.4.0 + +- Update `tokio-uring` dependency to `0.5`. - Minimum supported Rust version (MSRV) is now 1.70. ## 2.3.0 diff --git a/actix-server/Cargo.toml b/actix-server/Cargo.toml index 50a94db8..f0658542 100644 --- a/actix-server/Cargo.toml +++ b/actix-server/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "actix-server" -version = "2.3.0" +version = "2.4.0" authors = [ "Nikolay Kim ", "Rob Ede ", diff --git a/actix-server/README.md b/actix-server/README.md index eb9a0bd7..a9c766ba 100644 --- a/actix-server/README.md +++ b/actix-server/README.md @@ -5,11 +5,11 @@ [![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.3.0)](https://docs.rs/actix-server/2.3.0) +[![Documentation](https://docs.rs/actix-server/badge.svg?version=2.4.0)](https://docs.rs/actix-server/2.4.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) ![MIT or Apache 2.0 licensed](https://img.shields.io/crates/l/actix-server.svg)
-[![Dependency Status](https://deps.rs/crate/actix-server/2.3.0/status.svg)](https://deps.rs/crate/actix-server/2.3.0) +[![Dependency Status](https://deps.rs/crate/actix-server/2.4.0/status.svg)](https://deps.rs/crate/actix-server/2.4.0) ![Download](https://img.shields.io/crates/d/actix-server.svg) [![Chat on Discord](https://img.shields.io/discord/771444961383153695?label=chat&logo=discord)](https://discord.gg/NWpN5mmg3x) From 0d3d1926bcd7fba1a7fdc20e78e3c97d939f97e2 Mon Sep 17 00:00:00 2001 From: Rob Ede Date: Sun, 9 Jun 2024 07:12:24 +0100 Subject: [PATCH 185/410] fix: relax bounds on with_tokio_rt (#569) --- actix-rt/CHANGES.md | 1 + actix-rt/src/arbiter.rs | 2 +- actix-rt/src/system.rs | 4 ++-- justfile | 4 ++++ 4 files changed, 8 insertions(+), 3 deletions(-) diff --git a/actix-rt/CHANGES.md b/actix-rt/CHANGES.md index 05bc8e36..98841887 100644 --- a/actix-rt/CHANGES.md +++ b/actix-rt/CHANGES.md @@ -4,6 +4,7 @@ ## 2.10.0 +- Relax bound (`F: Fn -> FnOnce`) on `{Arbiter, System}::with_tokio_rt()` functions. - Update `tokio-uring` dependency to `0.5`. - Minimum supported Rust version (MSRV) is now 1.70. diff --git a/actix-rt/src/arbiter.rs b/actix-rt/src/arbiter.rs index ee647aef..1da76c52 100644 --- a/actix-rt/src/arbiter.rs +++ b/actix-rt/src/arbiter.rs @@ -109,7 +109,7 @@ impl Arbiter { #[cfg(not(all(target_os = "linux", feature = "io-uring")))] pub fn with_tokio_rt(runtime_factory: F) -> Arbiter where - F: Fn() -> tokio::runtime::Runtime + Send + 'static, + F: FnOnce() -> tokio::runtime::Runtime + Send + 'static, { let sys = System::current(); let system_id = sys.id(); diff --git a/actix-rt/src/system.rs b/actix-rt/src/system.rs index 367a2d21..f9fe4c8d 100644 --- a/actix-rt/src/system.rs +++ b/actix-rt/src/system.rs @@ -48,7 +48,7 @@ impl System { /// [tokio-runtime]: tokio::runtime::Runtime pub fn with_tokio_rt(runtime_factory: F) -> SystemRunner where - F: Fn() -> tokio::runtime::Runtime, + F: FnOnce() -> tokio::runtime::Runtime, { let (stop_tx, stop_rx) = oneshot::channel(); let (sys_tx, sys_rx) = mpsc::unbounded_channel(); @@ -87,7 +87,7 @@ impl System { #[doc(hidden)] pub fn with_tokio_rt(_: F) -> SystemRunner where - F: Fn() -> tokio::runtime::Runtime, + F: FnOnce() -> tokio::runtime::Runtime, { unimplemented!("System::with_tokio_rt is not implemented for io-uring feature yet") } diff --git a/justfile b/justfile index ae80165b..e7a7978a 100644 --- a/justfile +++ b/justfile @@ -27,6 +27,10 @@ all_crate_features := if os() == "linux" { "--features='" + non_linux_all_features_list + "'" } +# Run Clippy over workspace. +clippy toolchain="": + cargo {{ toolchain }} clippy --workspace --all-targets {{ all_crate_features }} + # Test workspace code. [macos, windows] test toolchain="": From b3b158311528a8c03ab0aa6f1937ea90a856f758 Mon Sep 17 00:00:00 2001 From: Rob Ede Date: Sun, 9 Jun 2024 18:08:53 +0100 Subject: [PATCH 186/410] docs: update changelog --- actix-rt/CHANGES.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/actix-rt/CHANGES.md b/actix-rt/CHANGES.md index 98841887..18466fa6 100644 --- a/actix-rt/CHANGES.md +++ b/actix-rt/CHANGES.md @@ -4,7 +4,7 @@ ## 2.10.0 -- Relax bound (`F: Fn -> FnOnce`) on `{Arbiter, System}::with_tokio_rt()` functions. +- Relax `F`'s bound (`Fn => FnOnce`) on `{Arbiter, System}::with_tokio_rt()` functions. - Update `tokio-uring` dependency to `0.5`. - Minimum supported Rust version (MSRV) is now 1.70. From 2c443a7620219feca31b736254f756d97ecff77b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 10 Jun 2024 20:35:52 +0100 Subject: [PATCH 187/410] build(deps): bump taiki-e/install-action from 2.34.1 to 2.38.1 (#572) Bumps [taiki-e/install-action](https://github.com/taiki-e/install-action) from 2.34.1 to 2.38.1. - [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.34.1...v2.38.1) --- updated-dependencies: - dependency-name: taiki-e/install-action 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 | 6 +++--- .github/workflows/ci.yml | 4 ++-- .github/workflows/coverage.yml | 2 +- .github/workflows/lint.yml | 2 +- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/.github/workflows/ci-post-merge.yml b/.github/workflows/ci-post-merge.yml index 274c3ebe..88f09cae 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.34.1 + uses: taiki-e/install-action@v2.38.1 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.34.1 + uses: taiki-e/install-action@v2.38.1 with: tool: cargo-hack,cargo-minimal-versions @@ -138,7 +138,7 @@ jobs: uses: actions-rust-lang/setup-rust-toolchain@v1.8.0 - name: Install cargo-nextest - uses: taiki-e/install-action@v2.34.1 + uses: taiki-e/install-action@v2.38.1 with: tool: cargo-nextest diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 664d5e9e..498bed05 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.34.1 + uses: taiki-e/install-action@v2.38.1 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.34.1 + uses: taiki-e/install-action@v2.38.1 with: tool: just diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml index 06b0ccdd..4833208c 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.34.1 + uses: taiki-e/install-action@v2.38.1 with: tool: cargo-llvm-cov diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 630d92c6..de035422 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -55,7 +55,7 @@ jobs: toolchain: nightly-2023-10-10 - name: Install just - uses: taiki-e/install-action@v2.34.1 + uses: taiki-e/install-action@v2.38.1 with: tool: just From aefa8104964be492f73c539f51fa300179111665 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 10 Jun 2024 20:36:09 +0100 Subject: [PATCH 188/410] build(deps): bump actions-rust-lang/setup-rust-toolchain (#571) Bumps [actions-rust-lang/setup-rust-toolchain](https://github.com/actions-rust-lang/setup-rust-toolchain) from 1.8.0 to 1.9.0. - [Release notes](https://github.com/actions-rust-lang/setup-rust-toolchain/releases) - [Changelog](https://github.com/actions-rust-lang/setup-rust-toolchain/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions-rust-lang/setup-rust-toolchain/compare/v1.8.0...v1.9.0) --- updated-dependencies: - dependency-name: actions-rust-lang/setup-rust-toolchain 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 | 6 +++--- .github/workflows/ci.yml | 4 ++-- .github/workflows/coverage.yml | 2 +- .github/workflows/lint.yml | 6 +++--- .github/workflows/upload-doc.yml | 2 +- 5 files changed, 10 insertions(+), 10 deletions(-) diff --git a/.github/workflows/ci-post-merge.yml b/.github/workflows/ci-post-merge.yml index 88f09cae..f8c59957 100644 --- a/.github/workflows/ci-post-merge.yml +++ b/.github/workflows/ci-post-merge.yml @@ -59,7 +59,7 @@ jobs: echo "RUSTFLAGS=-C target-feature=+crt-static" >> $GITHUB_ENV - name: Install Rust (${{ matrix.version }}) - uses: actions-rust-lang/setup-rust-toolchain@v1.8.0 + uses: actions-rust-lang/setup-rust-toolchain@v1.9.0 with: toolchain: ${{ matrix.version }} @@ -116,7 +116,7 @@ jobs: - uses: actions/checkout@v4 - name: Install Rust (nightly) - uses: actions-rust-lang/setup-rust-toolchain@v1.8.0 + uses: actions-rust-lang/setup-rust-toolchain@v1.9.0 with: toolchain: nightly @@ -135,7 +135,7 @@ jobs: - uses: actions/checkout@v4 - name: Install Rust - uses: actions-rust-lang/setup-rust-toolchain@v1.8.0 + uses: actions-rust-lang/setup-rust-toolchain@v1.9.0 - name: Install cargo-nextest uses: taiki-e/install-action@v2.38.1 diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 498bed05..a21c73af 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -68,7 +68,7 @@ jobs: echo "RUSTFLAGS=-C target-feature=+crt-static" >> $GITHUB_ENV - name: Install Rust (${{ matrix.version.name }}) - uses: actions-rust-lang/setup-rust-toolchain@v1.8.0 + uses: actions-rust-lang/setup-rust-toolchain@v1.9.0 with: toolchain: ${{ matrix.version.version }} @@ -120,7 +120,7 @@ jobs: - uses: actions/checkout@v4 - name: Install Rust (nightly) - uses: actions-rust-lang/setup-rust-toolchain@v1.8.0 + uses: actions-rust-lang/setup-rust-toolchain@v1.9.0 with: toolchain: nightly diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml index 4833208c..f8352649 100644 --- a/.github/workflows/coverage.yml +++ b/.github/workflows/coverage.yml @@ -18,7 +18,7 @@ jobs: - uses: actions/checkout@v4 - name: Install Rust - uses: actions-rust-lang/setup-rust-toolchain@v1.8.0 + uses: actions-rust-lang/setup-rust-toolchain@v1.9.0 with: components: llvm-tools-preview diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index de035422..8531177b 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -18,7 +18,7 @@ jobs: steps: - uses: actions/checkout@v4 - - uses: actions-rust-lang/setup-rust-toolchain@v1.8.0 + - uses: actions-rust-lang/setup-rust-toolchain@v1.9.0 with: toolchain: nightly components: rustfmt @@ -35,7 +35,7 @@ jobs: steps: - uses: actions/checkout@v4 - - uses: actions-rust-lang/setup-rust-toolchain@v1.8.0 + - uses: actions-rust-lang/setup-rust-toolchain@v1.9.0 with: { components: clippy } - uses: giraffate/clippy-action@v1.0.1 @@ -50,7 +50,7 @@ jobs: - uses: actions/checkout@v4 - name: Install Rust (nightly-2023-10-10) - uses: actions-rust-lang/setup-rust-toolchain@v1.8.0 + uses: actions-rust-lang/setup-rust-toolchain@v1.9.0 with: toolchain: nightly-2023-10-10 diff --git a/.github/workflows/upload-doc.yml b/.github/workflows/upload-doc.yml index 60ddab09..894a3492 100644 --- a/.github/workflows/upload-doc.yml +++ b/.github/workflows/upload-doc.yml @@ -20,7 +20,7 @@ jobs: steps: - uses: actions/checkout@v4 - - uses: actions-rust-lang/setup-rust-toolchain@v1.8.0 + - uses: actions-rust-lang/setup-rust-toolchain@v1.9.0 with: { toolchain: nightly } - name: Build Docs From 912daa3d0aeb2bc09889a6d200ccef839ad6764a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 10 Jun 2024 20:36:41 +0100 Subject: [PATCH 189/410] build(deps): bump taiki-e/cache-cargo-install-action from 2.0.0 to 2.0.1 (#570) Bumps [taiki-e/cache-cargo-install-action](https://github.com/taiki-e/cache-cargo-install-action) from 2.0.0 to 2.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/v2.0.0...v2.0.1) --- updated-dependencies: - dependency-name: taiki-e/cache-cargo-install-action 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 8531177b..03c41e78 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -60,7 +60,7 @@ jobs: tool: just - name: Install cargo-check-external-types - uses: taiki-e/cache-cargo-install-action@v2.0.0 + uses: taiki-e/cache-cargo-install-action@v2.0.1 with: tool: cargo-check-external-types@0.1.10 From 46cc62c6d89c4502c887ac9ba51dd3dfea55fed3 Mon Sep 17 00:00:00 2001 From: Jiri Andras <51321834+oliverjantar@users.noreply.github.com> Date: Fri, 14 Jun 2024 19:11:32 +0200 Subject: [PATCH 190/410] Fix logging "starting service:..." (#573) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Jiří Andras --- actix-server/src/server.rs | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/actix-server/src/server.rs b/actix-server/src/server.rs index 7e092e2b..db7d67fd 100644 --- a/actix-server/src/server.rs +++ b/actix-server/src/server.rs @@ -183,11 +183,6 @@ impl ServerInner { } fn run_sync(mut builder: ServerBuilder) -> io::Result<(Self, ServerEventMultiplexer)> { - let sockets = mem::take(&mut builder.sockets) - .into_iter() - .map(|t| (t.0, t.2)) - .collect(); - // Give log information on what runtime will be used. let is_actix = actix_rt::System::try_current().is_some(); let is_tokio = tokio::runtime::Handle::try_current().is_ok(); @@ -207,6 +202,11 @@ impl ServerInner { ); } + let sockets = mem::take(&mut builder.sockets) + .into_iter() + .map(|t| (t.0, t.2)) + .collect(); + let (waker_queue, worker_handles, accept_handle) = Accept::start(sockets, &builder)?; let mux = ServerEventMultiplexer { From b0d1c8d1936918f40bccf27e28ae1fae2004a282 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 17 Jun 2024 21:52:48 +0100 Subject: [PATCH 191/410] build(deps): bump codecov/codecov-action from 4.4.1 to 4.5.0 (#575) Bumps [codecov/codecov-action](https://github.com/codecov/codecov-action) from 4.4.1 to 4.5.0. - [Release notes](https://github.com/codecov/codecov-action/releases) - [Changelog](https://github.com/codecov/codecov-action/blob/main/CHANGELOG.md) - [Commits](https://github.com/codecov/codecov-action/compare/v4.4.1...v4.5.0) --- updated-dependencies: - dependency-name: codecov/codecov-action 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/coverage.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml index f8352649..a1f982d2 100644 --- a/.github/workflows/coverage.yml +++ b/.github/workflows/coverage.yml @@ -31,7 +31,7 @@ jobs: run: cargo llvm-cov --workspace --all-features --codecov --output-path codecov.json - name: Upload coverage to Codecov - uses: codecov/codecov-action@v4.4.1 + uses: codecov/codecov-action@v4.5.0 with: files: codecov.json fail_ci_if_error: true From 64fa2f846228819fd8c5efd1e30fa62af81f1f27 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 17 Jun 2024 21:52:59 +0100 Subject: [PATCH 192/410] build(deps): bump taiki-e/install-action from 2.38.1 to 2.39.1 (#574) Bumps [taiki-e/install-action](https://github.com/taiki-e/install-action) from 2.38.1 to 2.39.1. - [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.38.1...v2.39.1) --- updated-dependencies: - dependency-name: taiki-e/install-action 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 | 6 +++--- .github/workflows/ci.yml | 4 ++-- .github/workflows/coverage.yml | 2 +- .github/workflows/lint.yml | 2 +- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/.github/workflows/ci-post-merge.yml b/.github/workflows/ci-post-merge.yml index f8c59957..c5f4715e 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.38.1 + uses: taiki-e/install-action@v2.39.1 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.38.1 + uses: taiki-e/install-action@v2.39.1 with: tool: cargo-hack,cargo-minimal-versions @@ -138,7 +138,7 @@ jobs: uses: actions-rust-lang/setup-rust-toolchain@v1.9.0 - name: Install cargo-nextest - uses: taiki-e/install-action@v2.38.1 + uses: taiki-e/install-action@v2.39.1 with: tool: cargo-nextest diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index a21c73af..e92e103e 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.38.1 + uses: taiki-e/install-action@v2.39.1 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.38.1 + uses: taiki-e/install-action@v2.39.1 with: tool: just diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml index a1f982d2..3d759daa 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.38.1 + uses: taiki-e/install-action@v2.39.1 with: tool: cargo-llvm-cov diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 03c41e78..8e9d75fe 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -55,7 +55,7 @@ jobs: toolchain: nightly-2023-10-10 - name: Install just - uses: taiki-e/install-action@v2.38.1 + uses: taiki-e/install-action@v2.39.1 with: tool: just From 0030800b9afda04fd0a1ea0511183415b4780900 Mon Sep 17 00:00:00 2001 From: Rob Ede Date: Thu, 20 Jun 2024 01:22:33 +0100 Subject: [PATCH 193/410] chore: update mio dependency to v1 (#577) --- actix-server/Cargo.toml | 2 +- actix-server/src/socket.rs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/actix-server/Cargo.toml b/actix-server/Cargo.toml index f0658542..931987cf 100644 --- a/actix-server/Cargo.toml +++ b/actix-server/Cargo.toml @@ -31,7 +31,7 @@ actix-utils = "3" futures-core = { version = "0.3.17", default-features = false, features = ["alloc"] } futures-util = { version = "0.3.17", default-features = false, features = ["alloc"] } -mio = { version = "0.8", features = ["os-poll", "net"] } +mio = { version = "1", features = ["os-poll", "net"] } socket2 = "0.5" tokio = { version = "1.23.1", features = ["sync"] } tracing = { version = "0.1.30", default-features = false, features = ["log"] } diff --git a/actix-server/src/socket.rs b/actix-server/src/socket.rs index 486c0d46..a39e4c49 100644 --- a/actix-server/src/socket.rs +++ b/actix-server/src/socket.rs @@ -126,7 +126,7 @@ pub(crate) enum SocketAddr { Unknown, Tcp(StdSocketAddr), #[cfg(unix)] - Uds(mio::net::SocketAddr), + Uds(std::os::unix::net::SocketAddr), } impl fmt::Display for SocketAddr { From d482af529ca337981ff5b3f47d5eeb110ec419e7 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 25 Jun 2024 17:32:28 +0100 Subject: [PATCH 194/410] build(deps): bump taiki-e/install-action from 2.39.1 to 2.41.3 (#578) Bumps [taiki-e/install-action](https://github.com/taiki-e/install-action) from 2.39.1 to 2.41.3. - [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.39.1...v2.41.3) --- updated-dependencies: - dependency-name: taiki-e/install-action 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 | 6 +++--- .github/workflows/ci.yml | 4 ++-- .github/workflows/coverage.yml | 2 +- .github/workflows/lint.yml | 2 +- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/.github/workflows/ci-post-merge.yml b/.github/workflows/ci-post-merge.yml index c5f4715e..6a4fb63b 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.39.1 + uses: taiki-e/install-action@v2.41.3 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.39.1 + uses: taiki-e/install-action@v2.41.3 with: tool: cargo-hack,cargo-minimal-versions @@ -138,7 +138,7 @@ jobs: uses: actions-rust-lang/setup-rust-toolchain@v1.9.0 - name: Install cargo-nextest - uses: taiki-e/install-action@v2.39.1 + uses: taiki-e/install-action@v2.41.3 with: tool: cargo-nextest diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index e92e103e..25cd150b 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.39.1 + uses: taiki-e/install-action@v2.41.3 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.39.1 + uses: taiki-e/install-action@v2.41.3 with: tool: just diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml index 3d759daa..9b1fa408 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.39.1 + uses: taiki-e/install-action@v2.41.3 with: tool: cargo-llvm-cov diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 8e9d75fe..eb5f7932 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -55,7 +55,7 @@ jobs: toolchain: nightly-2023-10-10 - name: Install just - uses: taiki-e/install-action@v2.39.1 + uses: taiki-e/install-action@v2.41.3 with: tool: just From 544e5d3b4015d0feee5b626ef4b74ea7f78192ff Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 2 Jul 2024 02:08:35 +0100 Subject: [PATCH 195/410] build(deps): bump taiki-e/install-action from 2.41.3 to 2.41.7 (#579) Bumps [taiki-e/install-action](https://github.com/taiki-e/install-action) from 2.41.3 to 2.41.7. - [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.41.3...v2.41.7) --- updated-dependencies: - dependency-name: taiki-e/install-action 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/ci-post-merge.yml | 6 +++--- .github/workflows/ci.yml | 4 ++-- .github/workflows/coverage.yml | 2 +- .github/workflows/lint.yml | 2 +- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/.github/workflows/ci-post-merge.yml b/.github/workflows/ci-post-merge.yml index 6a4fb63b..60adf431 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.41.3 + uses: taiki-e/install-action@v2.41.7 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.41.3 + uses: taiki-e/install-action@v2.41.7 with: tool: cargo-hack,cargo-minimal-versions @@ -138,7 +138,7 @@ jobs: uses: actions-rust-lang/setup-rust-toolchain@v1.9.0 - name: Install cargo-nextest - uses: taiki-e/install-action@v2.41.3 + uses: taiki-e/install-action@v2.41.7 with: tool: cargo-nextest diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 25cd150b..33b0ea5a 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.41.3 + uses: taiki-e/install-action@v2.41.7 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.41.3 + uses: taiki-e/install-action@v2.41.7 with: tool: just diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml index 9b1fa408..8c2813b2 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.41.3 + uses: taiki-e/install-action@v2.41.7 with: tool: cargo-llvm-cov diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index eb5f7932..4601a836 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -55,7 +55,7 @@ jobs: toolchain: nightly-2023-10-10 - name: Install just - uses: taiki-e/install-action@v2.41.3 + uses: taiki-e/install-action@v2.41.7 with: tool: just From 20149f957b26f6fd946a0291db7a39b65c7d91f6 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 8 Jul 2024 22:40:25 +0100 Subject: [PATCH 196/410] build(deps): bump JamesIves/github-pages-deploy-action (#581) Bumps [JamesIves/github-pages-deploy-action](https://github.com/jamesives/github-pages-deploy-action) from 4.6.1 to 4.6.3. - [Release notes](https://github.com/jamesives/github-pages-deploy-action/releases) - [Commits](https://github.com/jamesives/github-pages-deploy-action/compare/v4.6.1...v4.6.3) --- updated-dependencies: - dependency-name: JamesIves/github-pages-deploy-action 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/upload-doc.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/upload-doc.yml b/.github/workflows/upload-doc.yml index 894a3492..7fc39061 100644 --- a/.github/workflows/upload-doc.yml +++ b/.github/workflows/upload-doc.yml @@ -30,7 +30,7 @@ jobs: run: echo '' > target/doc/index.html - name: Deploy to GitHub Pages - uses: JamesIves/github-pages-deploy-action@v4.6.1 + uses: JamesIves/github-pages-deploy-action@v4.6.3 with: folder: target/doc single-commit: true From 939377f6ab0bc98a37bc1475cfdc6e4064f2438b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 8 Jul 2024 22:40:27 +0100 Subject: [PATCH 197/410] build(deps): bump taiki-e/install-action from 2.41.7 to 2.41.11 (#582) Bumps [taiki-e/install-action](https://github.com/taiki-e/install-action) from 2.41.7 to 2.41.11. - [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.41.7...v2.41.11) --- updated-dependencies: - dependency-name: taiki-e/install-action 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/ci-post-merge.yml | 6 +++--- .github/workflows/ci.yml | 4 ++-- .github/workflows/coverage.yml | 2 +- .github/workflows/lint.yml | 2 +- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/.github/workflows/ci-post-merge.yml b/.github/workflows/ci-post-merge.yml index 60adf431..6c9d7f54 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.41.7 + uses: taiki-e/install-action@v2.41.11 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.41.7 + uses: taiki-e/install-action@v2.41.11 with: tool: cargo-hack,cargo-minimal-versions @@ -138,7 +138,7 @@ jobs: uses: actions-rust-lang/setup-rust-toolchain@v1.9.0 - name: Install cargo-nextest - uses: taiki-e/install-action@v2.41.7 + uses: taiki-e/install-action@v2.41.11 with: tool: cargo-nextest diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 33b0ea5a..83cedce0 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.41.7 + uses: taiki-e/install-action@v2.41.11 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.41.7 + uses: taiki-e/install-action@v2.41.11 with: tool: just diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml index 8c2813b2..64d05d34 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.41.7 + uses: taiki-e/install-action@v2.41.11 with: tool: cargo-llvm-cov diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 4601a836..348afbe1 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -55,7 +55,7 @@ jobs: toolchain: nightly-2023-10-10 - name: Install just - uses: taiki-e/install-action@v2.41.7 + uses: taiki-e/install-action@v2.41.11 with: tool: just From c45ae294fb03b592e15852e038f1263e893ea9db Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 16 Jul 2024 03:14:15 +0100 Subject: [PATCH 198/410] build(deps): bump taiki-e/install-action from 2.41.11 to 2.42.0 (#583) Bumps [taiki-e/install-action](https://github.com/taiki-e/install-action) from 2.41.11 to 2.42.0. - [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.41.11...v2.42.0) --- updated-dependencies: - dependency-name: taiki-e/install-action 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 | 6 +++--- .github/workflows/ci.yml | 4 ++-- .github/workflows/coverage.yml | 2 +- .github/workflows/lint.yml | 2 +- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/.github/workflows/ci-post-merge.yml b/.github/workflows/ci-post-merge.yml index 6c9d7f54..2d1c7a63 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.41.11 + uses: taiki-e/install-action@v2.42.0 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.41.11 + uses: taiki-e/install-action@v2.42.0 with: tool: cargo-hack,cargo-minimal-versions @@ -138,7 +138,7 @@ jobs: uses: actions-rust-lang/setup-rust-toolchain@v1.9.0 - name: Install cargo-nextest - uses: taiki-e/install-action@v2.41.11 + uses: taiki-e/install-action@v2.42.0 with: tool: cargo-nextest diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 83cedce0..7fa0fcb8 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.41.11 + uses: taiki-e/install-action@v2.42.0 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.41.11 + uses: taiki-e/install-action@v2.42.0 with: tool: just diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml index 64d05d34..299302e9 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.41.11 + uses: taiki-e/install-action@v2.42.0 with: tool: cargo-llvm-cov diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 348afbe1..3eb708b5 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -55,7 +55,7 @@ jobs: toolchain: nightly-2023-10-10 - name: Install just - uses: taiki-e/install-action@v2.41.11 + uses: taiki-e/install-action@v2.42.0 with: tool: just From ace737fc4cacbaacd5104d12731decc5ffb16b52 Mon Sep 17 00:00:00 2001 From: Rob Ede Date: Thu, 20 Jun 2024 01:25:17 +0100 Subject: [PATCH 199/410] chore: overspecified deps --- bytestring/Cargo.toml | 4 ++-- codecov.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/bytestring/Cargo.toml b/bytestring/Cargo.toml index dabfb74d..63472205 100644 --- a/bytestring/Cargo.toml +++ b/bytestring/Cargo.toml @@ -22,9 +22,9 @@ allowed_external_types = [ [dependencies] bytes = { version = "1.2", default-features = false } -serde = { version = "1.0", optional = true } +serde = { version = "1", optional = true } [dev-dependencies] ahash = { version = "0.8", default-features = false } -serde_json = "1.0" +serde_json = "1" static_assertions = "1.1" diff --git a/codecov.yml b/codecov.yml index 10da425c..18ee3b20 100644 --- a/codecov.yml +++ b/codecov.yml @@ -9,7 +9,7 @@ coverage: default: threshold: 10% # make CI green -ignore: # ignore codecoverage on following paths +ignore: # ignore code coverage on following paths - "examples" - ".github" - "**/*.md" From ead0e2b2004ac50ba194b909c97ed8b6feac511c Mon Sep 17 00:00:00 2001 From: Rob Ede Date: Sat, 20 Jul 2024 18:57:00 +0100 Subject: [PATCH 200/410] chore: fix nightly warnings --- actix-service/src/transform.rs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/actix-service/src/transform.rs b/actix-service/src/transform.rs index e29d2b2b..cffa3e61 100644 --- a/actix-service/src/transform.rs +++ b/actix-service/src/transform.rs @@ -228,6 +228,7 @@ mod tests { use super::*; // pseudo-doctest for Transform trait + #[allow(unused)] pub struct TimeoutTransform { timeout: Duration, } @@ -249,6 +250,7 @@ mod tests { } // pseudo-doctest for Transform trait + #[allow(unused)] pub struct Timeout { service: S, _timeout: Duration, From 5c44115978f33144cce6fdea37adb72b7c7addff Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 22 Jul 2024 18:56:19 +0000 Subject: [PATCH 201/410] build(deps): bump taiki-e/install-action from 2.42.0 to 2.42.4 (#585) Bumps [taiki-e/install-action](https://github.com/taiki-e/install-action) from 2.42.0 to 2.42.4. - [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.42.0...v2.42.4) --- updated-dependencies: - dependency-name: taiki-e/install-action 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/ci-post-merge.yml | 6 +++--- .github/workflows/ci.yml | 4 ++-- .github/workflows/coverage.yml | 2 +- .github/workflows/lint.yml | 2 +- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/.github/workflows/ci-post-merge.yml b/.github/workflows/ci-post-merge.yml index 2d1c7a63..7546f59f 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.42.0 + uses: taiki-e/install-action@v2.42.4 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.42.0 + uses: taiki-e/install-action@v2.42.4 with: tool: cargo-hack,cargo-minimal-versions @@ -138,7 +138,7 @@ jobs: uses: actions-rust-lang/setup-rust-toolchain@v1.9.0 - name: Install cargo-nextest - uses: taiki-e/install-action@v2.42.0 + uses: taiki-e/install-action@v2.42.4 with: tool: cargo-nextest diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 7fa0fcb8..fe39e836 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.42.0 + uses: taiki-e/install-action@v2.42.4 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.42.0 + uses: taiki-e/install-action@v2.42.4 with: tool: just diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml index 299302e9..cff2bdea 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.42.0 + uses: taiki-e/install-action@v2.42.4 with: tool: cargo-llvm-cov diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 3eb708b5..aef9be9f 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -55,7 +55,7 @@ jobs: toolchain: nightly-2023-10-10 - name: Install just - uses: taiki-e/install-action@v2.42.0 + uses: taiki-e/install-action@v2.42.4 with: tool: just From e282811d699f3ed0211e367b4f5ffbacdce97ccd Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 22 Jul 2024 19:27:49 +0000 Subject: [PATCH 202/410] build(deps): update rustversion-msrv requirement from 0.99 to 0.100 (#584) --- updated-dependencies: - dependency-name: rustversion-msrv dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- actix-macros/Cargo.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/actix-macros/Cargo.toml b/actix-macros/Cargo.toml index 2f112ed4..bf20ab80 100644 --- a/actix-macros/Cargo.toml +++ b/actix-macros/Cargo.toml @@ -32,5 +32,5 @@ proc-macro2 = "1.0.60" [dev-dependencies] actix-rt = "2" futures-util = { version = "0.3.17", default-features = false } -rustversion-msrv = "0.99" +rustversion-msrv = "0.100" trybuild = "1" From 779fa28bd59c87974d8effceddd59e7505dc97d5 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 29 Jul 2024 20:40:21 +0100 Subject: [PATCH 203/410] build(deps): bump taiki-e/install-action from 2.42.4 to 2.42.10 (#587) Bumps [taiki-e/install-action](https://github.com/taiki-e/install-action) from 2.42.4 to 2.42.10. - [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.42.4...v2.42.10) --- updated-dependencies: - dependency-name: taiki-e/install-action 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/ci-post-merge.yml | 6 +++--- .github/workflows/ci.yml | 4 ++-- .github/workflows/coverage.yml | 2 +- .github/workflows/lint.yml | 2 +- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/.github/workflows/ci-post-merge.yml b/.github/workflows/ci-post-merge.yml index 7546f59f..4749c5e8 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.42.4 + uses: taiki-e/install-action@v2.42.10 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.42.4 + uses: taiki-e/install-action@v2.42.10 with: tool: cargo-hack,cargo-minimal-versions @@ -138,7 +138,7 @@ jobs: uses: actions-rust-lang/setup-rust-toolchain@v1.9.0 - name: Install cargo-nextest - uses: taiki-e/install-action@v2.42.4 + uses: taiki-e/install-action@v2.42.10 with: tool: cargo-nextest diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index fe39e836..e9af0d18 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.42.4 + uses: taiki-e/install-action@v2.42.10 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.42.4 + uses: taiki-e/install-action@v2.42.10 with: tool: just diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml index cff2bdea..9f4ae4ef 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.42.4 + uses: taiki-e/install-action@v2.42.10 with: tool: cargo-llvm-cov diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index aef9be9f..29491fad 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -55,7 +55,7 @@ jobs: toolchain: nightly-2023-10-10 - name: Install just - uses: taiki-e/install-action@v2.42.4 + uses: taiki-e/install-action@v2.42.10 with: tool: just From baf1b6042acc471dcfd714b873f34d06512bd557 Mon Sep 17 00:00:00 2001 From: Rob Ede Date: Sun, 4 Aug 2024 22:34:02 +0100 Subject: [PATCH 204/410] docs(server): update changelog --- actix-server/CHANGES.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/actix-server/CHANGES.md b/actix-server/CHANGES.md index f185bbec..034df0ab 100644 --- a/actix-server/CHANGES.md +++ b/actix-server/CHANGES.md @@ -2,6 +2,8 @@ ## Unreleased +- Update `mio` dependency to `1`. + ## 2.4.0 - Update `tokio-uring` dependency to `0.5`. From 0d8c7e5085c51cee430b91e35a092ae7c74d6931 Mon Sep 17 00:00:00 2001 From: Rob Ede Date: Sun, 4 Aug 2024 22:39:19 +0100 Subject: [PATCH 205/410] build: add nix flake --- .envrc | 1 + .gitignore | 4 ++++ flake.lock | 58 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ flake.nix | 30 ++++++++++++++++++++++++++++ justfile | 28 ++++++++++++++++++-------- 5 files changed, 113 insertions(+), 8 deletions(-) create mode 100644 .envrc create mode 100644 flake.lock create mode 100644 flake.nix diff --git a/.envrc b/.envrc new file mode 100644 index 00000000..3550a30f --- /dev/null +++ b/.envrc @@ -0,0 +1 @@ +use flake diff --git a/.gitignore b/.gitignore index a6909f1f..fb5c32e1 100644 --- a/.gitignore +++ b/.gitignore @@ -13,4 +13,8 @@ guide/build/ # These are backup files generated by rustfmt **/*.rs.bk +# IDEs .idea + +# direnv +/.direnv diff --git a/flake.lock b/flake.lock new file mode 100644 index 00000000..1a6dff87 --- /dev/null +++ b/flake.lock @@ -0,0 +1,58 @@ +{ + "nodes": { + "flake-parts": { + "inputs": { + "nixpkgs-lib": "nixpkgs-lib" + }, + "locked": { + "lastModified": 1715865404, + "narHash": "sha256-/GJvTdTpuDjNn84j82cU6bXztE0MSkdnTWClUCRub78=", + "owner": "hercules-ci", + "repo": "flake-parts", + "rev": "8dc45382d5206bd292f9c2768b8058a8fd8311d9", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "flake-parts", + "type": "github" + } + }, + "nixpkgs": { + "locked": { + "lastModified": 1722651103, + "narHash": "sha256-IRiJA0NVAoyaZeKZluwfb2DoTpBAj+FLI0KfybBeDU0=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "a633d89c6dc9a2a8aae11813a62d7c58b2c0cc51", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-24.05", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs-lib": { + "locked": { + "lastModified": 1714640452, + "narHash": "sha256-QBx10+k6JWz6u7VsohfSw8g8hjdBZEf8CFzXH1/1Z94=", + "type": "tarball", + "url": "https://github.com/NixOS/nixpkgs/archive/50eb7ecf4cd0a5756d7275c8ba36790e5bd53e33.tar.gz" + }, + "original": { + "type": "tarball", + "url": "https://github.com/NixOS/nixpkgs/archive/50eb7ecf4cd0a5756d7275c8ba36790e5bd53e33.tar.gz" + } + }, + "root": { + "inputs": { + "flake-parts": "flake-parts", + "nixpkgs": "nixpkgs" + } + } + }, + "root": "root", + "version": 7 +} diff --git a/flake.nix b/flake.nix new file mode 100644 index 00000000..1a53656e --- /dev/null +++ b/flake.nix @@ -0,0 +1,30 @@ +{ + inputs = { + nixpkgs.url = "github:NixOS/nixpkgs/nixos-24.05"; + flake-parts.url = "github:hercules-ci/flake-parts"; + }; + + outputs = inputs@{ flake-parts, ... }: + flake-parts.lib.mkFlake { inherit inputs; } { + systems = [ "x86_64-linux" "aarch64-linux" "x86_64-darwin" "aarch64-darwin" ]; + perSystem = { pkgs, config, inputs', system, lib, ... }: { + formatter = pkgs.nixpkgs-fmt; + + devShells.default = pkgs.mkShell { + packages = [ + config.formatter + pkgs.fd + pkgs.just + pkgs.nodePackages.prettier + pkgs.taplo + pkgs.watchexec + ] ++ lib.optional pkgs.stdenv.isDarwin [ + pkgs.pkgsBuildHost.darwin.apple_sdk.frameworks.Security + pkgs.pkgsBuildHost.darwin.apple_sdk.frameworks.CoreFoundation + pkgs.pkgsBuildHost.darwin.apple_sdk.frameworks.SystemConfiguration + pkgs.pkgsBuildHost.libiconv + ]; + }; + }; + }; +} diff --git a/justfile b/justfile index e7a7978a..9e92635a 100644 --- a/justfile +++ b/justfile @@ -1,6 +1,23 @@ _list: @just --list +# Check project. +check: && clippy + just --unstable --fmt --check + # nixpkgs-fmt --check . + fd --hidden --type=file -e=md -e=yml --exec-batch prettier --check + fd --hidden -e=toml --exec-batch taplo format --check + fd --hidden -e=toml --exec-batch taplo lint + cargo +nightly fmt -- --check + +# Format project. +fmt: + just --unstable --fmt + # nixpkgs-fmt . + fd --hidden --type=file -e=md -e=yml --exec-batch prettier --write + fd --type=file --hidden -e=toml --exec-batch taplo format + cargo +nightly fmt + # Downgrade dev-dependencies necessary to run MSRV checks/tests. [private] downgrade-for-msrv: @@ -12,7 +29,6 @@ msrv := ``` | sed -E 's/^1\.([0-9]{2})$/1\.\1\.0/' ``` msrv_rustup := "+" + msrv - non_linux_all_features_list := ``` cargo metadata --format-version=1 \ | jq '.packages[] | select(.source == null) | .features | keys' \ @@ -20,19 +36,15 @@ non_linux_all_features_list := ``` --arg exclusions "tokio-uring,io-uring" \ 'add | unique | . - ($exclusions | split(",")) | join(",")' ``` - -all_crate_features := if os() == "linux" { - "--all-features" -} else { - "--features='" + non_linux_all_features_list + "'" -} +all_crate_features := if os() == "linux" { "--all-features" } else { "--features='" + non_linux_all_features_list + "'" } # Run Clippy over workspace. clippy toolchain="": cargo {{ toolchain }} clippy --workspace --all-targets {{ all_crate_features }} # Test workspace code. -[macos, windows] +[macos] +[windows] test toolchain="": cargo {{ toolchain }} test --lib --tests --package=actix-macros cargo {{ toolchain }} nextest run --workspace --exclude=actix-macros --no-default-features From 97e8c571cf034b5d441d3ceca02cfb8f785fce7b Mon Sep 17 00:00:00 2001 From: Rob Ede Date: Sun, 4 Aug 2024 22:41:04 +0100 Subject: [PATCH 206/410] chore(actix-server): prepare release 2.5.0 closes #586 --- actix-server/CHANGES.md | 2 ++ actix-server/Cargo.toml | 2 +- actix-server/README.md | 4 ++-- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/actix-server/CHANGES.md b/actix-server/CHANGES.md index 034df0ab..50a11ba7 100644 --- a/actix-server/CHANGES.md +++ b/actix-server/CHANGES.md @@ -2,6 +2,8 @@ ## Unreleased +## 2.5.0 + - Update `mio` dependency to `1`. ## 2.4.0 diff --git a/actix-server/Cargo.toml b/actix-server/Cargo.toml index 931987cf..a1eecdd3 100644 --- a/actix-server/Cargo.toml +++ b/actix-server/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "actix-server" -version = "2.4.0" +version = "2.5.0" authors = [ "Nikolay Kim ", "Rob Ede ", diff --git a/actix-server/README.md b/actix-server/README.md index a9c766ba..a73874f8 100644 --- a/actix-server/README.md +++ b/actix-server/README.md @@ -5,11 +5,11 @@ [![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.4.0)](https://docs.rs/actix-server/2.4.0) +[![Documentation](https://docs.rs/actix-server/badge.svg?version=2.5.0)](https://docs.rs/actix-server/2.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) ![MIT or Apache 2.0 licensed](https://img.shields.io/crates/l/actix-server.svg)
-[![Dependency Status](https://deps.rs/crate/actix-server/2.4.0/status.svg)](https://deps.rs/crate/actix-server/2.4.0) +[![Dependency Status](https://deps.rs/crate/actix-server/2.5.0/status.svg)](https://deps.rs/crate/actix-server/2.5.0) ![Download](https://img.shields.io/crates/d/actix-server.svg) [![Chat on Discord](https://img.shields.io/discord/771444961383153695?label=chat&logo=discord)](https://discord.gg/NWpN5mmg3x) From aad3a48edd8097604027f4bac6075d09044609da Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 5 Aug 2024 23:52:43 +0100 Subject: [PATCH 207/410] build(deps): bump taiki-e/install-action from 2.42.10 to 2.42.18 (#589) Bumps [taiki-e/install-action](https://github.com/taiki-e/install-action) from 2.42.10 to 2.42.18. - [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.42.10...v2.42.18) --- updated-dependencies: - dependency-name: taiki-e/install-action 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/ci-post-merge.yml | 6 +++--- .github/workflows/ci.yml | 4 ++-- .github/workflows/coverage.yml | 2 +- .github/workflows/lint.yml | 2 +- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/.github/workflows/ci-post-merge.yml b/.github/workflows/ci-post-merge.yml index 4749c5e8..a05eb23d 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.42.10 + uses: taiki-e/install-action@v2.42.18 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.42.10 + uses: taiki-e/install-action@v2.42.18 with: tool: cargo-hack,cargo-minimal-versions @@ -138,7 +138,7 @@ jobs: uses: actions-rust-lang/setup-rust-toolchain@v1.9.0 - name: Install cargo-nextest - uses: taiki-e/install-action@v2.42.10 + uses: taiki-e/install-action@v2.42.18 with: tool: cargo-nextest diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index e9af0d18..2829553d 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.42.10 + uses: taiki-e/install-action@v2.42.18 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.42.10 + uses: taiki-e/install-action@v2.42.18 with: tool: just diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml index 9f4ae4ef..47c48a9f 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.42.10 + uses: taiki-e/install-action@v2.42.18 with: tool: cargo-llvm-cov diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 29491fad..7f1148e1 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -55,7 +55,7 @@ jobs: toolchain: nightly-2023-10-10 - name: Install just - uses: taiki-e/install-action@v2.42.10 + uses: taiki-e/install-action@v2.42.18 with: tool: just From 77588aba810aeef71c8159520684308f0b39c19a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 6 Aug 2024 23:54:18 +0000 Subject: [PATCH 208/410] build(deps): update rcgen requirement from 0.12 to 0.13 (#590) * build(deps): update rcgen requirement from 0.12 to 0.13 Updates the requirements on [rcgen](https://github.com/rustls/rcgen) to permit the latest version. - [Commits](https://github.com/rustls/rcgen/compare/v0.12.0...v0.13.1) --- updated-dependencies: - dependency-name: rcgen dependency-type: direct:production ... Signed-off-by: dependabot[bot] * chore: fix rcgen tests --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Rob Ede --- actix-tls/Cargo.toml | 2 +- actix-tls/tests/accept-openssl.rs | 6 +++--- actix-tls/tests/accept-rustls.rs | 6 +++--- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/actix-tls/Cargo.toml b/actix-tls/Cargo.toml index cb90fb7f..7d4cf563 100644 --- a/actix-tls/Cargo.toml +++ b/actix-tls/Cargo.toml @@ -131,7 +131,7 @@ bytes = "1" pretty_env_logger = "0.5" futures-util = { version = "0.3.17", default-features = false, features = ["sink"] } itertools = "0.13" -rcgen = "0.12" +rcgen = "0.13" rustls-pemfile = "2" tokio-rustls-026 = { package = "tokio-rustls", version = "0.26" } trust-dns-resolver = "0.23" diff --git a/actix-tls/tests/accept-openssl.rs b/actix-tls/tests/accept-openssl.rs index 217e8e5d..41fb1d7b 100644 --- a/actix-tls/tests/accept-openssl.rs +++ b/actix-tls/tests/accept-openssl.rs @@ -21,12 +21,12 @@ use rustls_pki_types_1::ServerName; use tokio_rustls_026::rustls::RootCertStore; fn new_cert_and_key() -> (String, String) { - let cert = + let rcgen::CertifiedKey { cert, key_pair } = rcgen::generate_simple_self_signed(vec!["127.0.0.1".to_owned(), "localhost".to_owned()]) .unwrap(); - let key = cert.serialize_private_key_pem(); - let cert = cert.serialize_pem().unwrap(); + let key = key_pair.serialize_pem(); + let cert = cert.pem(); (cert, key) } diff --git a/actix-tls/tests/accept-rustls.rs b/actix-tls/tests/accept-rustls.rs index bc29971c..f31606e7 100644 --- a/actix-tls/tests/accept-rustls.rs +++ b/actix-tls/tests/accept-rustls.rs @@ -24,12 +24,12 @@ use rustls_pki_types_1::PrivateKeyDer; use tls_openssl::ssl::SslVerifyMode; fn new_cert_and_key() -> (String, String) { - let cert = + let rcgen::CertifiedKey { cert, key_pair } = rcgen::generate_simple_self_signed(vec!["127.0.0.1".to_owned(), "localhost".to_owned()]) .unwrap(); - let key = cert.serialize_private_key_pem(); - let cert = cert.serialize_pem().unwrap(); + let key = key_pair.serialize_pem(); + let cert = cert.pem(); (cert, key) } From b1cbacc7f641ba908dfe12ec9da5dbede1aadc90 Mon Sep 17 00:00:00 2001 From: ahbkc <34927942+ahbkc@users.noreply.github.com> Date: Tue, 3 Sep 2024 12:15:24 +0800 Subject: [PATCH 209/410] fix actix-service/src/ext.rs 'fist' to 'first' (#596) Co-authored-by: yinqilei --- actix-service/src/ext.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/actix-service/src/ext.rs b/actix-service/src/ext.rs index f5fe6ed1..5cf612de 100644 --- a/actix-service/src/ext.rs +++ b/actix-service/src/ext.rs @@ -44,7 +44,7 @@ pub trait ServiceExt: Service { /// Call another service after call to this one has resolved successfully. /// /// This function can be used to chain two services together and ensure that the second service - /// isn't called until call to the fist service have finished. Result of the call to the first + /// isn't called until call to the first service have finished. Result of the call to the first /// service is used as an input parameter for the second service's call. /// /// Note that this function consumes the receiving service and returns a wrapped version of it. From 4583daa3c24592b8813d1b10eaa0e33ccf2c5fc1 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 3 Sep 2024 05:15:36 +0100 Subject: [PATCH 210/410] build(deps): bump taiki-e/install-action from 2.42.18 to 2.42.37 (#595) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/ci-post-merge.yml | 6 +++--- .github/workflows/ci.yml | 4 ++-- .github/workflows/coverage.yml | 2 +- .github/workflows/lint.yml | 2 +- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/.github/workflows/ci-post-merge.yml b/.github/workflows/ci-post-merge.yml index a05eb23d..86175062 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.42.18 + uses: taiki-e/install-action@v2.42.37 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.42.18 + uses: taiki-e/install-action@v2.42.37 with: tool: cargo-hack,cargo-minimal-versions @@ -138,7 +138,7 @@ jobs: uses: actions-rust-lang/setup-rust-toolchain@v1.9.0 - name: Install cargo-nextest - uses: taiki-e/install-action@v2.42.18 + uses: taiki-e/install-action@v2.42.37 with: tool: cargo-nextest diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 2829553d..34e21ec9 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.42.18 + uses: taiki-e/install-action@v2.42.37 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.42.18 + uses: taiki-e/install-action@v2.42.37 with: tool: just diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml index 47c48a9f..3e4d554a 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.42.18 + uses: taiki-e/install-action@v2.42.37 with: tool: cargo-llvm-cov diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 7f1148e1..943c798b 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -55,7 +55,7 @@ jobs: toolchain: nightly-2023-10-10 - name: Install just - uses: taiki-e/install-action@v2.42.18 + uses: taiki-e/install-action@v2.42.37 with: tool: just From cfae7373143e60a5c038829592ddfc8bd7ea7b23 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 3 Sep 2024 05:15:44 +0100 Subject: [PATCH 211/410] build(deps): bump JamesIves/github-pages-deploy-action (#594) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/upload-doc.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/upload-doc.yml b/.github/workflows/upload-doc.yml index 7fc39061..42149e4f 100644 --- a/.github/workflows/upload-doc.yml +++ b/.github/workflows/upload-doc.yml @@ -30,7 +30,7 @@ jobs: run: echo '' > target/doc/index.html - name: Deploy to GitHub Pages - uses: JamesIves/github-pages-deploy-action@v4.6.3 + uses: JamesIves/github-pages-deploy-action@v4.6.4 with: folder: target/doc single-commit: true From fad1fda194ae7f6f5ccfd464fb751fc319f813bc Mon Sep 17 00:00:00 2001 From: ahbkc <34927942+ahbkc@users.noreply.github.com> Date: Thu, 5 Sep 2024 08:55:49 +0800 Subject: [PATCH 212/410] Fix fist to first (#598) Co-authored-by: yinqilei --- actix-service/src/pipeline.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/actix-service/src/pipeline.rs b/actix-service/src/pipeline.rs index 118f9797..4286e997 100644 --- a/actix-service/src/pipeline.rs +++ b/actix-service/src/pipeline.rs @@ -52,7 +52,7 @@ where /// Call another service after call to this one has resolved successfully. /// /// This function can be used to chain two services together and ensure that - /// the second service isn't called until call to the fist service have + /// the second service isn't called until call to the first service have /// finished. Result of the call to the first service is used as an /// input parameter for the second service's call. /// From 3672137d17e1d05614a8ee8a0a212c465505c750 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 30 Sep 2024 18:43:02 +0100 Subject: [PATCH 213/410] build(deps): bump taiki-e/install-action from 2.42.37 to 2.44.7 (#603) Bumps [taiki-e/install-action](https://github.com/taiki-e/install-action) from 2.42.37 to 2.44.7. - [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.42.37...v2.44.7) --- updated-dependencies: - dependency-name: taiki-e/install-action 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 | 6 +++--- .github/workflows/ci.yml | 4 ++-- .github/workflows/coverage.yml | 2 +- .github/workflows/lint.yml | 2 +- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/.github/workflows/ci-post-merge.yml b/.github/workflows/ci-post-merge.yml index 86175062..d9ee0a43 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.42.37 + uses: taiki-e/install-action@v2.44.7 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.42.37 + uses: taiki-e/install-action@v2.44.7 with: tool: cargo-hack,cargo-minimal-versions @@ -138,7 +138,7 @@ jobs: uses: actions-rust-lang/setup-rust-toolchain@v1.9.0 - name: Install cargo-nextest - uses: taiki-e/install-action@v2.42.37 + uses: taiki-e/install-action@v2.44.7 with: tool: cargo-nextest diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 34e21ec9..ac0b2368 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.42.37 + uses: taiki-e/install-action@v2.44.7 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.42.37 + uses: taiki-e/install-action@v2.44.7 with: tool: just diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml index 3e4d554a..76eafc4b 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.42.37 + uses: taiki-e/install-action@v2.44.7 with: tool: cargo-llvm-cov diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 943c798b..29795316 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -55,7 +55,7 @@ jobs: toolchain: nightly-2023-10-10 - name: Install just - uses: taiki-e/install-action@v2.42.37 + uses: taiki-e/install-action@v2.44.7 with: tool: just From 0681b515dece81ae0c4e1817dacfda5a911f8287 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 30 Sep 2024 18:43:14 +0100 Subject: [PATCH 214/410] build(deps): bump actions-rust-lang/setup-rust-toolchain (#602) Bumps [actions-rust-lang/setup-rust-toolchain](https://github.com/actions-rust-lang/setup-rust-toolchain) from 1.9.0 to 1.10.0. - [Release notes](https://github.com/actions-rust-lang/setup-rust-toolchain/releases) - [Changelog](https://github.com/actions-rust-lang/setup-rust-toolchain/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions-rust-lang/setup-rust-toolchain/compare/v1.9.0...v1.10.0) --- updated-dependencies: - dependency-name: actions-rust-lang/setup-rust-toolchain 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 | 6 +++--- .github/workflows/ci.yml | 4 ++-- .github/workflows/coverage.yml | 2 +- .github/workflows/lint.yml | 6 +++--- .github/workflows/upload-doc.yml | 2 +- 5 files changed, 10 insertions(+), 10 deletions(-) diff --git a/.github/workflows/ci-post-merge.yml b/.github/workflows/ci-post-merge.yml index d9ee0a43..756ed0f5 100644 --- a/.github/workflows/ci-post-merge.yml +++ b/.github/workflows/ci-post-merge.yml @@ -59,7 +59,7 @@ jobs: echo "RUSTFLAGS=-C target-feature=+crt-static" >> $GITHUB_ENV - name: Install Rust (${{ matrix.version }}) - uses: actions-rust-lang/setup-rust-toolchain@v1.9.0 + uses: actions-rust-lang/setup-rust-toolchain@v1.10.0 with: toolchain: ${{ matrix.version }} @@ -116,7 +116,7 @@ jobs: - uses: actions/checkout@v4 - name: Install Rust (nightly) - uses: actions-rust-lang/setup-rust-toolchain@v1.9.0 + uses: actions-rust-lang/setup-rust-toolchain@v1.10.0 with: toolchain: nightly @@ -135,7 +135,7 @@ jobs: - uses: actions/checkout@v4 - name: Install Rust - uses: actions-rust-lang/setup-rust-toolchain@v1.9.0 + uses: actions-rust-lang/setup-rust-toolchain@v1.10.0 - name: Install cargo-nextest uses: taiki-e/install-action@v2.44.7 diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index ac0b2368..52550ece 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -68,7 +68,7 @@ jobs: echo "RUSTFLAGS=-C target-feature=+crt-static" >> $GITHUB_ENV - name: Install Rust (${{ matrix.version.name }}) - uses: actions-rust-lang/setup-rust-toolchain@v1.9.0 + uses: actions-rust-lang/setup-rust-toolchain@v1.10.0 with: toolchain: ${{ matrix.version.version }} @@ -120,7 +120,7 @@ jobs: - uses: actions/checkout@v4 - name: Install Rust (nightly) - uses: actions-rust-lang/setup-rust-toolchain@v1.9.0 + uses: actions-rust-lang/setup-rust-toolchain@v1.10.0 with: toolchain: nightly diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml index 76eafc4b..5f0a04c7 100644 --- a/.github/workflows/coverage.yml +++ b/.github/workflows/coverage.yml @@ -18,7 +18,7 @@ jobs: - uses: actions/checkout@v4 - name: Install Rust - uses: actions-rust-lang/setup-rust-toolchain@v1.9.0 + uses: actions-rust-lang/setup-rust-toolchain@v1.10.0 with: components: llvm-tools-preview diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 29795316..e9034990 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -18,7 +18,7 @@ jobs: steps: - uses: actions/checkout@v4 - - uses: actions-rust-lang/setup-rust-toolchain@v1.9.0 + - uses: actions-rust-lang/setup-rust-toolchain@v1.10.0 with: toolchain: nightly components: rustfmt @@ -35,7 +35,7 @@ jobs: steps: - uses: actions/checkout@v4 - - uses: actions-rust-lang/setup-rust-toolchain@v1.9.0 + - uses: actions-rust-lang/setup-rust-toolchain@v1.10.0 with: { components: clippy } - uses: giraffate/clippy-action@v1.0.1 @@ -50,7 +50,7 @@ jobs: - uses: actions/checkout@v4 - name: Install Rust (nightly-2023-10-10) - uses: actions-rust-lang/setup-rust-toolchain@v1.9.0 + uses: actions-rust-lang/setup-rust-toolchain@v1.10.0 with: toolchain: nightly-2023-10-10 diff --git a/.github/workflows/upload-doc.yml b/.github/workflows/upload-doc.yml index 42149e4f..d746418b 100644 --- a/.github/workflows/upload-doc.yml +++ b/.github/workflows/upload-doc.yml @@ -20,7 +20,7 @@ jobs: steps: - uses: actions/checkout@v4 - - uses: actions-rust-lang/setup-rust-toolchain@v1.9.0 + - uses: actions-rust-lang/setup-rust-toolchain@v1.10.0 with: { toolchain: nightly } - name: Build Docs From af00dada5c2fbbc9be4a8be0c14572d2835476e6 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 1 Oct 2024 00:51:19 +0100 Subject: [PATCH 215/410] build(deps): bump taiki-e/install-action from 2.44.7 to 2.44.13 (#605) Bumps [taiki-e/install-action](https://github.com/taiki-e/install-action) from 2.44.7 to 2.44.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.44.7...v2.44.13) --- updated-dependencies: - dependency-name: taiki-e/install-action 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/ci-post-merge.yml | 6 +++--- .github/workflows/ci.yml | 4 ++-- .github/workflows/coverage.yml | 2 +- .github/workflows/lint.yml | 2 +- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/.github/workflows/ci-post-merge.yml b/.github/workflows/ci-post-merge.yml index 756ed0f5..f32c1b61 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.44.7 + uses: taiki-e/install-action@v2.44.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.44.7 + uses: taiki-e/install-action@v2.44.13 with: tool: cargo-hack,cargo-minimal-versions @@ -138,7 +138,7 @@ jobs: uses: actions-rust-lang/setup-rust-toolchain@v1.10.0 - name: Install cargo-nextest - uses: taiki-e/install-action@v2.44.7 + uses: taiki-e/install-action@v2.44.13 with: tool: cargo-nextest diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 52550ece..9bb18dcf 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.44.7 + uses: taiki-e/install-action@v2.44.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.44.7 + uses: taiki-e/install-action@v2.44.13 with: tool: just diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml index 5f0a04c7..2f93d655 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.44.7 + uses: taiki-e/install-action@v2.44.13 with: tool: cargo-llvm-cov diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index e9034990..cbe24892 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -55,7 +55,7 @@ jobs: toolchain: nightly-2023-10-10 - name: Install just - uses: taiki-e/install-action@v2.44.7 + uses: taiki-e/install-action@v2.44.13 with: tool: just From 83e896a6e5db4cc14ae4b24de6aa190e6c8e645a Mon Sep 17 00:00:00 2001 From: Rob Ede Date: Tue, 1 Oct 2024 04:38:34 +0100 Subject: [PATCH 216/410] ci: remove upload doc job --- .github/workflows/ci-post-merge.yml | 2 +- .github/workflows/upload-doc.yml | 36 ----------------------------- 2 files changed, 1 insertion(+), 37 deletions(-) delete mode 100644 .github/workflows/upload-doc.yml diff --git a/.github/workflows/ci-post-merge.yml b/.github/workflows/ci-post-merge.yml index f32c1b61..e9dbf3aa 100644 --- a/.github/workflows/ci-post-merge.yml +++ b/.github/workflows/ci-post-merge.yml @@ -1,4 +1,4 @@ -name: CI (master only) +name: CI (post-merge) on: push: diff --git a/.github/workflows/upload-doc.yml b/.github/workflows/upload-doc.yml deleted file mode 100644 index d746418b..00000000 --- a/.github/workflows/upload-doc.yml +++ /dev/null @@ -1,36 +0,0 @@ -name: Upload documentation - -on: - push: { branches: [master] } - -permissions: - contents: write - -concurrency: - group: ${{ github.workflow }}-${{ github.ref }} - cancel-in-progress: true - -jobs: - build: - permissions: - contents: write - - runs-on: ubuntu-latest - - steps: - - uses: actions/checkout@v4 - - - uses: actions-rust-lang/setup-rust-toolchain@v1.10.0 - with: { toolchain: nightly } - - - name: Build Docs - run: cargo doc --workspace --all-features --no-deps - - - name: Tweak HTML - run: echo '' > target/doc/index.html - - - name: Deploy to GitHub Pages - uses: JamesIves/github-pages-deploy-action@v4.6.4 - with: - folder: target/doc - single-commit: true From e8871d0d06723ee3a04376fa4c2acad7c35f4701 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 7 Oct 2024 19:47:43 +0100 Subject: [PATCH 217/410] build(deps): bump codecov/codecov-action from 4.5.0 to 4.6.0 (#608) Bumps [codecov/codecov-action](https://github.com/codecov/codecov-action) from 4.5.0 to 4.6.0. - [Release notes](https://github.com/codecov/codecov-action/releases) - [Changelog](https://github.com/codecov/codecov-action/blob/main/CHANGELOG.md) - [Commits](https://github.com/codecov/codecov-action/compare/v4.5.0...v4.6.0) --- updated-dependencies: - dependency-name: codecov/codecov-action 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/coverage.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml index 2f93d655..c1468208 100644 --- a/.github/workflows/coverage.yml +++ b/.github/workflows/coverage.yml @@ -31,7 +31,7 @@ jobs: run: cargo llvm-cov --workspace --all-features --codecov --output-path codecov.json - name: Upload coverage to Codecov - uses: codecov/codecov-action@v4.5.0 + uses: codecov/codecov-action@v4.6.0 with: files: codecov.json fail_ci_if_error: true From 57485f1a21c6c5cee66582c43464d6c106921cc1 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 7 Oct 2024 19:47:49 +0100 Subject: [PATCH 218/410] build(deps): bump taiki-e/install-action from 2.44.13 to 2.44.26 (#607) Bumps [taiki-e/install-action](https://github.com/taiki-e/install-action) from 2.44.13 to 2.44.26. - [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.44.13...v2.44.26) --- updated-dependencies: - dependency-name: taiki-e/install-action 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/ci-post-merge.yml | 6 +++--- .github/workflows/ci.yml | 4 ++-- .github/workflows/coverage.yml | 2 +- .github/workflows/lint.yml | 2 +- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/.github/workflows/ci-post-merge.yml b/.github/workflows/ci-post-merge.yml index e9dbf3aa..0dd29a3b 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.44.13 + uses: taiki-e/install-action@v2.44.26 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.44.13 + uses: taiki-e/install-action@v2.44.26 with: tool: cargo-hack,cargo-minimal-versions @@ -138,7 +138,7 @@ jobs: uses: actions-rust-lang/setup-rust-toolchain@v1.10.0 - name: Install cargo-nextest - uses: taiki-e/install-action@v2.44.13 + uses: taiki-e/install-action@v2.44.26 with: tool: cargo-nextest diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 9bb18dcf..21c5d87c 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.44.13 + uses: taiki-e/install-action@v2.44.26 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.44.13 + uses: taiki-e/install-action@v2.44.26 with: tool: just diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml index c1468208..e36620d9 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.44.13 + uses: taiki-e/install-action@v2.44.26 with: tool: cargo-llvm-cov diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index cbe24892..7b45ce71 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -55,7 +55,7 @@ jobs: toolchain: nightly-2023-10-10 - name: Install just - uses: taiki-e/install-action@v2.44.13 + uses: taiki-e/install-action@v2.44.26 with: tool: just From 582edf54440f8364a12ec6a735d0aab243067b13 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 7 Oct 2024 19:48:02 +0100 Subject: [PATCH 219/410] build(deps): bump actions-rust-lang/setup-rust-toolchain (#609) Bumps [actions-rust-lang/setup-rust-toolchain](https://github.com/actions-rust-lang/setup-rust-toolchain) from 1.10.0 to 1.10.1. - [Release notes](https://github.com/actions-rust-lang/setup-rust-toolchain/releases) - [Changelog](https://github.com/actions-rust-lang/setup-rust-toolchain/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions-rust-lang/setup-rust-toolchain/compare/v1.10.0...v1.10.1) --- updated-dependencies: - dependency-name: actions-rust-lang/setup-rust-toolchain 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/ci-post-merge.yml | 6 +++--- .github/workflows/ci.yml | 4 ++-- .github/workflows/coverage.yml | 2 +- .github/workflows/lint.yml | 6 +++--- 4 files changed, 9 insertions(+), 9 deletions(-) diff --git a/.github/workflows/ci-post-merge.yml b/.github/workflows/ci-post-merge.yml index 0dd29a3b..60e58895 100644 --- a/.github/workflows/ci-post-merge.yml +++ b/.github/workflows/ci-post-merge.yml @@ -59,7 +59,7 @@ jobs: echo "RUSTFLAGS=-C target-feature=+crt-static" >> $GITHUB_ENV - name: Install Rust (${{ matrix.version }}) - uses: actions-rust-lang/setup-rust-toolchain@v1.10.0 + uses: actions-rust-lang/setup-rust-toolchain@v1.10.1 with: toolchain: ${{ matrix.version }} @@ -116,7 +116,7 @@ jobs: - uses: actions/checkout@v4 - name: Install Rust (nightly) - uses: actions-rust-lang/setup-rust-toolchain@v1.10.0 + uses: actions-rust-lang/setup-rust-toolchain@v1.10.1 with: toolchain: nightly @@ -135,7 +135,7 @@ jobs: - uses: actions/checkout@v4 - name: Install Rust - uses: actions-rust-lang/setup-rust-toolchain@v1.10.0 + uses: actions-rust-lang/setup-rust-toolchain@v1.10.1 - name: Install cargo-nextest uses: taiki-e/install-action@v2.44.26 diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 21c5d87c..27e71152 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -68,7 +68,7 @@ jobs: echo "RUSTFLAGS=-C target-feature=+crt-static" >> $GITHUB_ENV - name: Install Rust (${{ matrix.version.name }}) - uses: actions-rust-lang/setup-rust-toolchain@v1.10.0 + uses: actions-rust-lang/setup-rust-toolchain@v1.10.1 with: toolchain: ${{ matrix.version.version }} @@ -120,7 +120,7 @@ jobs: - uses: actions/checkout@v4 - name: Install Rust (nightly) - uses: actions-rust-lang/setup-rust-toolchain@v1.10.0 + uses: actions-rust-lang/setup-rust-toolchain@v1.10.1 with: toolchain: nightly diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml index e36620d9..6fa4ce22 100644 --- a/.github/workflows/coverage.yml +++ b/.github/workflows/coverage.yml @@ -18,7 +18,7 @@ jobs: - uses: actions/checkout@v4 - name: Install Rust - uses: actions-rust-lang/setup-rust-toolchain@v1.10.0 + uses: actions-rust-lang/setup-rust-toolchain@v1.10.1 with: components: llvm-tools-preview diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 7b45ce71..0bc5e2a8 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -18,7 +18,7 @@ jobs: steps: - uses: actions/checkout@v4 - - uses: actions-rust-lang/setup-rust-toolchain@v1.10.0 + - uses: actions-rust-lang/setup-rust-toolchain@v1.10.1 with: toolchain: nightly components: rustfmt @@ -35,7 +35,7 @@ jobs: steps: - uses: actions/checkout@v4 - - uses: actions-rust-lang/setup-rust-toolchain@v1.10.0 + - uses: actions-rust-lang/setup-rust-toolchain@v1.10.1 with: { components: clippy } - uses: giraffate/clippy-action@v1.0.1 @@ -50,7 +50,7 @@ jobs: - uses: actions/checkout@v4 - name: Install Rust (nightly-2023-10-10) - uses: actions-rust-lang/setup-rust-toolchain@v1.10.0 + uses: actions-rust-lang/setup-rust-toolchain@v1.10.1 with: toolchain: nightly-2023-10-10 From 7d24196d5c27c1da0cd71a4101b3f8fe8ab67332 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 14 Oct 2024 20:55:07 +0100 Subject: [PATCH 220/410] build(deps): bump taiki-e/install-action from 2.44.26 to 2.44.35 (#610) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/ci-post-merge.yml | 6 +++--- .github/workflows/ci.yml | 4 ++-- .github/workflows/coverage.yml | 2 +- .github/workflows/lint.yml | 2 +- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/.github/workflows/ci-post-merge.yml b/.github/workflows/ci-post-merge.yml index 60e58895..0d9e2b28 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.44.26 + uses: taiki-e/install-action@v2.44.35 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.44.26 + uses: taiki-e/install-action@v2.44.35 with: tool: cargo-hack,cargo-minimal-versions @@ -138,7 +138,7 @@ jobs: uses: actions-rust-lang/setup-rust-toolchain@v1.10.1 - name: Install cargo-nextest - uses: taiki-e/install-action@v2.44.26 + uses: taiki-e/install-action@v2.44.35 with: tool: cargo-nextest diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 27e71152..4f90b7e3 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.44.26 + uses: taiki-e/install-action@v2.44.35 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.44.26 + uses: taiki-e/install-action@v2.44.35 with: tool: just diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml index 6fa4ce22..61d9f425 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.44.26 + uses: taiki-e/install-action@v2.44.35 with: tool: cargo-llvm-cov diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 0bc5e2a8..0017d2bb 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -55,7 +55,7 @@ jobs: toolchain: nightly-2023-10-10 - name: Install just - uses: taiki-e/install-action@v2.44.26 + uses: taiki-e/install-action@v2.44.35 with: tool: just From a4b6943ddc07176ec3a9913e51eafa103688481a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 23 Oct 2024 17:04:33 +0300 Subject: [PATCH 221/410] build(deps): bump taiki-e/install-action from 2.44.35 to 2.44.44 (#611) Bumps [taiki-e/install-action](https://github.com/taiki-e/install-action) from 2.44.35 to 2.44.44. - [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.44.35...v2.44.44) --- updated-dependencies: - dependency-name: taiki-e/install-action 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/ci-post-merge.yml | 6 +++--- .github/workflows/ci.yml | 4 ++-- .github/workflows/coverage.yml | 2 +- .github/workflows/lint.yml | 2 +- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/.github/workflows/ci-post-merge.yml b/.github/workflows/ci-post-merge.yml index 0d9e2b28..6de1c330 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.44.35 + uses: taiki-e/install-action@v2.44.44 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.44.35 + uses: taiki-e/install-action@v2.44.44 with: tool: cargo-hack,cargo-minimal-versions @@ -138,7 +138,7 @@ jobs: uses: actions-rust-lang/setup-rust-toolchain@v1.10.1 - name: Install cargo-nextest - uses: taiki-e/install-action@v2.44.35 + uses: taiki-e/install-action@v2.44.44 with: tool: cargo-nextest diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 4f90b7e3..c5b8592c 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.44.35 + uses: taiki-e/install-action@v2.44.44 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.44.35 + uses: taiki-e/install-action@v2.44.44 with: tool: just diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml index 61d9f425..25a12245 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.44.35 + uses: taiki-e/install-action@v2.44.44 with: tool: cargo-llvm-cov diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 0017d2bb..06c16af4 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -55,7 +55,7 @@ jobs: toolchain: nightly-2023-10-10 - name: Install just - uses: taiki-e/install-action@v2.44.35 + uses: taiki-e/install-action@v2.44.44 with: tool: just From a2517da2251c26b0d79af0de2645c23c087dfa83 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 29 Oct 2024 23:03:00 +0000 Subject: [PATCH 222/410] build(deps): bump taiki-e/install-action from 2.44.44 to 2.44.54 (#612) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/ci-post-merge.yml | 6 +++--- .github/workflows/ci.yml | 4 ++-- .github/workflows/coverage.yml | 2 +- .github/workflows/lint.yml | 2 +- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/.github/workflows/ci-post-merge.yml b/.github/workflows/ci-post-merge.yml index 6de1c330..9cdcacb2 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.44.44 + uses: taiki-e/install-action@v2.44.54 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.44.44 + uses: taiki-e/install-action@v2.44.54 with: tool: cargo-hack,cargo-minimal-versions @@ -138,7 +138,7 @@ jobs: uses: actions-rust-lang/setup-rust-toolchain@v1.10.1 - name: Install cargo-nextest - uses: taiki-e/install-action@v2.44.44 + uses: taiki-e/install-action@v2.44.54 with: tool: cargo-nextest diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index c5b8592c..eed37eed 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.44.44 + uses: taiki-e/install-action@v2.44.54 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.44.44 + uses: taiki-e/install-action@v2.44.54 with: tool: just diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml index 25a12245..f2681d7c 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.44.44 + uses: taiki-e/install-action@v2.44.54 with: tool: cargo-llvm-cov diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 06c16af4..9aa2a30f 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -55,7 +55,7 @@ jobs: toolchain: nightly-2023-10-10 - name: Install just - uses: taiki-e/install-action@v2.44.44 + uses: taiki-e/install-action@v2.44.54 with: tool: just From 8084cec7057f65daeed1a0349be29e5df5d37ba1 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 4 Nov 2024 21:48:44 +0000 Subject: [PATCH 223/410] build(deps): bump taiki-e/install-action from 2.44.54 to 2.44.60 (#613) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/ci-post-merge.yml | 6 +++--- .github/workflows/ci.yml | 4 ++-- .github/workflows/coverage.yml | 2 +- .github/workflows/lint.yml | 2 +- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/.github/workflows/ci-post-merge.yml b/.github/workflows/ci-post-merge.yml index 9cdcacb2..a36f08d8 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.44.54 + uses: taiki-e/install-action@v2.44.60 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.44.54 + uses: taiki-e/install-action@v2.44.60 with: tool: cargo-hack,cargo-minimal-versions @@ -138,7 +138,7 @@ jobs: uses: actions-rust-lang/setup-rust-toolchain@v1.10.1 - name: Install cargo-nextest - uses: taiki-e/install-action@v2.44.54 + uses: taiki-e/install-action@v2.44.60 with: tool: cargo-nextest diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index eed37eed..9cecf541 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.44.54 + uses: taiki-e/install-action@v2.44.60 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.44.54 + uses: taiki-e/install-action@v2.44.60 with: tool: just diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml index f2681d7c..3bad6eca 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.44.54 + uses: taiki-e/install-action@v2.44.60 with: tool: cargo-llvm-cov diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 9aa2a30f..8d01680e 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -55,7 +55,7 @@ jobs: toolchain: nightly-2023-10-10 - name: Install just - uses: taiki-e/install-action@v2.44.54 + uses: taiki-e/install-action@v2.44.60 with: tool: just From 4ab27bfc4ad3639b3344c4c0150287f23cc66052 Mon Sep 17 00:00:00 2001 From: Rob Ede Date: Thu, 14 Nov 2024 09:43:47 +0100 Subject: [PATCH 224/410] ci: move nightly rust versions to vars (#615) --- .github/workflows/lint.yml | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 8d01680e..28598eaf 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -45,14 +45,15 @@ jobs: clippy_flags: --workspace --all-features --tests --examples --bins -- -Dclippy::todo -Aunknown_lints check-external-types: + if: false # rustdoc mismatch currently runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - - name: Install Rust (nightly-2023-10-10) + - name: Install Rust (${{ vars.RUST_VERSION_EXTERNAL_TYPES }}) uses: actions-rust-lang/setup-rust-toolchain@v1.10.1 with: - toolchain: nightly-2023-10-10 + toolchain: ${{ vars.RUST_VERSION_EXTERNAL_TYPES }} - name: Install just uses: taiki-e/install-action@v2.44.60 @@ -62,7 +63,7 @@ jobs: - name: Install cargo-check-external-types uses: taiki-e/cache-cargo-install-action@v2.0.1 with: - tool: cargo-check-external-types@0.1.10 + tool: cargo-check-external-types - name: check external types - run: just check-external-types-all +nightly-2023-10-10 + run: just check-external-types-all +${{ vars.RUST_VERSION_EXTERNAL_TYPES }} From 01a104eb82ab221c93096ea738fed0ba3c05bb9c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 14 Nov 2024 09:05:08 +0000 Subject: [PATCH 225/410] build(deps): bump taiki-e/install-action from 2.44.60 to 2.44.69 (#616) Bumps [taiki-e/install-action](https://github.com/taiki-e/install-action) from 2.44.60 to 2.44.69. - [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.44.60...v2.44.69) --- updated-dependencies: - dependency-name: taiki-e/install-action 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/ci-post-merge.yml | 6 +++--- .github/workflows/ci.yml | 4 ++-- .github/workflows/coverage.yml | 2 +- .github/workflows/lint.yml | 2 +- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/.github/workflows/ci-post-merge.yml b/.github/workflows/ci-post-merge.yml index a36f08d8..019eefc6 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.44.60 + uses: taiki-e/install-action@v2.44.69 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.44.60 + uses: taiki-e/install-action@v2.44.69 with: tool: cargo-hack,cargo-minimal-versions @@ -138,7 +138,7 @@ jobs: uses: actions-rust-lang/setup-rust-toolchain@v1.10.1 - name: Install cargo-nextest - uses: taiki-e/install-action@v2.44.60 + uses: taiki-e/install-action@v2.44.69 with: tool: cargo-nextest diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 9cecf541..1530f7c1 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.44.60 + uses: taiki-e/install-action@v2.44.69 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.44.60 + uses: taiki-e/install-action@v2.44.69 with: tool: just diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml index 3bad6eca..deb11f3a 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.44.60 + uses: taiki-e/install-action@v2.44.69 with: tool: cargo-llvm-cov diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 28598eaf..f09c4a5b 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.44.60 + uses: taiki-e/install-action@v2.44.69 with: tool: just From bb4fc314615a1ef5880caa1b0930c20f14b3f003 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 18 Nov 2024 21:25:24 +0000 Subject: [PATCH 226/410] build(deps): bump taiki-e/install-action from 2.44.69 to 2.44.71 (#618) Bumps [taiki-e/install-action](https://github.com/taiki-e/install-action) from 2.44.69 to 2.44.71. - [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.44.69...v2.44.71) --- updated-dependencies: - dependency-name: taiki-e/install-action 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/ci-post-merge.yml | 6 +++--- .github/workflows/ci.yml | 4 ++-- .github/workflows/coverage.yml | 2 +- .github/workflows/lint.yml | 2 +- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/.github/workflows/ci-post-merge.yml b/.github/workflows/ci-post-merge.yml index 019eefc6..4c8ca53d 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.44.69 + uses: taiki-e/install-action@v2.44.71 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.44.69 + uses: taiki-e/install-action@v2.44.71 with: tool: cargo-hack,cargo-minimal-versions @@ -138,7 +138,7 @@ jobs: uses: actions-rust-lang/setup-rust-toolchain@v1.10.1 - name: Install cargo-nextest - uses: taiki-e/install-action@v2.44.69 + uses: taiki-e/install-action@v2.44.71 with: tool: cargo-nextest diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 1530f7c1..40572cf8 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.44.69 + uses: taiki-e/install-action@v2.44.71 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.44.69 + uses: taiki-e/install-action@v2.44.71 with: tool: just diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml index deb11f3a..5a79a7f4 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.44.69 + uses: taiki-e/install-action@v2.44.71 with: tool: cargo-llvm-cov diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index f09c4a5b..4d531646 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.44.69 + uses: taiki-e/install-action@v2.44.71 with: tool: just From 47f001789914df308f682935df984c01bfab0fa2 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 18 Nov 2024 21:25:34 +0000 Subject: [PATCH 227/410] build(deps): bump codecov/codecov-action from 4.6.0 to 5.0.2 (#617) Bumps [codecov/codecov-action](https://github.com/codecov/codecov-action) from 4.6.0 to 5.0.2. - [Release notes](https://github.com/codecov/codecov-action/releases) - [Changelog](https://github.com/codecov/codecov-action/blob/main/CHANGELOG.md) - [Commits](https://github.com/codecov/codecov-action/compare/v4.6.0...v5.0.2) --- updated-dependencies: - dependency-name: codecov/codecov-action dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/coverage.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml index 5a79a7f4..5255a174 100644 --- a/.github/workflows/coverage.yml +++ b/.github/workflows/coverage.yml @@ -31,7 +31,7 @@ jobs: run: cargo llvm-cov --workspace --all-features --codecov --output-path codecov.json - name: Upload coverage to Codecov - uses: codecov/codecov-action@v4.6.0 + uses: codecov/codecov-action@v5.0.2 with: files: codecov.json fail_ci_if_error: true From 0e36c5f5c4a63b8a83c89f2ac0c4004fd9f99d85 Mon Sep 17 00:00:00 2001 From: Rob Ede Date: Sun, 24 Nov 2024 00:55:18 +0000 Subject: [PATCH 228/410] feat(bytestring): split_at method (#619) --- .github/workflows/lint.yml | 30 ++++++++++++++++++++- Cargo.toml | 2 +- actix-codec/CHANGES.md | 2 +- actix-macros/CHANGES.md | 2 +- actix-rt/CHANGES.md | 2 ++ actix-server/CHANGES.md | 2 ++ actix-service/CHANGES.md | 2 +- actix-tls/CHANGES.md | 2 ++ actix-tracing/CHANGES.md | 2 +- actix-utils/CHANGES.md | 2 +- bytestring/CHANGES.md | 5 +++- bytestring/Cargo.toml | 4 +-- bytestring/README.md | 4 +-- bytestring/src/lib.rs | 55 ++++++++++++++++++++++++++++++++++++-- local-channel/CHANGES.md | 2 +- local-waker/CHANGES.md | 2 +- 16 files changed, 104 insertions(+), 16 deletions(-) diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 4d531646..9127ca19 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -40,7 +40,7 @@ jobs: - uses: giraffate/clippy-action@v1.0.1 with: - reporter: 'github-pr-check' + reporter: "github-pr-check" github_token: ${{ secrets.GITHUB_TOKEN }} clippy_flags: --workspace --all-features --tests --examples --bins -- -Dclippy::todo -Aunknown_lints @@ -67,3 +67,31 @@ jobs: - name: check external types run: just check-external-types-all +${{ vars.RUST_VERSION_EXTERNAL_TYPES }} + + public-api-diff: + name: Public API Diff + runs-on: ubuntu-latest + steps: + - name: Checkout main branch + uses: actions/checkout@v4 + with: + ref: ${{ github.base_ref }} + + - name: Checkout PR branch + uses: actions/checkout@v4 + + - name: Install Rust (${{ vars.RUST_VERSION_API_DIFF }}) + uses: actions-rust-lang/setup-rust-toolchain@v1.8.0 + with: + toolchain: ${{ vars.RUST_VERSION_API_DIFF }} + + - name: Install cargo-public-api + uses: taiki-e/install-action@v2.34.0 + with: + tool: cargo-public-api + + - name: Generate API diff + run: | + for f in $(find -mindepth 2 -maxdepth 2 -name Cargo.toml); do + cargo public-api --manifest-path "$f" --simplified diff ${{ github.event.pull_request.base.sha }}..${{ github.sha }} + done diff --git a/Cargo.toml b/Cargo.toml index c130eaf9..3ff0b548 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -17,7 +17,7 @@ members = [ [workspace.package] license = "MIT OR Apache-2.0" edition = "2021" -rust-version = "1.70" +rust-version = "1.71.1" [patch.crates-io] actix-codec = { path = "actix-codec" } diff --git a/actix-codec/CHANGES.md b/actix-codec/CHANGES.md index fa2bfddd..5757d55e 100644 --- a/actix-codec/CHANGES.md +++ b/actix-codec/CHANGES.md @@ -2,7 +2,7 @@ ## Unreleased -- Minimum supported Rust version (MSRV) is now 1.70. +- Minimum supported Rust version (MSRV) is now 1.71. ## 0.5.2 diff --git a/actix-macros/CHANGES.md b/actix-macros/CHANGES.md index 99ecfa97..398f6d27 100644 --- a/actix-macros/CHANGES.md +++ b/actix-macros/CHANGES.md @@ -2,7 +2,7 @@ ## Unreleased -- Minimum supported Rust version (MSRV) is now 1.70. +- Minimum supported Rust version (MSRV) is now 1.71. ## 0.2.4 diff --git a/actix-rt/CHANGES.md b/actix-rt/CHANGES.md index 18466fa6..27476ab9 100644 --- a/actix-rt/CHANGES.md +++ b/actix-rt/CHANGES.md @@ -2,6 +2,8 @@ ## Unreleased +- Minimum supported Rust version (MSRV) is now 1.71. + ## 2.10.0 - Relax `F`'s bound (`Fn => FnOnce`) on `{Arbiter, System}::with_tokio_rt()` functions. diff --git a/actix-server/CHANGES.md b/actix-server/CHANGES.md index 50a11ba7..fa743277 100644 --- a/actix-server/CHANGES.md +++ b/actix-server/CHANGES.md @@ -2,6 +2,8 @@ ## Unreleased +- Minimum supported Rust version (MSRV) is now 1.71. + ## 2.5.0 - Update `mio` dependency to `1`. diff --git a/actix-service/CHANGES.md b/actix-service/CHANGES.md index 0ef39dc1..2617de5d 100644 --- a/actix-service/CHANGES.md +++ b/actix-service/CHANGES.md @@ -2,7 +2,7 @@ ## Unreleased -- Minimum supported Rust version (MSRV) is now 1.70. +- Minimum supported Rust version (MSRV) is now 1.71. ## 2.0.2 diff --git a/actix-tls/CHANGES.md b/actix-tls/CHANGES.md index 5b7ffb04..2654c083 100644 --- a/actix-tls/CHANGES.md +++ b/actix-tls/CHANGES.md @@ -2,6 +2,8 @@ ## Unreleased +- Minimum supported Rust version (MSRV) is now 1.71. + ## 3.4.0 - Add `rustls-0_23`, `rustls-0_23-webpki-roots`, and `rustls-0_23-native-roots` crate features. diff --git a/actix-tracing/CHANGES.md b/actix-tracing/CHANGES.md index 15f1437a..c288deaa 100644 --- a/actix-tracing/CHANGES.md +++ b/actix-tracing/CHANGES.md @@ -2,7 +2,7 @@ ## Unreleased -- Minimum supported Rust version (MSRV) is now 1.70. +- Minimum supported Rust version (MSRV) is now 1.71. ## 0.1.0 diff --git a/actix-utils/CHANGES.md b/actix-utils/CHANGES.md index de510788..4e7cdddd 100644 --- a/actix-utils/CHANGES.md +++ b/actix-utils/CHANGES.md @@ -2,7 +2,7 @@ ## Unreleased -- Minimum supported Rust version (MSRV) is now 1.70. +- Minimum supported Rust version (MSRV) is now 1.71. ## 3.0.1 diff --git a/bytestring/CHANGES.md b/bytestring/CHANGES.md index 8a24680f..a5d69fd5 100644 --- a/bytestring/CHANGES.md +++ b/bytestring/CHANGES.md @@ -2,7 +2,10 @@ ## Unreleased -- Minimum supported Rust version (MSRV) is now 1.70. +## 1.4.0 + +- Add `ByteString::split_at()` method. +- Minimum supported Rust version (MSRV) is now 1.71. ## 1.3.1 diff --git a/bytestring/Cargo.toml b/bytestring/Cargo.toml index 63472205..067a7fbe 100644 --- a/bytestring/Cargo.toml +++ b/bytestring/Cargo.toml @@ -1,12 +1,12 @@ [package] name = "bytestring" -version = "1.3.1" +version = "1.4.0" description = "A UTF-8 encoded read-only string using `Bytes` as storage" authors = [ "Nikolay Kim ", "Rob Ede ", ] -keywords = ["string", "bytes", "utf8", "web", "actix"] +keywords = ["string", "bytes", "utf8", "web", "bytestring"] categories = ["no-std", "web-programming"] homepage = "https://actix.rs" repository = "https://github.com/actix/actix-net" diff --git a/bytestring/README.md b/bytestring/README.md index 2bfd3083..a525cd75 100644 --- a/bytestring/README.md +++ b/bytestring/README.md @@ -5,11 +5,11 @@ [![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.3.1)](https://docs.rs/bytestring/1.3.1) +[![Documentation](https://docs.rs/bytestring/badge.svg?version=1.4.0)](https://docs.rs/bytestring/1.4.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) ![MIT or Apache 2.0 licensed](https://img.shields.io/crates/l/bytestring.svg)
-[![Dependency Status](https://deps.rs/crate/bytestring/1.3.1/status.svg)](https://deps.rs/crate/bytestring/1.3.1) +[![Dependency Status](https://deps.rs/crate/bytestring/1.4.0/status.svg)](https://deps.rs/crate/bytestring/1.4.0) ![Download](https://img.shields.io/crates/d/bytestring.svg) [![Chat on Discord](https://img.shields.io/discord/771444961383153695?label=chat&logo=discord)](https://discord.gg/NWpN5mmg3x) diff --git a/bytestring/src/lib.rs b/bytestring/src/lib.rs index 6cb164dc..1108c449 100644 --- a/bytestring/src/lib.rs +++ b/bytestring/src/lib.rs @@ -17,7 +17,7 @@ use core::{borrow::Borrow, fmt, hash, ops, str}; use bytes::Bytes; -/// An immutable UTF-8 encoded string with [`Bytes`] as a storage. +/// An immutable UTF-8 encoded string using [`Bytes`] as the storage. #[derive(Clone, Default, Eq, PartialOrd, Ord)] pub struct ByteString(Bytes); @@ -53,7 +53,29 @@ impl ByteString { Self(src) } - /// Returns a new byte string that is equivalent to the given `subset`. + /// Divides one bytestring into two at an index, returning both parts. + /// + /// # Panics + /// + /// Panics if `mid` is not on a UTF-8 code point boundary, or if it is past the end of the last + /// code point of the bytestring. + pub fn split_at(&self, mid: usize) -> (ByteString, ByteString) { + let this: &str = self.as_ref(); + let _valid_midpoint_check = this.split_at(mid); + + let mut bytes = self.0.clone(); + let first = bytes.split_to(mid); + let last = bytes; + + unsafe { + ( + ByteString::from_bytes_unchecked(first), + ByteString::from_bytes_unchecked(last), + ) + } + } + + /// Returns a new `ByteString` that is equivalent to the given `subset`. /// /// When processing a `ByteString` buffer with other tools, one often gets a `&str` which is in /// fact a slice of the original `ByteString`; i.e., a subset of it. This function turns that @@ -465,4 +487,33 @@ mod test { // being a logical subset of the string ByteString::from_static("foo bar").slice_ref("foo"); } + + #[test] + fn split_at() { + let buf = ByteString::from_static("foo bar"); + + let (first, last) = buf.split_at(0); + assert_eq!(ByteString::from_static(""), first); + assert_eq!(ByteString::from_static("foo bar"), last); + + let (first, last) = buf.split_at(4); + assert_eq!(ByteString::from_static("foo "), first); + assert_eq!(ByteString::from_static("bar"), last); + + let (first, last) = buf.split_at(7); + assert_eq!(ByteString::from_static("foo bar"), first); + assert_eq!(ByteString::from_static(""), last); + } + + #[test] + #[should_panic = "byte index 1 is not a char boundary;"] + fn split_at_invalid_code_point() { + ByteString::from_static("µ").split_at(1); + } + + #[test] + #[should_panic = "byte index 9 is out of bounds"] + fn split_at_outside_string() { + ByteString::from_static("foo").split_at(9); + } } diff --git a/local-channel/CHANGES.md b/local-channel/CHANGES.md index 602d09b3..9b2111f7 100644 --- a/local-channel/CHANGES.md +++ b/local-channel/CHANGES.md @@ -2,7 +2,7 @@ ## Unreleased -- Minimum supported Rust version (MSRV) is now 1.70. +- Minimum supported Rust version (MSRV) is now 1.71. ## 0.1.5 diff --git a/local-waker/CHANGES.md b/local-waker/CHANGES.md index a6adfbba..5731219b 100644 --- a/local-waker/CHANGES.md +++ b/local-waker/CHANGES.md @@ -2,7 +2,7 @@ ## Unreleased -- Minimum supported Rust version (MSRV) is now 1.70. +- Minimum supported Rust version (MSRV) is now 1.71. ## 0.1.4 From 52733337e418338a8f7964de9a411872ca39764e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 2 Dec 2024 08:31:14 +0000 Subject: [PATCH 229/410] build(deps): bump taiki-e/install-action from 2.34.0 to 2.45.6 (#622) Bumps [taiki-e/install-action](https://github.com/taiki-e/install-action) from 2.34.0 to 2.45.6. - [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.34.0...v2.45.6) --- updated-dependencies: - dependency-name: taiki-e/install-action 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 | 6 +++--- .github/workflows/ci.yml | 4 ++-- .github/workflows/coverage.yml | 2 +- .github/workflows/lint.yml | 4 ++-- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/.github/workflows/ci-post-merge.yml b/.github/workflows/ci-post-merge.yml index 4c8ca53d..fbc3153c 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.44.71 + uses: taiki-e/install-action@v2.45.6 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.44.71 + uses: taiki-e/install-action@v2.45.6 with: tool: cargo-hack,cargo-minimal-versions @@ -138,7 +138,7 @@ jobs: uses: actions-rust-lang/setup-rust-toolchain@v1.10.1 - name: Install cargo-nextest - uses: taiki-e/install-action@v2.44.71 + uses: taiki-e/install-action@v2.45.6 with: tool: cargo-nextest diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 40572cf8..345119b5 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.44.71 + uses: taiki-e/install-action@v2.45.6 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.44.71 + uses: taiki-e/install-action@v2.45.6 with: tool: just diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml index 5255a174..b68ec029 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.44.71 + uses: taiki-e/install-action@v2.45.6 with: tool: cargo-llvm-cov diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 9127ca19..2e031ed3 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.44.71 + uses: taiki-e/install-action@v2.45.6 with: tool: just @@ -86,7 +86,7 @@ jobs: toolchain: ${{ vars.RUST_VERSION_API_DIFF }} - name: Install cargo-public-api - uses: taiki-e/install-action@v2.34.0 + uses: taiki-e/install-action@v2.45.6 with: tool: cargo-public-api From c362fc44148c409d99f062b11c95d3623b91f2a2 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 2 Dec 2024 08:31:21 +0000 Subject: [PATCH 230/410] build(deps): bump codecov/codecov-action from 5.0.2 to 5.0.7 (#621) Bumps [codecov/codecov-action](https://github.com/codecov/codecov-action) from 5.0.2 to 5.0.7. - [Release notes](https://github.com/codecov/codecov-action/releases) - [Changelog](https://github.com/codecov/codecov-action/blob/main/CHANGELOG.md) - [Commits](https://github.com/codecov/codecov-action/compare/v5.0.2...v5.0.7) --- updated-dependencies: - dependency-name: codecov/codecov-action 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/coverage.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml index b68ec029..73258f15 100644 --- a/.github/workflows/coverage.yml +++ b/.github/workflows/coverage.yml @@ -31,7 +31,7 @@ jobs: run: cargo llvm-cov --workspace --all-features --codecov --output-path codecov.json - name: Upload coverage to Codecov - uses: codecov/codecov-action@v5.0.2 + uses: codecov/codecov-action@v5.0.7 with: files: codecov.json fail_ci_if_error: true From 9796593b244fb25fcb1d09319b6af43b50bff03a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 2 Dec 2024 08:31:34 +0000 Subject: [PATCH 231/410] build(deps): bump actions-rust-lang/setup-rust-toolchain (#620) Bumps [actions-rust-lang/setup-rust-toolchain](https://github.com/actions-rust-lang/setup-rust-toolchain) from 1.8.0 to 1.10.1. - [Release notes](https://github.com/actions-rust-lang/setup-rust-toolchain/releases) - [Changelog](https://github.com/actions-rust-lang/setup-rust-toolchain/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions-rust-lang/setup-rust-toolchain/compare/v1.8...v1.10.1) --- updated-dependencies: - dependency-name: actions-rust-lang/setup-rust-toolchain 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/lint.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 2e031ed3..a651c761 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -81,7 +81,7 @@ jobs: uses: actions/checkout@v4 - name: Install Rust (${{ vars.RUST_VERSION_API_DIFF }}) - uses: actions-rust-lang/setup-rust-toolchain@v1.8.0 + uses: actions-rust-lang/setup-rust-toolchain@v1.10.1 with: toolchain: ${{ vars.RUST_VERSION_API_DIFF }} From 42b788d131748e88d90e1e42aaecafdb3e9279d1 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 10 Dec 2024 11:48:02 +0000 Subject: [PATCH 232/410] build(deps): bump taiki-e/install-action from 2.45.6 to 2.46.4 (#625) Bumps [taiki-e/install-action](https://github.com/taiki-e/install-action) from 2.45.6 to 2.46.4. - [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.45.6...v2.46.4) --- updated-dependencies: - dependency-name: taiki-e/install-action 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 | 6 +++--- .github/workflows/ci.yml | 4 ++-- .github/workflows/coverage.yml | 2 +- .github/workflows/lint.yml | 4 ++-- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/.github/workflows/ci-post-merge.yml b/.github/workflows/ci-post-merge.yml index fbc3153c..f716bc94 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.45.6 + uses: taiki-e/install-action@v2.46.4 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.45.6 + uses: taiki-e/install-action@v2.46.4 with: tool: cargo-hack,cargo-minimal-versions @@ -138,7 +138,7 @@ jobs: uses: actions-rust-lang/setup-rust-toolchain@v1.10.1 - name: Install cargo-nextest - uses: taiki-e/install-action@v2.45.6 + uses: taiki-e/install-action@v2.46.4 with: tool: cargo-nextest diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 345119b5..380734c7 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.45.6 + uses: taiki-e/install-action@v2.46.4 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.45.6 + uses: taiki-e/install-action@v2.46.4 with: tool: just diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml index 73258f15..9a5abeeb 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.45.6 + uses: taiki-e/install-action@v2.46.4 with: tool: cargo-llvm-cov diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index a651c761..07ab5d84 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.45.6 + uses: taiki-e/install-action@v2.46.4 with: tool: just @@ -86,7 +86,7 @@ jobs: toolchain: ${{ vars.RUST_VERSION_API_DIFF }} - name: Install cargo-public-api - uses: taiki-e/install-action@v2.45.6 + uses: taiki-e/install-action@v2.46.4 with: tool: cargo-public-api From 34826c625327460c921aff61d8401fb280d79612 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 10 Dec 2024 11:48:11 +0000 Subject: [PATCH 233/410] build(deps): bump codecov/codecov-action from 5.0.7 to 5.1.1 (#624) Bumps [codecov/codecov-action](https://github.com/codecov/codecov-action) from 5.0.7 to 5.1.1. - [Release notes](https://github.com/codecov/codecov-action/releases) - [Changelog](https://github.com/codecov/codecov-action/blob/main/CHANGELOG.md) - [Commits](https://github.com/codecov/codecov-action/compare/v5.0.7...v5.1.1) --- updated-dependencies: - dependency-name: codecov/codecov-action 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/coverage.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml index 9a5abeeb..fb104a43 100644 --- a/.github/workflows/coverage.yml +++ b/.github/workflows/coverage.yml @@ -31,7 +31,7 @@ jobs: run: cargo llvm-cov --workspace --all-features --codecov --output-path codecov.json - name: Upload coverage to Codecov - uses: codecov/codecov-action@v5.0.7 + uses: codecov/codecov-action@v5.1.1 with: files: codecov.json fail_ci_if_error: true From 823454306645bdc18d9853164edd1726b271488d Mon Sep 17 00:00:00 2001 From: Rob Ede Date: Sun, 29 Dec 2024 13:41:31 +0000 Subject: [PATCH 234/410] ci: fix tests --- .github/workflows/ci-post-merge.yml | 17 ----------------- justfile | 10 +++++----- 2 files changed, 5 insertions(+), 22 deletions(-) diff --git a/.github/workflows/ci-post-merge.yml b/.github/workflows/ci-post-merge.yml index f716bc94..a1bc4acd 100644 --- a/.github/workflows/ci-post-merge.yml +++ b/.github/workflows/ci-post-merge.yml @@ -127,20 +127,3 @@ jobs: - name: Check With Minimal Versions run: cargo minimal-versions check - - nextest: - name: nextest - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - - name: Install Rust - uses: actions-rust-lang/setup-rust-toolchain@v1.10.1 - - - name: Install cargo-nextest - uses: taiki-e/install-action@v2.46.4 - with: - tool: cargo-nextest - - - name: Test with cargo-nextest - run: cargo nextest run diff --git a/justfile b/justfile index 9e92635a..86e4816d 100644 --- a/justfile +++ b/justfile @@ -47,16 +47,16 @@ clippy toolchain="": [windows] test toolchain="": cargo {{ toolchain }} test --lib --tests --package=actix-macros - cargo {{ toolchain }} nextest run --workspace --exclude=actix-macros --no-default-features - cargo {{ toolchain }} nextest run --workspace --exclude=actix-macros {{ all_crate_features }} + cargo {{ toolchain }} nextest run --no-tests=warn --workspace --exclude=actix-macros --no-default-features + cargo {{ toolchain }} nextest run --no-tests=warn --workspace --exclude=actix-macros {{ all_crate_features }} # Test workspace code. [linux] test toolchain="": cargo {{ toolchain }} test --lib --tests --package=actix-macros - cargo {{ toolchain }} nextest run --workspace --exclude=actix-macros --no-default-features - cargo {{ toolchain }} nextest run --workspace --exclude=actix-macros {{ non_linux_all_features_list }} - cargo {{ toolchain }} nextest run --workspace --exclude=actix-macros {{ all_crate_features }} + cargo {{ toolchain }} nextest run --no-tests=warn --workspace --exclude=actix-macros --no-default-features + cargo {{ toolchain }} nextest run --no-tests=warn --workspace --exclude=actix-macros {{ non_linux_all_features_list }} + cargo {{ toolchain }} nextest run --no-tests=warn --workspace --exclude=actix-macros {{ all_crate_features }} # Test workspace using MSRV. test-msrv: downgrade-for-msrv (test msrv_rustup) From e0c09c2aa42afe4a9f09345adb7f5186945b48ae Mon Sep 17 00:00:00 2001 From: Rob Ede Date: Sun, 29 Dec 2024 13:44:48 +0000 Subject: [PATCH 235/410] ci: remove public-api-diff job --- .github/workflows/lint.yml | 28 ---------------------------- 1 file changed, 28 deletions(-) diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 07ab5d84..8f57255f 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -67,31 +67,3 @@ jobs: - name: check external types run: just check-external-types-all +${{ vars.RUST_VERSION_EXTERNAL_TYPES }} - - public-api-diff: - name: Public API Diff - runs-on: ubuntu-latest - steps: - - name: Checkout main branch - uses: actions/checkout@v4 - with: - ref: ${{ github.base_ref }} - - - name: Checkout PR branch - uses: actions/checkout@v4 - - - name: Install Rust (${{ vars.RUST_VERSION_API_DIFF }}) - uses: actions-rust-lang/setup-rust-toolchain@v1.10.1 - with: - toolchain: ${{ vars.RUST_VERSION_API_DIFF }} - - - name: Install cargo-public-api - uses: taiki-e/install-action@v2.46.4 - with: - tool: cargo-public-api - - - name: Generate API diff - run: | - for f in $(find -mindepth 2 -maxdepth 2 -name Cargo.toml); do - cargo public-api --manifest-path "$f" --simplified diff ${{ github.event.pull_request.base.sha }}..${{ github.sha }} - done From d2a509145115a6708957cb02093da0cf814d32b3 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 29 Dec 2024 13:57:58 +0000 Subject: [PATCH 236/410] build(deps): bump taiki-e/install-action from 2.46.4 to 2.47.0 (#630) Bumps [taiki-e/install-action](https://github.com/taiki-e/install-action) from 2.46.4 to 2.47.0. - [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.46.4...v2.47.0) --- updated-dependencies: - dependency-name: taiki-e/install-action 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 a1bc4acd..0d30f0e7 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.46.4 + uses: taiki-e/install-action@v2.47.0 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.46.4 + uses: taiki-e/install-action@v2.47.0 with: tool: cargo-hack,cargo-minimal-versions diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 380734c7..97cf5fd4 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.46.4 + uses: taiki-e/install-action@v2.47.0 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.46.4 + uses: taiki-e/install-action@v2.47.0 with: tool: just diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml index fb104a43..a1e4aeba 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.46.4 + uses: taiki-e/install-action@v2.47.0 with: tool: cargo-llvm-cov diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 8f57255f..15b1a34b 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.46.4 + uses: taiki-e/install-action@v2.47.0 with: tool: just From 23f797a81d3cb5a75b04f6fa22c1fc8afa112adc Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 29 Dec 2024 13:59:48 +0000 Subject: [PATCH 237/410] build(deps): bump codecov/codecov-action from 5.1.1 to 5.1.2 (#629) Bumps [codecov/codecov-action](https://github.com/codecov/codecov-action) from 5.1.1 to 5.1.2. - [Release notes](https://github.com/codecov/codecov-action/releases) - [Changelog](https://github.com/codecov/codecov-action/blob/main/CHANGELOG.md) - [Commits](https://github.com/codecov/codecov-action/compare/v5.1.1...v5.1.2) --- updated-dependencies: - dependency-name: codecov/codecov-action 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/coverage.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml index a1e4aeba..3ce48dc4 100644 --- a/.github/workflows/coverage.yml +++ b/.github/workflows/coverage.yml @@ -31,7 +31,7 @@ jobs: run: cargo llvm-cov --workspace --all-features --codecov --output-path codecov.json - name: Upload coverage to Codecov - uses: codecov/codecov-action@v5.1.1 + uses: codecov/codecov-action@v5.1.2 with: files: codecov.json fail_ci_if_error: true From ecba6e21da7e052f97bb9498255a75bb32ffc3cc Mon Sep 17 00:00:00 2001 From: Rob Ede Date: Sun, 29 Dec 2024 14:27:56 +0000 Subject: [PATCH 238/410] chore: fmt project --- .github/PULL_REQUEST_TEMPLATE.md | 7 ++++--- .github/workflows/ci.yml | 2 +- .taplo.toml | 29 ++++++++++++++++++++++++++++ Cargo.toml | 6 ++++++ actix-codec/Cargo.toml | 16 +++++---------- actix-codec/benches/lines.rs | 2 ++ actix-codec/src/lib.rs | 2 -- actix-macros/Cargo.toml | 11 +++++++---- actix-macros/src/lib.rs | 2 -- actix-rt/Cargo.toml | 13 +++++-------- actix-rt/src/lib.rs | 2 -- actix-server/Cargo.toml | 16 +++++++-------- actix-server/examples/file-reader.rs | 2 ++ actix-server/src/lib.rs | 2 -- actix-server/src/socket.rs | 1 + actix-service/Cargo.toml | 8 ++++---- actix-service/examples/clone.rs | 2 ++ actix-service/src/lib.rs | 2 -- actix-tls/Cargo.toml | 24 +++++++++-------------- actix-tls/src/lib.rs | 2 -- actix-tracing/Cargo.toml | 11 ++++------- actix-tracing/src/lib.rs | 4 ++-- actix-utils/Cargo.toml | 10 +++++----- actix-utils/src/lib.rs | 2 -- bytestring/Cargo.toml | 13 +++++-------- bytestring/src/lib.rs | 2 -- local-channel/Cargo.toml | 10 ++-------- local-waker/Cargo.toml | 5 +---- 28 files changed, 104 insertions(+), 104 deletions(-) create mode 100644 .taplo.toml diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index e32d54ae..5f7542cc 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -1,10 +1,12 @@ ## PR Type + + INSERT_PR_TYPE - ## PR Checklist + Check your PR fulfills the following: @@ -14,11 +16,10 @@ Check your PR fulfills the following: - [ ] A changelog entry has been made for the appropriate packages. - [ ] Format code with the latest stable rustfmt - ## Overview + - diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 97cf5fd4..c3809715 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -53,7 +53,7 @@ jobs: - name: Setup mold linker if: matrix.target.os == 'ubuntu-latest' uses: rui314/setup-mold@v1 - + - name: Install nasm if: matrix.target.os == 'windows-latest' uses: ilammy/setup-nasm@v1.5.1 diff --git a/.taplo.toml b/.taplo.toml new file mode 100644 index 00000000..195e07b3 --- /dev/null +++ b/.taplo.toml @@ -0,0 +1,29 @@ +exclude = ["target/*"] +include = ["**/*.toml"] + +[formatting] +column_width = 110 + +[[rule]] +include = ["**/Cargo.toml"] +keys = [ + "dependencies", + "*-dependencies", + "workspace.dependencies", + "workspace.*-dependencies", + "target.*.dependencies", + "target.*.*-dependencies", +] +formatting.reorder_keys = true + +[[rule]] +include = ["**/Cargo.toml"] +keys = [ + "dependencies.*", + "*-dependencies.*", + "workspace.dependencies.*", + "workspace.*-dependencies.*", + "target.*.dependencies", + "target.*.*-dependencies", +] +formatting.reorder_keys = false diff --git a/Cargo.toml b/Cargo.toml index 3ff0b548..164529aa 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -36,3 +36,9 @@ local-waker = { path = "local-waker" } lto = true opt-level = 3 codegen-units = 1 + +[workspace.lints.rust] +rust_2018_idioms = "deny" +nonstandard-style = "deny" +future_incompatible = "deny" +missing_docs = { level = "warn", priority = -1 } diff --git a/actix-codec/Cargo.toml b/actix-codec/Cargo.toml index d71c7c25..89e0396a 100644 --- a/actix-codec/Cargo.toml +++ b/actix-codec/Cargo.toml @@ -1,10 +1,7 @@ [package] name = "actix-codec" version = "0.5.2" -authors = [ - "Nikolay Kim ", - "Rob Ede ", -] +authors = ["Nikolay Kim ", "Rob Ede "] description = "Codec utilities for working with framed protocols" keywords = ["network", "framework", "async", "futures"] repository = "https://github.com/actix/actix-net" @@ -14,13 +11,7 @@ edition.workspace = true rust-version.workspace = true [package.metadata.cargo_check_external_types] -allowed_external_types = [ - "bytes::*", - "futures_core::*", - "futures_sink::*", - "tokio::*", - "tokio_util::*", -] +allowed_external_types = ["bytes::*", "futures_core::*", "futures_sink::*", "tokio::*", "tokio_util::*"] [dependencies] bitflags = "2" @@ -40,3 +31,6 @@ tokio-test = "0.4.2" [[bench]] name = "lines" harness = false + +[lints] +workspace = true diff --git a/actix-codec/benches/lines.rs b/actix-codec/benches/lines.rs index e32b8365..c6d13123 100644 --- a/actix-codec/benches/lines.rs +++ b/actix-codec/benches/lines.rs @@ -1,3 +1,5 @@ +#![allow(missing_docs)] + use bytes::BytesMut; use criterion::{criterion_group, criterion_main, Criterion}; diff --git a/actix-codec/src/lib.rs b/actix-codec/src/lib.rs index 7dc28b35..f207c21c 100644 --- a/actix-codec/src/lib.rs +++ b/actix-codec/src/lib.rs @@ -6,8 +6,6 @@ //! [`Sink`]: futures_sink::Sink //! [`Stream`]: futures_core::Stream -#![deny(rust_2018_idioms, nonstandard_style)] -#![warn(future_incompatible, missing_docs)] #![doc(html_logo_url = "https://actix.rs/img/logo.png")] #![doc(html_favicon_url = "https://actix.rs/favicon.ico")] diff --git a/actix-macros/Cargo.toml b/actix-macros/Cargo.toml index bf20ab80..d4bfcfe5 100644 --- a/actix-macros/Cargo.toml +++ b/actix-macros/Cargo.toml @@ -2,9 +2,9 @@ name = "actix-macros" version = "0.2.4" authors = [ - "Nikolay Kim ", - "Ibraheem Ahmed ", - "Rob Ede ", + "Nikolay Kim ", + "Ibraheem Ahmed ", + "Rob Ede ", ] description = "Macros for Actix system and runtime" repository = "https://github.com/actix/actix-net" @@ -15,7 +15,7 @@ rust-version.workspace = true [package.metadata.cargo-machete] ignored = [ - "proc_macro2", # specified for minimal versions compat + "proc_macro2", # specified for minimal versions compat ] [lib] @@ -34,3 +34,6 @@ actix-rt = "2" futures-util = { version = "0.3.17", default-features = false } rustversion-msrv = "0.100" trybuild = "1" + +[lints] +workspace = true diff --git a/actix-macros/src/lib.rs b/actix-macros/src/lib.rs index cd546f0e..f2d96d4c 100644 --- a/actix-macros/src/lib.rs +++ b/actix-macros/src/lib.rs @@ -8,8 +8,6 @@ //! # Tests //! See docs for the [`#[test]`](macro@test) macro. -#![deny(rust_2018_idioms, nonstandard_style)] -#![warn(future_incompatible)] #![doc(html_logo_url = "https://actix.rs/img/logo.png")] #![doc(html_favicon_url = "https://actix.rs/favicon.ico")] diff --git a/actix-rt/Cargo.toml b/actix-rt/Cargo.toml index b46ad896..bee209cc 100644 --- a/actix-rt/Cargo.toml +++ b/actix-rt/Cargo.toml @@ -1,10 +1,7 @@ [package] name = "actix-rt" version = "2.10.0" -authors = [ - "Nikolay Kim ", - "Rob Ede ", -] +authors = ["Nikolay Kim ", "Rob Ede "] description = "Tokio-based single-threaded async runtime for the Actix ecosystem" keywords = ["async", "futures", "io", "runtime"] homepage = "https://actix.rs" @@ -15,10 +12,7 @@ edition.workspace = true rust-version.workspace = true [package.metadata.cargo_check_external_types] -allowed_external_types = [ - "actix_macros::*", - "tokio::*", -] +allowed_external_types = ["actix_macros::*", "tokio::*"] [features] default = ["macros"] @@ -37,3 +31,6 @@ tokio-uring = { version = "0.5", optional = true } [dev-dependencies] tokio = { version = "1.23.1", features = ["full"] } + +[lints] +workspace = true diff --git a/actix-rt/src/lib.rs b/actix-rt/src/lib.rs index fc2a56ba..9dce19b8 100644 --- a/actix-rt/src/lib.rs +++ b/actix-rt/src/lib.rs @@ -41,8 +41,6 @@ //! Note that there are currently some unimplemented parts of using `actix-rt` with `io-uring`. //! In particular, when running a `System`, only `System::block_on` is supported. -#![deny(rust_2018_idioms, nonstandard_style)] -#![warn(future_incompatible, missing_docs)] #![allow(clippy::type_complexity)] #![doc(html_logo_url = "https://actix.rs/img/logo.png")] #![doc(html_favicon_url = "https://actix.rs/favicon.ico")] diff --git a/actix-server/Cargo.toml b/actix-server/Cargo.toml index a1eecdd3..6de58fb9 100644 --- a/actix-server/Cargo.toml +++ b/actix-server/Cargo.toml @@ -2,9 +2,9 @@ name = "actix-server" version = "2.5.0" authors = [ - "Nikolay Kim ", - "Rob Ede ", - "Ali MJ Al-Nasrawy ", + "Nikolay Kim ", + "Rob Ede ", + "Ali MJ Al-Nasrawy ", ] description = "General purpose TCP server built for the Actix ecosystem" keywords = ["network", "tcp", "server", "framework", "async"] @@ -16,9 +16,7 @@ edition.workspace = true rust-version.workspace = true [package.metadata.cargo_check_external_types] -allowed_external_types = [ - "tokio::*", -] +allowed_external_types = ["tokio::*"] [features] default = [] @@ -28,7 +26,6 @@ io-uring = ["tokio-uring", "actix-rt/io-uring"] actix-rt = { version = "2.10", default-features = false } actix-service = "2" actix-utils = "3" - futures-core = { version = "0.3.17", default-features = false, features = ["alloc"] } futures-util = { version = "0.3.17", default-features = false, features = ["alloc"] } mio = { version = "1", features = ["os-poll", "net"] } @@ -45,6 +42,9 @@ actix-codec = "0.5" actix-rt = "2.8" bytes = "1" -pretty_env_logger = "0.5" futures-util = { version = "0.3.17", default-features = false, features = ["sink", "async-await-macro"] } +pretty_env_logger = "0.5" tokio = { version = "1.23.1", features = ["io-util", "rt-multi-thread", "macros", "fs"] } + +[lints] +workspace = true diff --git a/actix-server/examples/file-reader.rs b/actix-server/examples/file-reader.rs index 4e446807..06de4653 100644 --- a/actix-server/examples/file-reader.rs +++ b/actix-server/examples/file-reader.rs @@ -8,6 +8,8 @@ //! //! Follow the prompt and enter a file path, relative or absolute. +#![allow(missing_docs)] + use std::io; use actix_codec::{Framed, LinesCodec}; diff --git a/actix-server/src/lib.rs b/actix-server/src/lib.rs index 24adf8ff..8660d548 100644 --- a/actix-server/src/lib.rs +++ b/actix-server/src/lib.rs @@ -1,7 +1,5 @@ //! General purpose TCP server. -#![deny(rust_2018_idioms, nonstandard_style)] -#![warn(future_incompatible)] #![doc(html_logo_url = "https://actix.rs/img/logo.png")] #![doc(html_favicon_url = "https://actix.rs/favicon.ico")] diff --git a/actix-server/src/socket.rs b/actix-server/src/socket.rs index a39e4c49..91a73be8 100644 --- a/actix-server/src/socket.rs +++ b/actix-server/src/socket.rs @@ -160,6 +160,7 @@ pub enum MioStream { /// Helper trait for converting a Mio stream into a Tokio stream. pub trait FromStream: Sized { + /// Creates stream from a `mio` stream. fn from_mio(sock: MioStream) -> io::Result; } diff --git a/actix-service/Cargo.toml b/actix-service/Cargo.toml index dcb6652f..f0be441b 100644 --- a/actix-service/Cargo.toml +++ b/actix-service/Cargo.toml @@ -1,10 +1,7 @@ [package] name = "actix-service" version = "2.0.2" -authors = [ - "Nikolay Kim ", - "Rob Ede ", -] +authors = ["Nikolay Kim ", "Rob Ede "] description = "Service trait and combinators for representing asynchronous request/response operations." keywords = ["network", "framework", "async", "futures", "service"] categories = ["network-programming", "asynchronous", "no-std"] @@ -22,3 +19,6 @@ pin-project-lite = "0.2" actix-rt = "2" actix-utils = "3" futures-util = { version = "0.3.17", default-features = false } + +[lints] +workspace = true diff --git a/actix-service/examples/clone.rs b/actix-service/examples/clone.rs index 1f61a648..bc7ff1cb 100644 --- a/actix-service/examples/clone.rs +++ b/actix-service/examples/clone.rs @@ -1,3 +1,5 @@ +#![allow(missing_docs)] + use std::{future::Future, sync::mpsc, time::Duration}; async fn oracle(f: F) -> (u32, u32) diff --git a/actix-service/src/lib.rs b/actix-service/src/lib.rs index fbbdfeb8..963851ac 100644 --- a/actix-service/src/lib.rs +++ b/actix-service/src/lib.rs @@ -1,8 +1,6 @@ //! See [`Service`] docs for information on this crate's foundational trait. #![no_std] -#![deny(rust_2018_idioms, nonstandard_style)] -#![warn(future_incompatible, missing_docs)] #![allow(clippy::type_complexity)] #![doc(html_logo_url = "https://actix.rs/img/logo.png")] #![doc(html_favicon_url = "https://actix.rs/favicon.ico")] diff --git a/actix-tls/Cargo.toml b/actix-tls/Cargo.toml index 7d4cf563..1ec3cce2 100644 --- a/actix-tls/Cargo.toml +++ b/actix-tls/Cargo.toml @@ -1,10 +1,7 @@ [package] name = "actix-tls" version = "3.4.0" -authors = [ - "Nikolay Kim ", - "Rob Ede ", -] +authors = ["Nikolay Kim ", "Rob Ede "] description = "TLS acceptor and connector services for Actix ecosystem" keywords = ["network", "tls", "ssl", "async", "transport"] repository = "https://github.com/actix/actix-net.git" @@ -18,17 +15,12 @@ all-features = true rustdoc-args = ["--cfg", "docsrs"] [package.metadata.cargo_check_external_types] -allowed_external_types = [ - "actix_service::*", - "actix_utils::*", - "futures_core::*", - "tokio::*", -] +allowed_external_types = ["actix_service::*", "actix_utils::*", "futures_core::*", "tokio::*"] [package.metadata.cargo-machete] ignored = [ - "rustls_021", # specified to force version with add_trust_anchors method - "rustls_webpki_0101", # specified to force secure version + "rustls_021", # specified to force version with add_trust_anchors method + "rustls_webpki_0101", # specified to force secure version ] [features] @@ -76,7 +68,6 @@ uri = ["dep:http-0_2", "dep:http-1"] actix-rt = { version = "2.2", default-features = false } actix-service = "2" actix-utils = "3" - futures-core = { version = "0.3.7", default-features = false, features = ["alloc"] } impl-more = "0.1" pin-project-lite = "0.2.7" @@ -120,7 +111,7 @@ rustls-native-certs-07 = { package = "rustls-native-certs", version = "0.7", opt tokio-native-tls = { version = "0.3", optional = true } [target.'cfg(any())'.dependencies] -rustls-021 = { package = "rustls", version = "0.21.6", optional = true } # force version with add_trust_anchors method +rustls-021 = { package = "rustls", version = "0.21.6", optional = true } # force version with add_trust_anchors method rustls-webpki-0101 = { package = "rustls-webpki", version = "0.101.4", optional = true } # force secure version [dev-dependencies] @@ -128,9 +119,9 @@ actix-codec = "0.5" actix-rt = "2.2" actix-server = "2" bytes = "1" -pretty_env_logger = "0.5" futures-util = { version = "0.3.17", default-features = false, features = ["sink"] } itertools = "0.13" +pretty_env_logger = "0.5" rcgen = "0.13" rustls-pemfile = "2" tokio-rustls-026 = { package = "tokio-rustls", version = "0.26" } @@ -139,3 +130,6 @@ trust-dns-resolver = "0.23" [[example]] name = "accept-rustls" required-features = ["accept", "rustls-0_23"] + +[lints] +workspace = true diff --git a/actix-tls/src/lib.rs b/actix-tls/src/lib.rs index 64bdcd00..38d1bb05 100644 --- a/actix-tls/src/lib.rs +++ b/actix-tls/src/lib.rs @@ -1,7 +1,5 @@ //! TLS acceptor and connector services for the Actix ecosystem. -#![deny(rust_2018_idioms, nonstandard_style)] -#![warn(future_incompatible, missing_docs)] #![doc(html_logo_url = "https://actix.rs/img/logo.png")] #![doc(html_favicon_url = "https://actix.rs/favicon.ico")] #![cfg_attr(docsrs, feature(doc_auto_cfg))] diff --git a/actix-tracing/Cargo.toml b/actix-tracing/Cargo.toml index 6e06beed..8e4e0db2 100644 --- a/actix-tracing/Cargo.toml +++ b/actix-tracing/Cargo.toml @@ -13,20 +13,17 @@ edition.workspace = true rust-version.workspace = true [package.metadata.cargo_check_external_types] -allowed_external_types = [ - "actix_service::*", - "actix_utils::*", - "tracing::*", - "tracing_futures::*", -] +allowed_external_types = ["actix_service::*", "actix_utils::*", "tracing::*", "tracing_futures::*"] [dependencies] actix-service = "2" actix-utils = "3" - tracing = "0.1.35" tracing-futures = "0.2" [dev-dependencies] actix-rt = "2" slab = "0.4" + +[lints] +workspace = true diff --git a/actix-tracing/src/lib.rs b/actix-tracing/src/lib.rs index 4107b429..f110ccbe 100644 --- a/actix-tracing/src/lib.rs +++ b/actix-tracing/src/lib.rs @@ -1,7 +1,5 @@ //! Actix tracing - support for tokio tracing with Actix services. -#![deny(rust_2018_idioms, nonstandard_style)] -#![warn(future_incompatible)] #![doc(html_logo_url = "https://actix.rs/img/logo.png")] #![doc(html_favicon_url = "https://actix.rs/favicon.ico")] @@ -22,6 +20,7 @@ pub struct TracingService { } impl TracingService { + /// Constructs new tracing middleware. pub fn new(inner: S, make_span: F) -> Self { TracingService { inner, make_span } } @@ -63,6 +62,7 @@ pub struct TracingTransform { } impl TracingTransform { + /// Constructs new tracing middleware. pub fn new(make_span: F) -> Self { TracingTransform { make_span, diff --git a/actix-utils/Cargo.toml b/actix-utils/Cargo.toml index e3c2553f..83340f52 100644 --- a/actix-utils/Cargo.toml +++ b/actix-utils/Cargo.toml @@ -1,10 +1,7 @@ [package] name = "actix-utils" version = "3.0.1" -authors = [ - "Nikolay Kim ", - "Rob Ede ", -] +authors = ["Nikolay Kim ", "Rob Ede "] description = "Various utilities used in the Actix ecosystem" keywords = ["network", "framework", "async", "futures"] categories = ["network-programming", "asynchronous"] @@ -14,10 +11,13 @@ edition.workspace = true rust-version.workspace = true [dependencies] -pin-project-lite = "0.2" local-waker = "0.1" +pin-project-lite = "0.2" [dev-dependencies] actix-rt = "2" futures-util = { version = "0.3.17", default-features = false } static_assertions = "1.1" + +[lints] +workspace = true diff --git a/actix-utils/src/lib.rs b/actix-utils/src/lib.rs index b02687cb..5abc75f8 100644 --- a/actix-utils/src/lib.rs +++ b/actix-utils/src/lib.rs @@ -1,7 +1,5 @@ //! Various utilities used in the Actix ecosystem. -#![deny(rust_2018_idioms, nonstandard_style)] -#![warn(future_incompatible, missing_docs)] #![doc(html_logo_url = "https://actix.rs/img/logo.png")] #![doc(html_favicon_url = "https://actix.rs/favicon.ico")] diff --git a/bytestring/Cargo.toml b/bytestring/Cargo.toml index 067a7fbe..a7b92d7c 100644 --- a/bytestring/Cargo.toml +++ b/bytestring/Cargo.toml @@ -2,10 +2,7 @@ name = "bytestring" version = "1.4.0" description = "A UTF-8 encoded read-only string using `Bytes` as storage" -authors = [ - "Nikolay Kim ", - "Rob Ede ", -] +authors = ["Nikolay Kim ", "Rob Ede "] keywords = ["string", "bytes", "utf8", "web", "bytestring"] categories = ["no-std", "web-programming"] homepage = "https://actix.rs" @@ -15,10 +12,7 @@ edition.workspace = true rust-version.workspace = true [package.metadata.cargo_check_external_types] -allowed_external_types = [ - "bytes::*", - "serde::*", -] +allowed_external_types = ["bytes::*", "serde::*"] [dependencies] bytes = { version = "1.2", default-features = false } @@ -28,3 +22,6 @@ serde = { version = "1", optional = true } ahash = { version = "0.8", default-features = false } serde_json = "1" static_assertions = "1.1" + +[lints] +workspace = true diff --git a/bytestring/src/lib.rs b/bytestring/src/lib.rs index 1108c449..d0d05a20 100644 --- a/bytestring/src/lib.rs +++ b/bytestring/src/lib.rs @@ -3,8 +3,6 @@ //! See docs for [`ByteString`]. #![no_std] -#![deny(rust_2018_idioms, nonstandard_style)] -#![warn(future_incompatible, missing_docs)] extern crate alloc; diff --git a/local-channel/Cargo.toml b/local-channel/Cargo.toml index 9577fc2f..466b9a40 100644 --- a/local-channel/Cargo.toml +++ b/local-channel/Cargo.toml @@ -2,10 +2,7 @@ name = "local-channel" version = "0.1.5" description = "A non-threadsafe multi-producer, single-consumer, futures-aware, FIFO queue" -authors = [ - "Nikolay Kim ", - "Rob Ede ", -] +authors = ["Nikolay Kim ", "Rob Ede "] repository = "https://github.com/actix/actix-net" keywords = ["channel", "local", "futures"] license.workspace = true @@ -13,10 +10,7 @@ edition.workspace = true rust-version.workspace = true [package.metadata.cargo_check_external_types] -allowed_external_types = [ - "futures_core::*", - "futures_sink::*", -] +allowed_external_types = ["futures_core::*", "futures_sink::*"] [dependencies] futures-core = "0.3.17" diff --git a/local-waker/Cargo.toml b/local-waker/Cargo.toml index d6f25051..772dea55 100644 --- a/local-waker/Cargo.toml +++ b/local-waker/Cargo.toml @@ -2,10 +2,7 @@ name = "local-waker" version = "0.1.4" description = "A synchronization primitive for thread-local task wakeup" -authors = [ - "Nikolay Kim ", - "Rob Ede ", -] +authors = ["Nikolay Kim ", "Rob Ede "] repository = "https://github.com/actix/actix-net" keywords = ["waker", "local", "futures", "no-std"] categories = ["asynchronous", "no-std"] From 8097af6a27a12edda680c98ab569d0b3db1a855c Mon Sep 17 00:00:00 2001 From: Rob Ede Date: Sun, 29 Dec 2024 14:31:46 +0000 Subject: [PATCH 239/410] chore: allow missing docs on tests --- actix-macros/tests/trybuild.rs | 2 ++ actix-rt/tests/tests.rs | 2 ++ 2 files changed, 4 insertions(+) diff --git a/actix-macros/tests/trybuild.rs b/actix-macros/tests/trybuild.rs index 5cfb1b6e..f50dd8c7 100644 --- a/actix-macros/tests/trybuild.rs +++ b/actix-macros/tests/trybuild.rs @@ -1,3 +1,5 @@ +#![allow(missing_docs)] + #[rustversion_msrv::msrv] #[test] fn compile_macros() { diff --git a/actix-rt/tests/tests.rs b/actix-rt/tests/tests.rs index 330e27ff..ae4c6812 100644 --- a/actix-rt/tests/tests.rs +++ b/actix-rt/tests/tests.rs @@ -1,3 +1,5 @@ +#![allow(missing_docs)] + use std::{ future::Future, time::{Duration, Instant}, From b87174b5f2d2913673757060eb7051ca6c42a2b9 Mon Sep 17 00:00:00 2001 From: Rob Ede Date: Sun, 29 Dec 2024 14:34:28 +0000 Subject: [PATCH 240/410] chore: allow missing docs on tests --- actix-server/tests/server.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/actix-server/tests/server.rs b/actix-server/tests/server.rs index a46652d1..fa1225f1 100644 --- a/actix-server/tests/server.rs +++ b/actix-server/tests/server.rs @@ -1,4 +1,4 @@ -#![allow(clippy::let_underscore_future)] +#![allow(clippy::let_underscore_future, missing_docs)] use std::{ net, From 8d1cd2ec8783f3b3a304658edbac3320127dda4d Mon Sep 17 00:00:00 2001 From: Rob Ede Date: Sun, 29 Dec 2024 14:40:37 +0000 Subject: [PATCH 241/410] chore: allow missing docs on tests --- actix-codec/tests/test_framed_sink.rs | 2 ++ actix-server/tests/testing_server.rs | 2 ++ actix-tls/tests/test_connect.rs | 1 + actix-tls/tests/test_resolvers.rs | 1 + 4 files changed, 6 insertions(+) diff --git a/actix-codec/tests/test_framed_sink.rs b/actix-codec/tests/test_framed_sink.rs index 8c98ff18..4c911199 100644 --- a/actix-codec/tests/test_framed_sink.rs +++ b/actix-codec/tests/test_framed_sink.rs @@ -1,3 +1,5 @@ +#![allow(missing_docs)] + use std::{ collections::VecDeque, io::{self, Write}, diff --git a/actix-server/tests/testing_server.rs b/actix-server/tests/testing_server.rs index 921caa05..ab3dc3f8 100644 --- a/actix-server/tests/testing_server.rs +++ b/actix-server/tests/testing_server.rs @@ -1,3 +1,5 @@ +#![allow(missing_docs)] + use std::net; use actix_rt::net::TcpStream; diff --git a/actix-tls/tests/test_connect.rs b/actix-tls/tests/test_connect.rs index c0a7fa76..f8aec7c5 100644 --- a/actix-tls/tests/test_connect.rs +++ b/actix-tls/tests/test_connect.rs @@ -1,4 +1,5 @@ #![cfg(feature = "connect")] +#![allow(missing_docs)] use std::{ io, diff --git a/actix-tls/tests/test_resolvers.rs b/actix-tls/tests/test_resolvers.rs index 24f22732..6d7a94c5 100644 --- a/actix-tls/tests/test_resolvers.rs +++ b/actix-tls/tests/test_resolvers.rs @@ -1,4 +1,5 @@ #![cfg(feature = "connect")] +#![allow(missing_docs)] use std::{ io, From 1a0f44fff152c60477a3fec8b527acb4aba2a924 Mon Sep 17 00:00:00 2001 From: Rob Ede Date: Sun, 29 Dec 2024 14:44:11 +0000 Subject: [PATCH 242/410] chore: allow missing docs on tests --- README.md | 2 +- actix-tls/tests/test_connect.rs | 2 +- actix-tls/tests/test_resolvers.rs | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 9d99d5ee..3193bd09 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,7 @@ > A collection of lower-level libraries for composable network services. [![CI](https://github.com/actix/actix-net/actions/workflows/ci.yml/badge.svg?event=push&style=flat-square)](https://github.com/actix/actix-net/actions/workflows/ci.yml) -[![codecov](https://codecov.io/gh/actix/actix-net/branch/master/graph/badge.svg)](https://codecov.io/gh/actix/actix-net) +[![codecov](https://codecov.io/gh/actix/actix-net/graph/badge.svg?token=8rKIZKtLLm)](https://codecov.io/gh/actix/actix-net) [![Chat on Discord](https://img.shields.io/discord/771444961383153695?label=chat&logo=discord)](https://discord.gg/NWpN5mmg3x) [![Dependency Status](https://deps.rs/repo/github/actix/actix-net/status.svg)](https://deps.rs/repo/github/actix/actix-net) diff --git a/actix-tls/tests/test_connect.rs b/actix-tls/tests/test_connect.rs index f8aec7c5..c6885716 100644 --- a/actix-tls/tests/test_connect.rs +++ b/actix-tls/tests/test_connect.rs @@ -1,5 +1,5 @@ -#![cfg(feature = "connect")] #![allow(missing_docs)] +#![cfg(feature = "connect")] use std::{ io, diff --git a/actix-tls/tests/test_resolvers.rs b/actix-tls/tests/test_resolvers.rs index 6d7a94c5..7543c4e0 100644 --- a/actix-tls/tests/test_resolvers.rs +++ b/actix-tls/tests/test_resolvers.rs @@ -1,5 +1,5 @@ -#![cfg(feature = "connect")] #![allow(missing_docs)] +#![cfg(feature = "connect")] use std::{ io, From 2615a19e2826a786786dd14aeb962aad7493418e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 8 Jan 2025 10:40:41 +0000 Subject: [PATCH 243/410] build(deps): update itertools requirement from 0.13 to 0.14 (#631) Updates the requirements on [itertools](https://github.com/rust-itertools/itertools) to permit the latest version. - [Changelog](https://github.com/rust-itertools/itertools/blob/master/CHANGELOG.md) - [Commits](https://github.com/rust-itertools/itertools/compare/v0.13.0...v0.14.0) --- updated-dependencies: - dependency-name: itertools dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- actix-tls/Cargo.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/actix-tls/Cargo.toml b/actix-tls/Cargo.toml index 1ec3cce2..a855fb83 100644 --- a/actix-tls/Cargo.toml +++ b/actix-tls/Cargo.toml @@ -120,7 +120,7 @@ actix-rt = "2.2" actix-server = "2" bytes = "1" futures-util = { version = "0.3.17", default-features = false, features = ["sink"] } -itertools = "0.13" +itertools = "0.14" pretty_env_logger = "0.5" rcgen = "0.13" rustls-pemfile = "2" From 60945d0481ecc44ddf42fb4003c136550800a55e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 8 Jan 2025 10:40:55 +0000 Subject: [PATCH 244/410] build(deps): bump taiki-e/install-action from 2.47.0 to 2.47.7 (#632) Bumps [taiki-e/install-action](https://github.com/taiki-e/install-action) from 2.47.0 to 2.47.7. - [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.47.0...v2.47.7) --- updated-dependencies: - dependency-name: taiki-e/install-action 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/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 0d30f0e7..4732781a 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.47.0 + uses: taiki-e/install-action@v2.47.7 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.47.0 + uses: taiki-e/install-action@v2.47.7 with: tool: cargo-hack,cargo-minimal-versions diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index c3809715..b4b30d07 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.47.0 + uses: taiki-e/install-action@v2.47.7 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.47.0 + uses: taiki-e/install-action@v2.47.7 with: tool: just diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml index 3ce48dc4..05093fae 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.47.0 + uses: taiki-e/install-action@v2.47.7 with: tool: cargo-llvm-cov diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 15b1a34b..93869537 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.47.0 + uses: taiki-e/install-action@v2.47.7 with: tool: just From 3831e0d7fe1ef4b2147cbe58609dea75599a064d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 13 Jan 2025 20:01:14 +0000 Subject: [PATCH 245/410] build(deps): bump taiki-e/install-action from 2.47.7 to 2.47.12 (#633) Bumps [taiki-e/install-action](https://github.com/taiki-e/install-action) from 2.47.7 to 2.47.12. - [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.47.7...v2.47.12) --- updated-dependencies: - dependency-name: taiki-e/install-action 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/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 4732781a..3a0be324 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.47.7 + uses: taiki-e/install-action@v2.47.12 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.47.7 + uses: taiki-e/install-action@v2.47.12 with: tool: cargo-hack,cargo-minimal-versions diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index b4b30d07..b980ba7a 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.47.7 + uses: taiki-e/install-action@v2.47.12 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.47.7 + uses: taiki-e/install-action@v2.47.12 with: tool: just diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml index 05093fae..edd4888f 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.47.7 + uses: taiki-e/install-action@v2.47.12 with: tool: cargo-llvm-cov diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 93869537..5c7fd6c0 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.47.7 + uses: taiki-e/install-action@v2.47.12 with: tool: just From 0509f0cede6a2a5280d5487309a0cbc66c2251d2 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 23 Jan 2025 01:32:07 +0000 Subject: [PATCH 246/410] build(deps): bump taiki-e/cache-cargo-install-action from 2.0.1 to 2.1.0 (#635) Bumps [taiki-e/cache-cargo-install-action](https://github.com/taiki-e/cache-cargo-install-action) from 2.0.1 to 2.1.0. - [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/v2.0.1...v2.1.0) --- updated-dependencies: - dependency-name: taiki-e/cache-cargo-install-action 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/lint.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 5c7fd6c0..b8587292 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@v2.0.1 + uses: taiki-e/cache-cargo-install-action@v2.1.0 with: tool: cargo-check-external-types From 4746b4e2fabcfacbd91bfcbd904f47bd6ff7384c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 23 Jan 2025 01:32:18 +0000 Subject: [PATCH 247/410] build(deps): bump taiki-e/install-action from 2.47.12 to 2.47.19 (#634) Bumps [taiki-e/install-action](https://github.com/taiki-e/install-action) from 2.47.12 to 2.47.19. - [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.47.12...v2.47.19) --- updated-dependencies: - dependency-name: taiki-e/install-action 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/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 3a0be324..e42ee5e9 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.47.12 + uses: taiki-e/install-action@v2.47.19 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.47.12 + uses: taiki-e/install-action@v2.47.19 with: tool: cargo-hack,cargo-minimal-versions diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index b980ba7a..50e1d39b 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.47.12 + uses: taiki-e/install-action@v2.47.19 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.47.12 + uses: taiki-e/install-action@v2.47.19 with: tool: just diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml index edd4888f..8f6e5cf4 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.47.12 + uses: taiki-e/install-action@v2.47.19 with: tool: cargo-llvm-cov diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index b8587292..d7b70a6c 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.47.12 + uses: taiki-e/install-action@v2.47.19 with: tool: just From 1338276934a30d3a6705094ba760f5cef799d366 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 3 Feb 2025 18:26:03 +0000 Subject: [PATCH 248/410] build(deps): bump taiki-e/install-action from 2.47.19 to 2.48.1 (#639) Bumps [taiki-e/install-action](https://github.com/taiki-e/install-action) from 2.47.19 to 2.48.1. - [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.47.19...v2.48.1) --- updated-dependencies: - dependency-name: taiki-e/install-action 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 e42ee5e9..9457b219 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.47.19 + uses: taiki-e/install-action@v2.48.1 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.47.19 + uses: taiki-e/install-action@v2.48.1 with: tool: cargo-hack,cargo-minimal-versions diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 50e1d39b..527d1dc7 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.47.19 + uses: taiki-e/install-action@v2.48.1 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.47.19 + uses: taiki-e/install-action@v2.48.1 with: tool: just diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml index 8f6e5cf4..da90942d 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.47.19 + uses: taiki-e/install-action@v2.48.1 with: tool: cargo-llvm-cov diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index d7b70a6c..8faeb705 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.47.19 + uses: taiki-e/install-action@v2.48.1 with: tool: just From f062ede06f044618e82cbe2eccc31505ca4a76f4 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 3 Feb 2025 18:56:29 +0000 Subject: [PATCH 249/410] build(deps): bump codecov/codecov-action from 5.1.2 to 5.3.1 (#637) Bumps [codecov/codecov-action](https://github.com/codecov/codecov-action) from 5.1.2 to 5.3.1. - [Release notes](https://github.com/codecov/codecov-action/releases) - [Changelog](https://github.com/codecov/codecov-action/blob/main/CHANGELOG.md) - [Commits](https://github.com/codecov/codecov-action/compare/v5.1.2...v5.3.1) --- updated-dependencies: - dependency-name: codecov/codecov-action 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/coverage.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml index da90942d..40042992 100644 --- a/.github/workflows/coverage.yml +++ b/.github/workflows/coverage.yml @@ -31,7 +31,7 @@ jobs: run: cargo llvm-cov --workspace --all-features --codecov --output-path codecov.json - name: Upload coverage to Codecov - uses: codecov/codecov-action@v5.1.2 + uses: codecov/codecov-action@v5.3.1 with: files: codecov.json fail_ci_if_error: true From 7a7e3de43039e4bcefe3ae881c35496f7d4dca88 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 10 Feb 2025 22:39:50 +0000 Subject: [PATCH 250/410] build(deps): bump taiki-e/cache-cargo-install-action from 2.1.0 to 2.1.1 (#640) Bumps [taiki-e/cache-cargo-install-action](https://github.com/taiki-e/cache-cargo-install-action) from 2.1.0 to 2.1.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/v2.1.0...v2.1.1) --- updated-dependencies: - dependency-name: taiki-e/cache-cargo-install-action 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 8faeb705..9046f567 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@v2.1.0 + uses: taiki-e/cache-cargo-install-action@v2.1.1 with: tool: cargo-check-external-types From d79d500ffee97fd7bf0fcfe1851e370ffdc8cca4 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 10 Feb 2025 22:39:52 +0000 Subject: [PATCH 251/410] build(deps): bump taiki-e/install-action from 2.48.1 to 2.48.6 (#641) Bumps [taiki-e/install-action](https://github.com/taiki-e/install-action) from 2.48.1 to 2.48.6. - [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.48.1...v2.48.6) --- updated-dependencies: - dependency-name: taiki-e/install-action 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/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 9457b219..68d38632 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.48.1 + uses: taiki-e/install-action@v2.48.6 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.48.1 + uses: taiki-e/install-action@v2.48.6 with: tool: cargo-hack,cargo-minimal-versions diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 527d1dc7..65aa30d7 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.48.1 + uses: taiki-e/install-action@v2.48.6 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.48.1 + uses: taiki-e/install-action@v2.48.6 with: tool: just diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml index 40042992..f55d0145 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.48.1 + uses: taiki-e/install-action@v2.48.6 with: tool: cargo-llvm-cov diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 9046f567..5546f2f1 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.48.1 + uses: taiki-e/install-action@v2.48.6 with: tool: just From 0a8f2baa118e379db9c26624e1bb0c7aae01181a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 17 Feb 2025 18:37:23 +0000 Subject: [PATCH 252/410] build(deps): bump taiki-e/install-action from 2.48.6 to 2.48.13 (#642) Bumps [taiki-e/install-action](https://github.com/taiki-e/install-action) from 2.48.6 to 2.48.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.48.6...v2.48.13) --- updated-dependencies: - dependency-name: taiki-e/install-action 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/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 68d38632..ef47abb7 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.48.6 + uses: taiki-e/install-action@v2.48.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.48.6 + uses: taiki-e/install-action@v2.48.13 with: tool: cargo-hack,cargo-minimal-versions diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 65aa30d7..4c1308e6 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.48.6 + uses: taiki-e/install-action@v2.48.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.48.6 + uses: taiki-e/install-action@v2.48.13 with: tool: just diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml index f55d0145..141f4b5e 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.48.6 + uses: taiki-e/install-action@v2.48.13 with: tool: cargo-llvm-cov diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 5546f2f1..ee7c44a8 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.48.6 + uses: taiki-e/install-action@v2.48.13 with: tool: just From b04b88e81a86875990b0b4c0e9527277541a4d55 Mon Sep 17 00:00:00 2001 From: Rob Ede Date: Mon, 24 Feb 2025 22:00:42 +0000 Subject: [PATCH 253/410] ci: fix msrv job --- justfile | 1 + 1 file changed, 1 insertion(+) diff --git a/justfile b/justfile index 86e4816d..177ae8e3 100644 --- a/justfile +++ b/justfile @@ -22,6 +22,7 @@ fmt: [private] downgrade-for-msrv: cargo update -p=clap --precise=4.4.18 + cargo update -p=native-tls --precise=0.2.13 msrv := ``` cargo metadata --format-version=1 \ From 0e119fd9b2a9aeab9f1504e1f94795a051bcc1c8 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 24 Feb 2025 22:22:23 +0000 Subject: [PATCH 254/410] build(deps): bump taiki-e/install-action from 2.48.13 to 2.49.1 (#644) Bumps [taiki-e/install-action](https://github.com/taiki-e/install-action) from 2.48.13 to 2.49.1. - [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.48.13...v2.49.1) --- updated-dependencies: - dependency-name: taiki-e/install-action 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 ef47abb7..d98fc5d0 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.48.13 + uses: taiki-e/install-action@v2.49.1 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.48.13 + uses: taiki-e/install-action@v2.49.1 with: tool: cargo-hack,cargo-minimal-versions diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 4c1308e6..627303cb 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.48.13 + uses: taiki-e/install-action@v2.49.1 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.48.13 + uses: taiki-e/install-action@v2.49.1 with: tool: just diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml index 141f4b5e..a647668f 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.48.13 + uses: taiki-e/install-action@v2.49.1 with: tool: cargo-llvm-cov diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index ee7c44a8..3ac77825 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.48.13 + uses: taiki-e/install-action@v2.49.1 with: tool: just From 4b9f7ae46da3b58d8059476ee92d978357969779 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 24 Feb 2025 22:22:32 +0000 Subject: [PATCH 255/410] build(deps): bump ilammy/setup-nasm from 1.5.1 to 1.5.2 (#643) Bumps [ilammy/setup-nasm](https://github.com/ilammy/setup-nasm) from 1.5.1 to 1.5.2. - [Release notes](https://github.com/ilammy/setup-nasm/releases) - [Commits](https://github.com/ilammy/setup-nasm/compare/v1.5.1...v1.5.2) --- updated-dependencies: - dependency-name: ilammy/setup-nasm 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/ci-post-merge.yml | 2 +- .github/workflows/ci.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci-post-merge.yml b/.github/workflows/ci-post-merge.yml index d98fc5d0..a1971efb 100644 --- a/.github/workflows/ci-post-merge.yml +++ b/.github/workflows/ci-post-merge.yml @@ -47,7 +47,7 @@ jobs: - name: Install nasm if: matrix.target.os == 'windows-latest' - uses: ilammy/setup-nasm@v1.5.1 + uses: ilammy/setup-nasm@v1.5.2 - name: Install OpenSSL if: matrix.target.os == 'windows-latest' diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 627303cb..7e5a371e 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -56,7 +56,7 @@ jobs: - name: Install nasm if: matrix.target.os == 'windows-latest' - uses: ilammy/setup-nasm@v1.5.1 + uses: ilammy/setup-nasm@v1.5.2 - name: Install OpenSSL if: matrix.target.os == 'windows-latest' From 323a2e2931223ea7343d36993091a0b1bfef72ce Mon Sep 17 00:00:00 2001 From: Rob Ede Date: Sat, 8 Mar 2025 17:23:59 +0000 Subject: [PATCH 256/410] fix(server): fix panic in test server --- actix-server/CHANGES.md | 1 + actix-server/src/test_server.rs | 4 +++- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/actix-server/CHANGES.md b/actix-server/CHANGES.md index fa743277..ea3f45b6 100644 --- a/actix-server/CHANGES.md +++ b/actix-server/CHANGES.md @@ -2,6 +2,7 @@ ## Unreleased +- Fix panic in test server. - Minimum supported Rust version (MSRV) is now 1.71. ## 2.5.0 diff --git a/actix-server/src/test_server.rs b/actix-server/src/test_server.rs index 828e0216..5326874f 100644 --- a/actix-server/src/test_server.rs +++ b/actix-server/src/test_server.rs @@ -123,7 +123,9 @@ impl TestServerHandle { /// Connect to server, returning a Tokio `TcpStream`. pub fn connect(&self) -> io::Result { - TcpStream::from_std(net::TcpStream::connect(self.addr)?) + let stream = net::TcpStream::connect(self.addr)?; + stream.set_nonblocking(true)?; + TcpStream::from_std(stream) } } From f4175a4ad4c9a341e9d693cf12a78f2289fb84c8 Mon Sep 17 00:00:00 2001 From: Rob Ede Date: Sat, 8 Mar 2025 17:24:12 +0000 Subject: [PATCH 257/410] chore: fix doc recipe --- justfile | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/justfile b/justfile index 177ae8e3..8d00a935 100644 --- a/justfile +++ b/justfile @@ -70,8 +70,19 @@ test-docs toolchain="": && doc test-all toolchain="": (test toolchain) (test-docs toolchain) # Document crates in workspace. -doc *args: +doc *args: && doc-set-workspace-crates + rm -f "$(cargo metadata --format-version=1 | jq -r '.target_directory')/doc/crates.js" RUSTDOCFLAGS="--cfg=docsrs -Dwarnings" cargo +nightly doc --no-deps --workspace {{ all_crate_features }} {{ args }} + +[private] +doc-set-workspace-crates: + #!/usr/bin/env bash + ( + echo "window.ALL_CRATES =" + cargo metadata --format-version=1 \ + | jq '[.packages[] | select(.source == null) | .targets | map(select(.doc) | .name)] | flatten' + echo ";" + ) > "$(cargo metadata --format-version=1 | jq -r '.target_directory')/doc/crates.js" # Document crates in workspace and watch for changes. doc-watch: From fc902b2d563c7ac43ba5106b26acc1b3e9afe4bd Mon Sep 17 00:00:00 2001 From: Rob Ede Date: Sat, 8 Mar 2025 17:24:18 +0000 Subject: [PATCH 258/410] chore: check lockfile in --- .gitignore | 1 - Cargo.lock | 2915 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 2915 insertions(+), 1 deletion(-) create mode 100644 Cargo.lock diff --git a/.gitignore b/.gitignore index fb5c32e1..5e9a0452 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,3 @@ -Cargo.lock target/ guide/build/ /gh-pages diff --git a/Cargo.lock b/Cargo.lock new file mode 100644 index 00000000..4c9edc24 --- /dev/null +++ b/Cargo.lock @@ -0,0 +1,2915 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 3 + +[[package]] +name = "actix-codec" +version = "0.5.2" +dependencies = [ + "bitflags 2.9.0", + "bytes", + "criterion", + "futures-core", + "futures-sink", + "memchr", + "pin-project-lite", + "tokio", + "tokio-test", + "tokio-util", + "tracing", +] + +[[package]] +name = "actix-macros" +version = "0.2.4" +dependencies = [ + "actix-rt", + "futures-util", + "proc-macro2", + "quote", + "rustversion-msrv", + "syn", + "trybuild", +] + +[[package]] +name = "actix-rt" +version = "2.10.0" +dependencies = [ + "actix-macros", + "futures-core", + "tokio", + "tokio-uring", +] + +[[package]] +name = "actix-server" +version = "2.5.0" +dependencies = [ + "actix-codec", + "actix-rt", + "actix-service", + "actix-utils", + "bytes", + "futures-core", + "futures-util", + "mio", + "pretty_env_logger", + "socket2 0.5.8", + "tokio", + "tokio-uring", + "tracing", +] + +[[package]] +name = "actix-service" +version = "2.0.2" +dependencies = [ + "actix-rt", + "actix-utils", + "futures-core", + "futures-util", + "paste", + "pin-project-lite", +] + +[[package]] +name = "actix-tls" +version = "3.4.0" +dependencies = [ + "actix-codec", + "actix-rt", + "actix-server", + "actix-service", + "actix-utils", + "bytes", + "futures-core", + "futures-util", + "http 0.2.12", + "http 1.2.0", + "impl-more", + "itertools 0.14.0", + "openssl", + "pin-project-lite", + "pretty_env_logger", + "rcgen", + "rustls 0.21.12", + "rustls-native-certs 0.6.3", + "rustls-native-certs 0.7.3", + "rustls-pemfile 2.2.0", + "rustls-pki-types", + "rustls-webpki 0.101.7", + "tokio", + "tokio-native-tls", + "tokio-openssl", + "tokio-rustls 0.23.4", + "tokio-rustls 0.24.1", + "tokio-rustls 0.25.0", + "tokio-rustls 0.26.2", + "tokio-util", + "tracing", + "trust-dns-resolver", + "webpki-roots 0.22.6", + "webpki-roots 0.25.4", + "webpki-roots 0.26.8", +] + +[[package]] +name = "actix-tracing" +version = "0.1.0" +dependencies = [ + "actix-rt", + "actix-service", + "actix-utils", + "slab", + "tracing", + "tracing-futures", +] + +[[package]] +name = "actix-utils" +version = "3.0.1" +dependencies = [ + "actix-rt", + "futures-util", + "local-waker", + "pin-project-lite", + "static_assertions", +] + +[[package]] +name = "addr2line" +version = "0.24.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dfbe277e56a376000877090da837660b4427aad530e3028d44e0bffe4f89a1c1" +dependencies = [ + "gimli", +] + +[[package]] +name = "adler2" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627" + +[[package]] +name = "ahash" +version = "0.8.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011" +dependencies = [ + "cfg-if", + "once_cell", + "version_check", + "zerocopy", +] + +[[package]] +name = "aho-corasick" +version = "1.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916" +dependencies = [ + "memchr", +] + +[[package]] +name = "anes" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4b46cbb362ab8752921c97e041f5e366ee6297bd428a31275b9fcf1e380f7299" + +[[package]] +name = "anstyle" +version = "1.0.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "55cc3b69f167a1ef2e161439aa98aed94e6028e5f9a59be9a6ffb47aef1651f9" + +[[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.87" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d556ec1359574147ec0c4fc5eb525f3f23263a592b1a9c07e0a75b427de55c97" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "autocfg" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" + +[[package]] +name = "aws-lc-rs" +version = "1.12.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e4e8200b9a4a5801a769d50eeabc05670fec7e959a8cb7a63a93e4e519942ae" +dependencies = [ + "aws-lc-sys", + "paste", + "zeroize", +] + +[[package]] +name = "aws-lc-sys" +version = "0.26.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0f9dd2e03ee80ca2822dd6ea431163d2ef259f2066a4d6ccaca6d9dcb386aa43" +dependencies = [ + "bindgen", + "cc", + "cmake", + "dunce", + "fs_extra", + "paste", +] + +[[package]] +name = "backtrace" +version = "0.3.74" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8d82cb332cdfaed17ae235a638438ac4d4839913cc2af585c3c6746e8f8bee1a" +dependencies = [ + "addr2line", + "cfg-if", + "libc", + "miniz_oxide", + "object", + "rustc-demangle", + "windows-targets 0.52.6", +] + +[[package]] +name = "base64" +version = "0.21.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" + +[[package]] +name = "base64" +version = "0.22.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" + +[[package]] +name = "bindgen" +version = "0.69.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "271383c67ccabffb7381723dea0672a673f292304fcb45c01cc648c7a8d58088" +dependencies = [ + "bitflags 2.9.0", + "cexpr", + "clang-sys", + "itertools 0.12.1", + "lazy_static", + "lazycell", + "log", + "prettyplease", + "proc-macro2", + "quote", + "regex", + "rustc-hash", + "shlex", + "syn", + "which", +] + +[[package]] +name = "bitflags" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" + +[[package]] +name = "bitflags" +version = "2.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c8214115b7bf84099f1309324e63141d4c5d7cc26862f97a0a857dbefe165bd" + +[[package]] +name = "bumpalo" +version = "3.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1628fb46dfa0b37568d12e5edd512553eccf6a22a78e8bde00bb4aed84d5bdbf" + +[[package]] +name = "byteorder" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" + +[[package]] +name = "bytes" +version = "1.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d71b6127be86fdcfddb610f7182ac57211d4b18a3e9c82eb2d17662f2227ad6a" + +[[package]] +name = "bytestring" +version = "1.4.0" +dependencies = [ + "ahash", + "bytes", + "serde", + "serde_json", + "static_assertions", +] + +[[package]] +name = "cast" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "37b2a672a2cb129a2e41c10b1224bb368f9f37a2b16b612598138befd7b37eb5" + +[[package]] +name = "cc" +version = "1.2.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "be714c154be609ec7f5dad223a33bf1482fff90472de28f7362806e6d4832b8c" +dependencies = [ + "jobserver", + "libc", + "shlex", +] + +[[package]] +name = "cexpr" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6fac387a98bb7c37292057cffc56d62ecb629900026402633ae9160df93a8766" +dependencies = [ + "nom", +] + +[[package]] +name = "cfg-if" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" + +[[package]] +name = "ciborium" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "42e69ffd6f0917f5c029256a24d0161db17cea3997d185db0d35926308770f0e" +dependencies = [ + "ciborium-io", + "ciborium-ll", + "serde", +] + +[[package]] +name = "ciborium-io" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05afea1e0a06c9be33d539b876f1ce3692f4afea2cb41f740e7743225ed1c757" + +[[package]] +name = "ciborium-ll" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57663b653d948a338bfb3eeba9bb2fd5fcfaecb9e199e87e1eda4d9e8b240fd9" +dependencies = [ + "ciborium-io", + "half", +] + +[[package]] +name = "clang-sys" +version = "1.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b023947811758c97c59bf9d1c188fd619ad4718dcaa767947df1cadb14f39f4" +dependencies = [ + "glob", + "libc", + "libloading", +] + +[[package]] +name = "clap" +version = "4.5.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "027bb0d98429ae334a8698531da7077bdf906419543a35a55c2cb1b66437d767" +dependencies = [ + "clap_builder", +] + +[[package]] +name = "clap_builder" +version = "4.5.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5589e0cba072e0f3d23791efac0fd8627b49c829c196a492e88168e6a669d863" +dependencies = [ + "anstyle", + "clap_lex", +] + +[[package]] +name = "clap_lex" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f46ad14479a25103f283c0f10005961cf086d8dc42205bb44c46ac563475dca6" + +[[package]] +name = "cmake" +version = "0.1.54" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e7caa3f9de89ddbe2c607f4101924c5abec803763ae9534e4f4d7d8f84aa81f0" +dependencies = [ + "cc", +] + +[[package]] +name = "core-foundation" +version = "0.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "core-foundation-sys" +version = "0.8.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" + +[[package]] +name = "criterion" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2b12d017a929603d80db1831cd3a24082f8137ce19c69e6447f54f5fc8d692f" +dependencies = [ + "anes", + "cast", + "ciborium", + "clap", + "criterion-plot", + "is-terminal", + "itertools 0.10.5", + "num-traits", + "once_cell", + "oorandom", + "plotters", + "rayon", + "regex", + "serde", + "serde_derive", + "serde_json", + "tinytemplate", + "walkdir", +] + +[[package]] +name = "criterion-plot" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6b50826342786a51a89e2da3a28f1c32b06e387201bc2d19791f622c673706b1" +dependencies = [ + "cast", + "itertools 0.10.5", +] + +[[package]] +name = "crossbeam-deque" +version = "0.8.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9dd111b7b7f7d55b72c0a6ae361660ee5853c9af73f70c3c2ef6858b950e2e51" +dependencies = [ + "crossbeam-epoch", + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-epoch" +version = "0.9.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e" +dependencies = [ + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-utils" +version = "0.8.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28" + +[[package]] +name = "crunchy" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43da5946c66ffcc7745f48db692ffbb10a83bfe0afd96235c5c2a4fb23994929" + +[[package]] +name = "data-encoding" +version = "2.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "575f75dfd25738df5b91b8e43e14d44bda14637a58fae779fd2b064f8bf3e010" + +[[package]] +name = "deranged" +version = "0.3.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4" +dependencies = [ + "powerfmt", +] + +[[package]] +name = "displaydoc" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "dunce" +version = "1.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "92773504d58c093f6de2459af4af33faa518c13451eb8f2b5698ed3d36e7c813" + +[[package]] +name = "either" +version = "1.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719" + +[[package]] +name = "enum-as-inner" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1e6a265c649f3f5979b601d26f1d05ada116434c87741c9493cb56218f76cbc" +dependencies = [ + "heck", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "env_logger" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4cd405aab171cb85d6735e5c8d9db038c17d3ca007a4d2c25f337935c3d90580" +dependencies = [ + "humantime", + "is-terminal", + "log", + "regex", + "termcolor", +] + +[[package]] +name = "equivalent" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" + +[[package]] +name = "errno" +version = "0.3.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "33d852cb9b869c2a9b3df2f71a3074817f01e1844f839a144f5fcef059a4eb5d" +dependencies = [ + "libc", + "windows-sys 0.59.0", +] + +[[package]] +name = "fastrand" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be" + +[[package]] +name = "fnv" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" + +[[package]] +name = "foreign-types" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" +dependencies = [ + "foreign-types-shared", +] + +[[package]] +name = "foreign-types-shared" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" + +[[package]] +name = "form_urlencoded" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456" +dependencies = [ + "percent-encoding", +] + +[[package]] +name = "fs_extra" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "42703706b716c37f96a77aea830392ad231f44c9e9a67872fa5548707e11b11c" + +[[package]] +name = "futures-channel" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2dff15bf788c671c1934e366d07e30c1814a8ef514e1af724a602e8a2fbe1b10" +dependencies = [ + "futures-core", +] + +[[package]] +name = "futures-core" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e" + +[[package]] +name = "futures-io" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e5c1b78ca4aae1ac06c48a526a655760685149f0d465d21f37abfe57ce075c6" + +[[package]] +name = "futures-macro" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "futures-sink" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e575fab7d1e0dcb8d0c7bcf9a63ee213816ab51902e6d244a95819acacf1d4f7" + +[[package]] +name = "futures-task" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988" + +[[package]] +name = "futures-util" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81" +dependencies = [ + "futures-core", + "futures-macro", + "futures-sink", + "futures-task", + "pin-project-lite", + "pin-utils", + "slab", +] + +[[package]] +name = "getrandom" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7" +dependencies = [ + "cfg-if", + "libc", + "wasi 0.11.0+wasi-snapshot-preview1", +] + +[[package]] +name = "getrandom" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43a49c392881ce6d5c3b8cb70f98717b7c07aabbdff06687b9030dbfbe2725f8" +dependencies = [ + "cfg-if", + "libc", + "wasi 0.13.3+wasi-0.2.2", + "windows-targets 0.52.6", +] + +[[package]] +name = "gimli" +version = "0.31.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f" + +[[package]] +name = "glob" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8d1add55171497b4705a648c6b583acafb01d58050a51727785f0b2c8e0a2b2" + +[[package]] +name = "half" +version = "2.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6dd08c532ae367adf81c312a4580bc67f1d0fe8bc9c460520283f4c0ff277888" +dependencies = [ + "cfg-if", + "crunchy", +] + +[[package]] +name = "hashbrown" +version = "0.15.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf151400ff0baff5465007dd2f3e717f3fe502074ca563069ce3a6629d07b289" + +[[package]] +name = "heck" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" + +[[package]] +name = "hermit-abi" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fbd780fe5cc30f81464441920d82ac8740e2e46b29a6fad543ddd075229ce37e" + +[[package]] +name = "home" +version = "0.5.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "589533453244b0995c858700322199b2becb13b627df2851f64a2775d024abcf" +dependencies = [ + "windows-sys 0.59.0", +] + +[[package]] +name = "hostname" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c731c3e10504cc8ed35cfe2f1db4c9274c3d35fa486e3b31df46f068ef3e867" +dependencies = [ + "libc", + "match_cfg", + "winapi", +] + +[[package]] +name = "http" +version = "0.2.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "601cbb57e577e2f5ef5be8e7b83f0f63994f25aa94d673e54a92d5c516d101f1" +dependencies = [ + "bytes", + "fnv", + "itoa", +] + +[[package]] +name = "http" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f16ca2af56261c99fba8bac40a10251ce8188205a4c448fbb745a2e4daa76fea" +dependencies = [ + "bytes", + "fnv", + "itoa", +] + +[[package]] +name = "humantime" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" + +[[package]] +name = "icu_collections" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db2fa452206ebee18c4b5c2274dbf1de17008e874b4dc4f0aea9d01ca79e4526" +dependencies = [ + "displaydoc", + "yoke", + "zerofrom", + "zerovec", +] + +[[package]] +name = "icu_locid" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13acbb8371917fc971be86fc8057c41a64b521c184808a698c02acc242dbf637" +dependencies = [ + "displaydoc", + "litemap", + "tinystr", + "writeable", + "zerovec", +] + +[[package]] +name = "icu_locid_transform" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "01d11ac35de8e40fdeda00d9e1e9d92525f3f9d887cdd7aa81d727596788b54e" +dependencies = [ + "displaydoc", + "icu_locid", + "icu_locid_transform_data", + "icu_provider", + "tinystr", + "zerovec", +] + +[[package]] +name = "icu_locid_transform_data" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fdc8ff3388f852bede6b579ad4e978ab004f139284d7b28715f773507b946f6e" + +[[package]] +name = "icu_normalizer" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "19ce3e0da2ec68599d193c93d088142efd7f9c5d6fc9b803774855747dc6a84f" +dependencies = [ + "displaydoc", + "icu_collections", + "icu_normalizer_data", + "icu_properties", + "icu_provider", + "smallvec", + "utf16_iter", + "utf8_iter", + "write16", + "zerovec", +] + +[[package]] +name = "icu_normalizer_data" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8cafbf7aa791e9b22bec55a167906f9e1215fd475cd22adfcf660e03e989516" + +[[package]] +name = "icu_properties" +version = "1.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93d6020766cfc6302c15dbbc9c8778c37e62c14427cb7f6e601d849e092aeef5" +dependencies = [ + "displaydoc", + "icu_collections", + "icu_locid_transform", + "icu_properties_data", + "icu_provider", + "tinystr", + "zerovec", +] + +[[package]] +name = "icu_properties_data" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67a8effbc3dd3e4ba1afa8ad918d5684b8868b3b26500753effea8d2eed19569" + +[[package]] +name = "icu_provider" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ed421c8a8ef78d3e2dbc98a973be2f3770cb42b606e3ab18d6237c4dfde68d9" +dependencies = [ + "displaydoc", + "icu_locid", + "icu_provider_macros", + "stable_deref_trait", + "tinystr", + "writeable", + "yoke", + "zerofrom", + "zerovec", +] + +[[package]] +name = "icu_provider_macros" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ec89e9337638ecdc08744df490b221a7399bf8d164eb52a665454e60e075ad6" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "idna" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d20d6b07bfbc108882d88ed8e37d39636dcc260e15e30c45e6ba089610b917c" +dependencies = [ + "unicode-bidi", + "unicode-normalization", +] + +[[package]] +name = "idna" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "686f825264d630750a544639377bae737628043f20d38bbc029e8f29ea968a7e" +dependencies = [ + "idna_adapter", + "smallvec", + "utf8_iter", +] + +[[package]] +name = "idna_adapter" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "daca1df1c957320b2cf139ac61e7bd64fed304c5040df000a745aa1de3b4ef71" +dependencies = [ + "icu_normalizer", + "icu_properties", +] + +[[package]] +name = "impl-more" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e8a5a9a0ff0086c7a148acb942baaabeadf9504d10400b5a05645853729b9cd2" + +[[package]] +name = "indexmap" +version = "2.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8c9c992b02b5b4c94ea26e32fe5bccb7aa7d9f390ab5c1221ff895bc7ea8b652" +dependencies = [ + "equivalent", + "hashbrown", +] + +[[package]] +name = "io-uring" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "595a0399f411a508feb2ec1e970a4a30c249351e30208960d58298de8660b0e5" +dependencies = [ + "bitflags 1.3.2", + "libc", +] + +[[package]] +name = "ipconfig" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b58db92f96b720de98181bbbe63c831e87005ab460c1bf306eb2622b4707997f" +dependencies = [ + "socket2 0.5.8", + "widestring", + "windows-sys 0.48.0", + "winreg", +] + +[[package]] +name = "ipnet" +version = "2.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "469fb0b9cefa57e3ef31275ee7cacb78f2fdca44e4765491884a2b119d4eb130" + +[[package]] +name = "is-terminal" +version = "0.4.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e04d7f318608d35d4b61ddd75cbdaee86b023ebe2bd5a66ee0915f0bf93095a9" +dependencies = [ + "hermit-abi", + "libc", + "windows-sys 0.59.0", +] + +[[package]] +name = "itertools" +version = "0.10.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473" +dependencies = [ + "either", +] + +[[package]] +name = "itertools" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba291022dbbd398a455acf126c1e341954079855bc60dfdda641363bd6922569" +dependencies = [ + "either", +] + +[[package]] +name = "itertools" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b192c782037fadd9cfa75548310488aabdbf3d2da73885b31bd0abd03351285" +dependencies = [ + "either", +] + +[[package]] +name = "itoa" +version = "1.0.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c" + +[[package]] +name = "jobserver" +version = "0.1.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "48d1dbcbbeb6a7fec7e059840aa538bd62aaccf972c7346c4d9d2059312853d0" +dependencies = [ + "libc", +] + +[[package]] +name = "js-sys" +version = "0.3.77" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1cfaf33c695fc6e08064efbc1f72ec937429614f25eef83af942d0e227c3a28f" +dependencies = [ + "once_cell", + "wasm-bindgen", +] + +[[package]] +name = "lazy_static" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" + +[[package]] +name = "lazycell" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55" + +[[package]] +name = "libc" +version = "0.2.170" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "875b3680cb2f8f71bdcf9a30f38d48282f5d3c95cbf9b3fa57269bb5d5c06828" + +[[package]] +name = "libloading" +version = "0.8.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc2f4eb4bc735547cfed7c0a4922cbd04a4655978c09b54f1f7b228750664c34" +dependencies = [ + "cfg-if", + "windows-targets 0.52.6", +] + +[[package]] +name = "linked-hash-map" +version = "0.5.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f" + +[[package]] +name = "linux-raw-sys" +version = "0.4.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d26c52dbd32dccf2d10cac7725f8eae5296885fb5703b261f7d0a0739ec807ab" + +[[package]] +name = "linux-raw-sys" +version = "0.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6db9c683daf087dc577b7506e9695b3d556a9f3849903fa28186283afd6809e9" + +[[package]] +name = "litemap" +version = "0.7.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23fb14cb19457329c82206317a5663005a4d404783dc74f4252769b0d5f42856" + +[[package]] +name = "local-channel" +version = "0.1.5" +dependencies = [ + "futures-core", + "futures-sink", + "futures-util", + "local-waker", + "tokio", +] + +[[package]] +name = "local-waker" +version = "0.1.4" + +[[package]] +name = "lock_api" +version = "0.4.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17" +dependencies = [ + "autocfg", + "scopeguard", +] + +[[package]] +name = "log" +version = "0.4.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "30bde2b3dc3671ae49d8e2e9f044c7c005836e7a023ee57cffa25ab82764bb9e" + +[[package]] +name = "lru-cache" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "31e24f1ad8321ca0e8a1e0ac13f23cb668e6f5466c2c57319f6a5cf1cc8e3b1c" +dependencies = [ + "linked-hash-map", +] + +[[package]] +name = "match_cfg" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ffbee8634e0d45d258acb448e7eaab3fce7a0a467395d4d9f228e3c1f01fb2e4" + +[[package]] +name = "memchr" +version = "2.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" + +[[package]] +name = "minimal-lexical" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" + +[[package]] +name = "miniz_oxide" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e3e04debbb59698c15bacbb6d93584a8c0ca9cc3213cb423d31f760d8843ce5" +dependencies = [ + "adler2", +] + +[[package]] +name = "mio" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2886843bf800fba2e3377cff24abf6379b4c4d5c6681eaf9ea5b0d15090450bd" +dependencies = [ + "libc", + "log", + "wasi 0.11.0+wasi-snapshot-preview1", + "windows-sys 0.52.0", +] + +[[package]] +name = "native-tls" +version = "0.2.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87de3442987e9dbec73158d5c715e7ad9072fda936bb03d19d7fa10e00520f0e" +dependencies = [ + "libc", + "log", + "openssl", + "openssl-probe", + "openssl-sys", + "schannel", + "security-framework", + "security-framework-sys", + "tempfile", +] + +[[package]] +name = "nom" +version = "7.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a" +dependencies = [ + "memchr", + "minimal-lexical", +] + +[[package]] +name = "num-conv" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9" + +[[package]] +name = "num-traits" +version = "0.2.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" +dependencies = [ + "autocfg", +] + +[[package]] +name = "object" +version = "0.36.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62948e14d923ea95ea2c7c86c71013138b66525b86bdc08d2dcc262bdb497b87" +dependencies = [ + "memchr", +] + +[[package]] +name = "once_cell" +version = "1.20.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "945462a4b81e43c4e3ba96bd7b49d834c6f61198356aa858733bc4acf3cbe62e" + +[[package]] +name = "oorandom" +version = "11.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d6790f58c7ff633d8771f42965289203411a5e5c68388703c06e14f24770b41e" + +[[package]] +name = "openssl" +version = "0.10.71" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e14130c6a98cd258fdcb0fb6d744152343ff729cbfcb28c656a9d12b999fbcd" +dependencies = [ + "bitflags 2.9.0", + "cfg-if", + "foreign-types", + "libc", + "once_cell", + "openssl-macros", + "openssl-sys", +] + +[[package]] +name = "openssl-macros" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "openssl-probe" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d05e27ee213611ffe7d6348b942e8f942b37114c00cc03cec254295a4a17852e" + +[[package]] +name = "openssl-sys" +version = "0.9.106" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8bb61ea9811cc39e3c2069f40b8b8e2e70d8569b361f879786cc7ed48b777cdd" +dependencies = [ + "cc", + "libc", + "pkg-config", + "vcpkg", +] + +[[package]] +name = "parking_lot" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27" +dependencies = [ + "lock_api", + "parking_lot_core", +] + +[[package]] +name = "parking_lot_core" +version = "0.9.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8" +dependencies = [ + "cfg-if", + "libc", + "redox_syscall", + "smallvec", + "windows-targets 0.52.6", +] + +[[package]] +name = "paste" +version = "1.0.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" + +[[package]] +name = "pem" +version = "3.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38af38e8470ac9dee3ce1bae1af9c1671fffc44ddfd8bd1d0a3445bf349a8ef3" +dependencies = [ + "base64 0.22.1", + "serde", +] + +[[package]] +name = "percent-encoding" +version = "2.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" + +[[package]] +name = "pin-project" +version = "1.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "677f1add503faace112b9f1373e43e9e054bfdd22ff1a63c1bc485eaec6a6a8a" +dependencies = [ + "pin-project-internal", +] + +[[package]] +name = "pin-project-internal" +version = "1.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e918e4ff8c4549eb882f14b3a4bc8c8bc93de829416eacf579f1207a8fbf861" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "pin-project-lite" +version = "0.2.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b3cff922bd51709b605d9ead9aa71031d81447142d828eb4a6eba76fe619f9b" + +[[package]] +name = "pin-utils" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" + +[[package]] +name = "pkg-config" +version = "0.3.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c" + +[[package]] +name = "plotters" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5aeb6f403d7a4911efb1e33402027fc44f29b5bf6def3effcc22d7bb75f2b747" +dependencies = [ + "num-traits", + "plotters-backend", + "plotters-svg", + "wasm-bindgen", + "web-sys", +] + +[[package]] +name = "plotters-backend" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df42e13c12958a16b3f7f4386b9ab1f3e7933914ecea48da7139435263a4172a" + +[[package]] +name = "plotters-svg" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "51bae2ac328883f7acdfea3d66a7c35751187f870bc81f94563733a154d7a670" +dependencies = [ + "plotters-backend", +] + +[[package]] +name = "powerfmt" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" + +[[package]] +name = "ppv-lite86" +version = "0.2.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77957b295656769bb8ad2b6a6b09d897d94f05c41b069aede1fcdaa675eaea04" +dependencies = [ + "zerocopy", +] + +[[package]] +name = "pretty_env_logger" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "865724d4dbe39d9f3dd3b52b88d859d66bcb2d6a0acfd5ea68a65fb66d4bdc1c" +dependencies = [ + "env_logger", + "log", +] + +[[package]] +name = "prettyplease" +version = "0.2.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1ccf34da56fc294e7d4ccf69a85992b7dfb826b7cf57bac6a70bba3494cc08a" +dependencies = [ + "proc-macro2", + "syn", +] + +[[package]] +name = "proc-macro2" +version = "1.0.94" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a31971752e70b8b2686d7e46ec17fb38dad4051d94024c88df49b667caea9c84" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "quick-error" +version = "1.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0" + +[[package]] +name = "quote" +version = "1.0.39" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c1f1914ce909e1658d9907913b4b91947430c7d9be598b15a1912935b8c04801" +dependencies = [ + "proc-macro2", +] + +[[package]] +name = "rand" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" +dependencies = [ + "libc", + "rand_chacha", + "rand_core", +] + +[[package]] +name = "rand_chacha" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" +dependencies = [ + "ppv-lite86", + "rand_core", +] + +[[package]] +name = "rand_core" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" +dependencies = [ + "getrandom 0.2.15", +] + +[[package]] +name = "rayon" +version = "1.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b418a60154510ca1a002a752ca9714984e21e4241e804d32555251faf8b78ffa" +dependencies = [ + "either", + "rayon-core", +] + +[[package]] +name = "rayon-core" +version = "1.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2" +dependencies = [ + "crossbeam-deque", + "crossbeam-utils", +] + +[[package]] +name = "rcgen" +version = "0.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75e669e5202259b5314d1ea5397316ad400819437857b90861765f24c4cf80a2" +dependencies = [ + "pem", + "ring 0.17.13", + "rustls-pki-types", + "time", + "yasna", +] + +[[package]] +name = "redox_syscall" +version = "0.5.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b8c0c260b63a8219631167be35e6a988e9554dbd323f8bd08439c8ed1302bd1" +dependencies = [ + "bitflags 2.9.0", +] + +[[package]] +name = "regex" +version = "1.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191" +dependencies = [ + "aho-corasick", + "memchr", + "regex-automata", + "regex-syntax", +] + +[[package]] +name = "regex-automata" +version = "0.4.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "809e8dc61f6de73b46c85f4c96486310fe304c434cfa43669d7b40f711150908" +dependencies = [ + "aho-corasick", + "memchr", + "regex-syntax", +] + +[[package]] +name = "regex-syntax" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c" + +[[package]] +name = "resolv-conf" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "52e44394d2086d010551b14b53b1f24e31647570cd1deb0379e2c21b329aba00" +dependencies = [ + "hostname", + "quick-error", +] + +[[package]] +name = "ring" +version = "0.16.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3053cf52e236a3ed746dfc745aa9cacf1b791d846bdaf412f60a8d7d6e17c8fc" +dependencies = [ + "cc", + "libc", + "once_cell", + "spin", + "untrusted 0.7.1", + "web-sys", + "winapi", +] + +[[package]] +name = "ring" +version = "0.17.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "70ac5d832aa16abd7d1def883a8545280c20a60f523a370aa3a9617c2b8550ee" +dependencies = [ + "cc", + "cfg-if", + "getrandom 0.2.15", + "libc", + "untrusted 0.9.0", + "windows-sys 0.52.0", +] + +[[package]] +name = "rustc-demangle" +version = "0.1.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f" + +[[package]] +name = "rustc-hash" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" + +[[package]] +name = "rustix" +version = "0.38.44" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fdb5bc1ae2baa591800df16c9ca78619bf65c0488b41b96ccec5d11220d8c154" +dependencies = [ + "bitflags 2.9.0", + "errno", + "libc", + "linux-raw-sys 0.4.15", + "windows-sys 0.59.0", +] + +[[package]] +name = "rustix" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dade4812df5c384711475be5fcd8c162555352945401aed22a35bffeab61f657" +dependencies = [ + "bitflags 2.9.0", + "errno", + "libc", + "linux-raw-sys 0.9.2", + "windows-sys 0.59.0", +] + +[[package]] +name = "rustls" +version = "0.20.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b80e3dec595989ea8510028f30c408a4630db12c9cbb8de34203b89d6577e99" +dependencies = [ + "log", + "ring 0.16.20", + "sct", + "webpki", +] + +[[package]] +name = "rustls" +version = "0.21.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f56a14d1f48b391359b22f731fd4bd7e43c97f3c50eee276f3aa09c94784d3e" +dependencies = [ + "log", + "ring 0.17.13", + "rustls-webpki 0.101.7", + "sct", +] + +[[package]] +name = "rustls" +version = "0.22.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf4ef73721ac7bcd79b2b315da7779d8fc09718c6b3d2d1b2d94850eb8c18432" +dependencies = [ + "log", + "ring 0.17.13", + "rustls-pki-types", + "rustls-webpki 0.102.8", + "subtle", + "zeroize", +] + +[[package]] +name = "rustls" +version = "0.23.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "47796c98c480fce5406ef69d1c76378375492c3b0a0de587be0c1d9feb12f395" +dependencies = [ + "aws-lc-rs", + "log", + "once_cell", + "rustls-pki-types", + "rustls-webpki 0.102.8", + "subtle", + "zeroize", +] + +[[package]] +name = "rustls-native-certs" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a9aace74cb666635c918e9c12bc0d348266037aa8eb599b5cba565709a8dff00" +dependencies = [ + "openssl-probe", + "rustls-pemfile 1.0.4", + "schannel", + "security-framework", +] + +[[package]] +name = "rustls-native-certs" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5bfb394eeed242e909609f56089eecfe5fda225042e8b171791b9c95f5931e5" +dependencies = [ + "openssl-probe", + "rustls-pemfile 2.2.0", + "rustls-pki-types", + "schannel", + "security-framework", +] + +[[package]] +name = "rustls-pemfile" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c74cae0a4cf6ccbbf5f359f08efdf8ee7e1dc532573bf0db71968cb56b1448c" +dependencies = [ + "base64 0.21.7", +] + +[[package]] +name = "rustls-pemfile" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dce314e5fee3f39953d46bb63bb8a46d40c2f8fb7cc5a3b6cab2bde9721d6e50" +dependencies = [ + "rustls-pki-types", +] + +[[package]] +name = "rustls-pki-types" +version = "1.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "917ce264624a4b4db1c364dcc35bfca9ded014d0a958cd47ad3e960e988ea51c" + +[[package]] +name = "rustls-webpki" +version = "0.101.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b6275d1ee7a1cd780b64aca7726599a1dbc893b1e64144529e55c3c2f745765" +dependencies = [ + "ring 0.17.13", + "untrusted 0.9.0", +] + +[[package]] +name = "rustls-webpki" +version = "0.102.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "64ca1bc8749bd4cf37b5ce386cc146580777b4e8572c7b97baf22c83f444bee9" +dependencies = [ + "aws-lc-rs", + "ring 0.17.13", + "rustls-pki-types", + "untrusted 0.9.0", +] + +[[package]] +name = "rustversion" +version = "1.0.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eded382c5f5f786b989652c49544c4877d9f015cc22e145a5ea8ea66c2921cd2" + +[[package]] +name = "rustversion-msrv" +version = "0.100.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6ceb60223ee771fb5dfe462e29e5ee92bca9a7b9c555584f4d361045dae0e12" + +[[package]] +name = "ryu" +version = "1.0.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f" + +[[package]] +name = "same-file" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" +dependencies = [ + "winapi-util", +] + +[[package]] +name = "schannel" +version = "0.1.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f29ebaa345f945cec9fbbc532eb307f0fdad8161f281b6369539c8d84876b3d" +dependencies = [ + "windows-sys 0.59.0", +] + +[[package]] +name = "scopeguard" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" + +[[package]] +name = "sct" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da046153aa2352493d6cb7da4b6e5c0c057d8a1d0a9aa8560baffdd945acd414" +dependencies = [ + "ring 0.17.13", + "untrusted 0.9.0", +] + +[[package]] +name = "security-framework" +version = "2.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02" +dependencies = [ + "bitflags 2.9.0", + "core-foundation", + "core-foundation-sys", + "libc", + "security-framework-sys", +] + +[[package]] +name = "security-framework-sys" +version = "2.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49db231d56a190491cb4aeda9527f1ad45345af50b0851622a7adb8c03b01c32" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "serde" +version = "1.0.218" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e8dfc9d19bdbf6d17e22319da49161d5d0108e4188e8b680aef6299eed22df60" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde_derive" +version = "1.0.218" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f09503e191f4e797cb8aac08e9a4a4695c5edf6a2e70e376d961ddd5c969f82b" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "serde_json" +version = "1.0.140" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "20068b6e96dc6c9bd23e01df8827e6c7e1f2fddd43c21810382803c136b99373" +dependencies = [ + "itoa", + "memchr", + "ryu", + "serde", +] + +[[package]] +name = "serde_spanned" +version = "0.6.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87607cb1398ed59d48732e575a4c28a7a8ebf2454b964fe3f224f2afc07909e1" +dependencies = [ + "serde", +] + +[[package]] +name = "shlex" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" + +[[package]] +name = "signal-hook-registry" +version = "1.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a9e9e0b4211b72e7b8b6e85c807d36c212bdb33ea8587f7569562a84df5465b1" +dependencies = [ + "libc", +] + +[[package]] +name = "slab" +version = "0.4.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" +dependencies = [ + "autocfg", +] + +[[package]] +name = "smallvec" +version = "1.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7fcf8323ef1faaee30a44a340193b1ac6814fd9b7b4e88e9d4519a3e4abe1cfd" + +[[package]] +name = "socket2" +version = "0.4.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9f7916fc008ca5542385b89a3d3ce689953c143e9304a9bf8beec1de48994c0d" +dependencies = [ + "libc", + "winapi", +] + +[[package]] +name = "socket2" +version = "0.5.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c970269d99b64e60ec3bd6ad27270092a5394c4e309314b18ae3fe575695fbe8" +dependencies = [ + "libc", + "windows-sys 0.52.0", +] + +[[package]] +name = "spin" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d" + +[[package]] +name = "stable_deref_trait" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" + +[[package]] +name = "static_assertions" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" + +[[package]] +name = "subtle" +version = "2.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" + +[[package]] +name = "syn" +version = "2.0.99" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e02e925281e18ffd9d640e234264753c43edc62d64b2d4cf898f1bc5e75f3fc2" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "synstructure" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "target-triple" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ac9aa371f599d22256307c24a9d748c041e548cbf599f35d890f9d365361790" + +[[package]] +name = "tempfile" +version = "3.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c317e0a526ee6120d8dabad239c8dadca62b24b6f168914bbbc8e2fb1f0e567" +dependencies = [ + "cfg-if", + "fastrand", + "getrandom 0.3.1", + "once_cell", + "rustix 1.0.1", + "windows-sys 0.59.0", +] + +[[package]] +name = "termcolor" +version = "1.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "06794f8f6c5c898b3275aebefa6b8a1cb24cd2c6c79397ab15774837a0bc5755" +dependencies = [ + "winapi-util", +] + +[[package]] +name = "thiserror" +version = "1.0.69" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52" +dependencies = [ + "thiserror-impl", +] + +[[package]] +name = "thiserror-impl" +version = "1.0.69" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "time" +version = "0.3.39" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dad298b01a40a23aac4580b67e3dbedb7cc8402f3592d7f49469de2ea4aecdd8" +dependencies = [ + "deranged", + "num-conv", + "powerfmt", + "serde", + "time-core", +] + +[[package]] +name = "time-core" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "765c97a5b985b7c11d7bc27fa927dc4fe6af3a6dfb021d28deb60d3bf51e76ef" + +[[package]] +name = "tinystr" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9117f5d4db391c1cf6927e7bea3db74b9a1c1add8f7eda9ffd5364f40f57b82f" +dependencies = [ + "displaydoc", + "zerovec", +] + +[[package]] +name = "tinytemplate" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "be4d6b5f19ff7664e8c98d03e2139cb510db9b0a60b55f8e8709b689d939b6bc" +dependencies = [ + "serde", + "serde_json", +] + +[[package]] +name = "tinyvec" +version = "1.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09b3661f17e86524eccd4371ab0429194e0d7c008abb45f7a7495b1719463c71" +dependencies = [ + "tinyvec_macros", +] + +[[package]] +name = "tinyvec_macros" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" + +[[package]] +name = "tokio" +version = "1.44.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9975ea0f48b5aa3972bf2d888c238182458437cc2a19374b81b25cdf1023fb3a" +dependencies = [ + "backtrace", + "bytes", + "libc", + "mio", + "parking_lot", + "pin-project-lite", + "signal-hook-registry", + "socket2 0.5.8", + "tokio-macros", + "windows-sys 0.52.0", +] + +[[package]] +name = "tokio-macros" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e06d43f1345a3bcd39f6a56dbb7dcab2ba47e68e8ac134855e7e2bdbaf8cab8" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "tokio-native-tls" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbae76ab933c85776efabc971569dd6119c580d8f5d448769dec1764bf796ef2" +dependencies = [ + "native-tls", + "tokio", +] + +[[package]] +name = "tokio-openssl" +version = "0.6.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "59df6849caa43bb7567f9a36f863c447d95a11d5903c9cc334ba32576a27eadd" +dependencies = [ + "openssl", + "openssl-sys", + "tokio", +] + +[[package]] +name = "tokio-rustls" +version = "0.23.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c43ee83903113e03984cb9e5cebe6c04a5116269e900e3ddba8f068a62adda59" +dependencies = [ + "rustls 0.20.9", + "tokio", + "webpki", +] + +[[package]] +name = "tokio-rustls" +version = "0.24.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c28327cf380ac148141087fbfb9de9d7bd4e84ab5d2c28fbc911d753de8a7081" +dependencies = [ + "rustls 0.21.12", + "tokio", +] + +[[package]] +name = "tokio-rustls" +version = "0.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "775e0c0f0adb3a2f22a00c4745d728b479985fc15ee7ca6a2608388c5569860f" +dependencies = [ + "rustls 0.22.4", + "rustls-pki-types", + "tokio", +] + +[[package]] +name = "tokio-rustls" +version = "0.26.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e727b36a1a0e8b74c376ac2211e40c2c8af09fb4013c60d910495810f008e9b" +dependencies = [ + "rustls 0.23.23", + "tokio", +] + +[[package]] +name = "tokio-stream" +version = "0.1.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eca58d7bba4a75707817a2c44174253f9236b2d5fbd055602e9d5c07c139a047" +dependencies = [ + "futures-core", + "pin-project-lite", + "tokio", +] + +[[package]] +name = "tokio-test" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2468baabc3311435b55dd935f702f42cd1b8abb7e754fb7dfb16bd36aa88f9f7" +dependencies = [ + "async-stream", + "bytes", + "futures-core", + "tokio", + "tokio-stream", +] + +[[package]] +name = "tokio-uring" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "748482e3e13584a34664a710168ad5068e8cb1d968aa4ffa887e83ca6dd27967" +dependencies = [ + "futures-util", + "io-uring", + "libc", + "slab", + "socket2 0.4.10", + "tokio", +] + +[[package]] +name = "tokio-util" +version = "0.7.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d7fcaa8d55a2bdd6b83ace262b016eca0d79ee02818c5c1bcdf0305114081078" +dependencies = [ + "bytes", + "futures-core", + "futures-sink", + "pin-project-lite", + "tokio", +] + +[[package]] +name = "toml" +version = "0.8.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd87a5cdd6ffab733b2f74bc4fd7ee5fff6634124999ac278c35fc78c6120148" +dependencies = [ + "serde", + "serde_spanned", + "toml_datetime", + "toml_edit", +] + +[[package]] +name = "toml_datetime" +version = "0.6.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0dd7358ecb8fc2f8d014bf86f6f638ce72ba252a2c3a2572f2a795f1d23efb41" +dependencies = [ + "serde", +] + +[[package]] +name = "toml_edit" +version = "0.22.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "17b4795ff5edd201c7cd6dca065ae59972ce77d1b80fa0a84d94950ece7d1474" +dependencies = [ + "indexmap", + "serde", + "serde_spanned", + "toml_datetime", + "winnow", +] + +[[package]] +name = "tracing" +version = "0.1.41" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "784e0ac535deb450455cbfa28a6f0df145ea1bb7ae51b821cf5e7927fdcfbdd0" +dependencies = [ + "log", + "pin-project-lite", + "tracing-attributes", + "tracing-core", +] + +[[package]] +name = "tracing-attributes" +version = "0.1.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "395ae124c09f9e6918a2310af6038fba074bcf474ac352496d5910dd59a2226d" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "tracing-core" +version = "0.1.33" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e672c95779cf947c5311f83787af4fa8fffd12fb27e4993211a84bdfd9610f9c" +dependencies = [ + "once_cell", +] + +[[package]] +name = "tracing-futures" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97d095ae15e245a057c8e8451bab9b3ee1e1f68e9ba2b4fbc18d0ac5237835f2" +dependencies = [ + "pin-project", + "tracing", +] + +[[package]] +name = "trust-dns-proto" +version = "0.23.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3119112651c157f4488931a01e586aa459736e9d6046d3bd9105ffb69352d374" +dependencies = [ + "async-trait", + "cfg-if", + "data-encoding", + "enum-as-inner", + "futures-channel", + "futures-io", + "futures-util", + "idna 0.4.0", + "ipnet", + "once_cell", + "rand", + "smallvec", + "thiserror", + "tinyvec", + "tokio", + "tracing", + "url", +] + +[[package]] +name = "trust-dns-resolver" +version = "0.23.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "10a3e6c3aff1718b3c73e395d1f35202ba2ffa847c6a62eea0db8fb4cfe30be6" +dependencies = [ + "cfg-if", + "futures-util", + "ipconfig", + "lru-cache", + "once_cell", + "parking_lot", + "rand", + "resolv-conf", + "smallvec", + "thiserror", + "tokio", + "tracing", + "trust-dns-proto", +] + +[[package]] +name = "trybuild" +version = "1.0.104" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ae08be68c056db96f0e6c6dd820727cca756ced9e1f4cc7fdd20e2a55e23898" +dependencies = [ + "glob", + "serde", + "serde_derive", + "serde_json", + "target-triple", + "termcolor", + "toml", +] + +[[package]] +name = "unicode-bidi" +version = "0.3.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c1cb5db39152898a79168971543b1cb5020dff7fe43c8dc468b0885f5e29df5" + +[[package]] +name = "unicode-ident" +version = "1.0.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a5f39404a5da50712a4c1eecf25e90dd62b613502b7e925fd4e4d19b5c96512" + +[[package]] +name = "unicode-normalization" +version = "0.1.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5033c97c4262335cded6d6fc3e5c18ab755e1a3dc96376350f3d8e9f009ad956" +dependencies = [ + "tinyvec", +] + +[[package]] +name = "untrusted" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a" + +[[package]] +name = "untrusted" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" + +[[package]] +name = "url" +version = "2.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32f8b686cadd1473f4bd0117a5d28d36b1ade384ea9b5069a1c40aefed7fda60" +dependencies = [ + "form_urlencoded", + "idna 1.0.3", + "percent-encoding", +] + +[[package]] +name = "utf16_iter" +version = "1.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8232dd3cdaed5356e0f716d285e4b40b932ac434100fe9b7e0e8e935b9e6246" + +[[package]] +name = "utf8_iter" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" + +[[package]] +name = "vcpkg" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" + +[[package]] +name = "version_check" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" + +[[package]] +name = "walkdir" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b" +dependencies = [ + "same-file", + "winapi-util", +] + +[[package]] +name = "wasi" +version = "0.11.0+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" + +[[package]] +name = "wasi" +version = "0.13.3+wasi-0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26816d2e1a4a36a2940b96c5296ce403917633dff8f3440e9b236ed6f6bacad2" +dependencies = [ + "wit-bindgen-rt", +] + +[[package]] +name = "wasm-bindgen" +version = "0.2.100" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1edc8929d7499fc4e8f0be2262a241556cfc54a0bea223790e71446f2aab1ef5" +dependencies = [ + "cfg-if", + "once_cell", + "rustversion", + "wasm-bindgen-macro", +] + +[[package]] +name = "wasm-bindgen-backend" +version = "0.2.100" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2f0a0651a5c2bc21487bde11ee802ccaf4c51935d0d3d42a6101f98161700bc6" +dependencies = [ + "bumpalo", + "log", + "proc-macro2", + "quote", + "syn", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-macro" +version = "0.2.100" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7fe63fc6d09ed3792bd0897b314f53de8e16568c2b3f7982f468c0bf9bd0b407" +dependencies = [ + "quote", + "wasm-bindgen-macro-support", +] + +[[package]] +name = "wasm-bindgen-macro-support" +version = "0.2.100" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ae87ea40c9f689fc23f209965b6fb8a99ad69aeeb0231408be24920604395de" +dependencies = [ + "proc-macro2", + "quote", + "syn", + "wasm-bindgen-backend", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-shared" +version = "0.2.100" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a05d73b933a847d6cccdda8f838a22ff101ad9bf93e33684f39c1f5f0eece3d" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "web-sys" +version = "0.3.77" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "33b6dd2ef9186f1f2072e409e99cd22a975331a6b3591b12c764e0e55c60d5d2" +dependencies = [ + "js-sys", + "wasm-bindgen", +] + +[[package]] +name = "webpki" +version = "0.22.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed63aea5ce73d0ff405984102c42de94fc55a6b75765d621c65262469b3c9b53" +dependencies = [ + "ring 0.17.13", + "untrusted 0.9.0", +] + +[[package]] +name = "webpki-roots" +version = "0.22.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6c71e40d7d2c34a5106301fb632274ca37242cd0c9d3e64dbece371a40a2d87" +dependencies = [ + "webpki", +] + +[[package]] +name = "webpki-roots" +version = "0.25.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f20c57d8d7db6d3b86154206ae5d8fba62dd39573114de97c2cb0578251f8e1" + +[[package]] +name = "webpki-roots" +version = "0.26.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2210b291f7ea53617fbafcc4939f10914214ec15aace5ba62293a668f322c5c9" +dependencies = [ + "rustls-pki-types", +] + +[[package]] +name = "which" +version = "4.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87ba24419a2078cd2b0f2ede2691b6c66d8e47836da3b6db8265ebad47afbfc7" +dependencies = [ + "either", + "home", + "once_cell", + "rustix 0.38.44", +] + +[[package]] +name = "widestring" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7219d36b6eac893fa81e84ebe06485e7dcbb616177469b142df14f1f4deb1311" + +[[package]] +name = "winapi" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" +dependencies = [ + "winapi-i686-pc-windows-gnu", + "winapi-x86_64-pc-windows-gnu", +] + +[[package]] +name = "winapi-i686-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" + +[[package]] +name = "winapi-util" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf221c93e13a30d793f7645a0e7762c55d169dbb0a49671918a2319d289b10bb" +dependencies = [ + "windows-sys 0.59.0", +] + +[[package]] +name = "winapi-x86_64-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" + +[[package]] +name = "windows-sys" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" +dependencies = [ + "windows-targets 0.48.5", +] + +[[package]] +name = "windows-sys" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" +dependencies = [ + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-sys" +version = "0.59.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" +dependencies = [ + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-targets" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" +dependencies = [ + "windows_aarch64_gnullvm 0.48.5", + "windows_aarch64_msvc 0.48.5", + "windows_i686_gnu 0.48.5", + "windows_i686_msvc 0.48.5", + "windows_x86_64_gnu 0.48.5", + "windows_x86_64_gnullvm 0.48.5", + "windows_x86_64_msvc 0.48.5", +] + +[[package]] +name = "windows-targets" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" +dependencies = [ + "windows_aarch64_gnullvm 0.52.6", + "windows_aarch64_msvc 0.52.6", + "windows_i686_gnu 0.52.6", + "windows_i686_gnullvm", + "windows_i686_msvc 0.52.6", + "windows_x86_64_gnu 0.52.6", + "windows_x86_64_gnullvm 0.52.6", + "windows_x86_64_msvc 0.52.6", +] + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" + +[[package]] +name = "windows_i686_gnu" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" + +[[package]] +name = "windows_i686_gnu" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" + +[[package]] +name = "windows_i686_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" + +[[package]] +name = "windows_i686_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" + +[[package]] +name = "windows_i686_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" + +[[package]] +name = "winnow" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0e7f4ea97f6f78012141bcdb6a216b2609f0979ada50b20ca5b52dde2eac2bb1" +dependencies = [ + "memchr", +] + +[[package]] +name = "winreg" +version = "0.50.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "524e57b2c537c0f9b1e69f1965311ec12182b4122e45035b1508cd24d2adadb1" +dependencies = [ + "cfg-if", + "windows-sys 0.48.0", +] + +[[package]] +name = "wit-bindgen-rt" +version = "0.33.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3268f3d866458b787f390cf61f4bbb563b922d091359f9608842999eaee3943c" +dependencies = [ + "bitflags 2.9.0", +] + +[[package]] +name = "write16" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d1890f4022759daae28ed4fe62859b1236caebfc61ede2f63ed4e695f3f6d936" + +[[package]] +name = "writeable" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e9df38ee2d2c3c5948ea468a8406ff0db0b29ae1ffde1bcf20ef305bcc95c51" + +[[package]] +name = "yasna" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e17bb3549cc1321ae1296b9cdc2698e2b6cb1992adfa19a8c72e5b7a738f44cd" +dependencies = [ + "time", +] + +[[package]] +name = "yoke" +version = "0.7.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "120e6aef9aa629e3d4f52dc8cc43a015c7724194c97dfaf45180d2daf2b77f40" +dependencies = [ + "serde", + "stable_deref_trait", + "yoke-derive", + "zerofrom", +] + +[[package]] +name = "yoke-derive" +version = "0.7.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2380878cad4ac9aac1e2435f3eb4020e8374b5f13c296cb75b4620ff8e229154" +dependencies = [ + "proc-macro2", + "quote", + "syn", + "synstructure", +] + +[[package]] +name = "zerocopy" +version = "0.7.35" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b9b4fd18abc82b8136838da5d50bae7bdea537c574d8dc1a34ed098d6c166f0" +dependencies = [ + "byteorder", + "zerocopy-derive", +] + +[[package]] +name = "zerocopy-derive" +version = "0.7.35" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "zerofrom" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "50cc42e0333e05660c3587f3bf9d0478688e15d870fab3346451ce7f8c9fbea5" +dependencies = [ + "zerofrom-derive", +] + +[[package]] +name = "zerofrom-derive" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502" +dependencies = [ + "proc-macro2", + "quote", + "syn", + "synstructure", +] + +[[package]] +name = "zeroize" +version = "1.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ced3678a2879b30306d323f4542626697a464a97c0a07c9aebf7ebca65cd4dde" + +[[package]] +name = "zerovec" +version = "0.10.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aa2b893d79df23bfb12d5461018d408ea19dfafe76c2c7ef6d4eba614f8ff079" +dependencies = [ + "yoke", + "zerofrom", + "zerovec-derive", +] + +[[package]] +name = "zerovec-derive" +version = "0.10.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6eafa6dfb17584ea3e2bd6e76e0cc15ad7af12b09abdd1ca55961bed9b1063c6" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] From 9d4b1673aac8f359148a667b465069a639a8605e Mon Sep 17 00:00:00 2001 From: Rob Ede Date: Sat, 8 Mar 2025 17:32:46 +0000 Subject: [PATCH 259/410] chore(actix-server): prepare release 2.5.1 --- Cargo.lock | 2 +- actix-server/CHANGES.md | 2 ++ actix-server/Cargo.toml | 2 +- actix-server/README.md | 4 ++-- 4 files changed, 6 insertions(+), 4 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 4c9edc24..30f79e5d 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -44,7 +44,7 @@ dependencies = [ [[package]] name = "actix-server" -version = "2.5.0" +version = "2.5.1" dependencies = [ "actix-codec", "actix-rt", diff --git a/actix-server/CHANGES.md b/actix-server/CHANGES.md index ea3f45b6..4abfedb7 100644 --- a/actix-server/CHANGES.md +++ b/actix-server/CHANGES.md @@ -2,6 +2,8 @@ ## Unreleased +## 2.5.1 + - Fix panic in test server. - Minimum supported Rust version (MSRV) is now 1.71. diff --git a/actix-server/Cargo.toml b/actix-server/Cargo.toml index 6de58fb9..8e44140a 100644 --- a/actix-server/Cargo.toml +++ b/actix-server/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "actix-server" -version = "2.5.0" +version = "2.5.1" authors = [ "Nikolay Kim ", "Rob Ede ", diff --git a/actix-server/README.md b/actix-server/README.md index a73874f8..73b94fe9 100644 --- a/actix-server/README.md +++ b/actix-server/README.md @@ -5,11 +5,11 @@ [![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.5.0)](https://docs.rs/actix-server/2.5.0) +[![Documentation](https://docs.rs/actix-server/badge.svg?version=2.5.1)](https://docs.rs/actix-server/2.5.1) [![Version](https://img.shields.io/badge/rustc-1.52+-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.5.0/status.svg)](https://deps.rs/crate/actix-server/2.5.0) +[![Dependency Status](https://deps.rs/crate/actix-server/2.5.1/status.svg)](https://deps.rs/crate/actix-server/2.5.1) ![Download](https://img.shields.io/crates/d/actix-server.svg) [![Chat on Discord](https://img.shields.io/discord/771444961383153695?label=chat&logo=discord)](https://discord.gg/NWpN5mmg3x) From 15f0b634921a0de14cda0b969ec9a5cf41311c98 Mon Sep 17 00:00:00 2001 From: Rob Ede Date: Sat, 8 Mar 2025 17:37:40 +0000 Subject: [PATCH 260/410] test: fix panic in tokio stream construction --- actix-server/tests/testing_server.rs | 4 +++- justfile | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/actix-server/tests/testing_server.rs b/actix-server/tests/testing_server.rs index ab3dc3f8..2b5b5418 100644 --- a/actix-server/tests/testing_server.rs +++ b/actix-server/tests/testing_server.rs @@ -71,5 +71,7 @@ async fn new_with_builder() { srv.connect().unwrap(); // connect to alt service defined in custom ServerBuilder - TcpStream::from_std(net::TcpStream::connect(alt_addr).unwrap()).unwrap(); + let stream = net::TcpStream::connect(alt_addr).unwrap(); + stream.set_nonblocking(true).unwrap(); + TcpStream::from_std(stream).unwrap(); } diff --git a/justfile b/justfile index 8d00a935..8f227955 100644 --- a/justfile +++ b/justfile @@ -73,7 +73,7 @@ test-all toolchain="": (test toolchain) (test-docs toolchain) doc *args: && doc-set-workspace-crates rm -f "$(cargo metadata --format-version=1 | jq -r '.target_directory')/doc/crates.js" RUSTDOCFLAGS="--cfg=docsrs -Dwarnings" cargo +nightly doc --no-deps --workspace {{ all_crate_features }} {{ args }} - + [private] doc-set-workspace-crates: #!/usr/bin/env bash From 00f40e147169a4506f158d2b798080b61a891717 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 8 Mar 2025 17:52:46 +0000 Subject: [PATCH 261/410] build(deps): bump taiki-e/install-action from 2.49.1 to 2.49.11 (#646) * build(deps): bump taiki-e/install-action from 2.49.1 to 2.49.11 Bumps [taiki-e/install-action](https://github.com/taiki-e/install-action) from 2.49.1 to 2.49.11. - [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.49.1...v2.49.11) --- updated-dependencies: - dependency-name: taiki-e/install-action dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] * ci: fix msrv --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Rob Ede --- .github/workflows/ci-post-merge.yml | 4 ++-- .github/workflows/ci.yml | 4 ++-- .github/workflows/coverage.yml | 2 +- .github/workflows/lint.yml | 2 +- justfile | 2 ++ 5 files changed, 8 insertions(+), 6 deletions(-) diff --git a/.github/workflows/ci-post-merge.yml b/.github/workflows/ci-post-merge.yml index a1971efb..6b6fce96 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.49.1 + uses: taiki-e/install-action@v2.49.11 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.49.1 + uses: taiki-e/install-action@v2.49.11 with: tool: cargo-hack,cargo-minimal-versions diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 7e5a371e..0884637b 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.49.1 + uses: taiki-e/install-action@v2.49.11 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.49.1 + uses: taiki-e/install-action@v2.49.11 with: tool: just diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml index a647668f..792e6133 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.49.1 + uses: taiki-e/install-action@v2.49.11 with: tool: cargo-llvm-cov diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 3ac77825..58676ca7 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.49.1 + uses: taiki-e/install-action@v2.49.11 with: tool: just diff --git a/justfile b/justfile index 8f227955..7265a3ce 100644 --- a/justfile +++ b/justfile @@ -23,6 +23,8 @@ fmt: downgrade-for-msrv: cargo update -p=clap --precise=4.4.18 cargo update -p=native-tls --precise=0.2.13 + cargo update -p=litemap --precise=0.7.4 + cargo update -p=zerofrom --precise=0.1.5 msrv := ``` cargo metadata --format-version=1 \ From 4cf37171b5836404abbbf62e9ddc28aadaa0221e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 8 Mar 2025 18:02:05 +0000 Subject: [PATCH 262/410] build(deps): bump actions-rust-lang/setup-rust-toolchain (#645) Bumps [actions-rust-lang/setup-rust-toolchain](https://github.com/actions-rust-lang/setup-rust-toolchain) from 1.10.1 to 1.11.0. - [Release notes](https://github.com/actions-rust-lang/setup-rust-toolchain/releases) - [Changelog](https://github.com/actions-rust-lang/setup-rust-toolchain/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions-rust-lang/setup-rust-toolchain/compare/v1.10.1...v1.11.0) --- updated-dependencies: - dependency-name: actions-rust-lang/setup-rust-toolchain 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 | 6 +++--- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/.github/workflows/ci-post-merge.yml b/.github/workflows/ci-post-merge.yml index 6b6fce96..e679f98f 100644 --- a/.github/workflows/ci-post-merge.yml +++ b/.github/workflows/ci-post-merge.yml @@ -59,7 +59,7 @@ jobs: echo "RUSTFLAGS=-C target-feature=+crt-static" >> $GITHUB_ENV - name: Install Rust (${{ matrix.version }}) - uses: actions-rust-lang/setup-rust-toolchain@v1.10.1 + uses: actions-rust-lang/setup-rust-toolchain@v1.11.0 with: toolchain: ${{ matrix.version }} @@ -116,7 +116,7 @@ jobs: - uses: actions/checkout@v4 - name: Install Rust (nightly) - uses: actions-rust-lang/setup-rust-toolchain@v1.10.1 + uses: actions-rust-lang/setup-rust-toolchain@v1.11.0 with: toolchain: nightly diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 0884637b..0073392d 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -68,7 +68,7 @@ jobs: echo "RUSTFLAGS=-C target-feature=+crt-static" >> $GITHUB_ENV - name: Install Rust (${{ matrix.version.name }}) - uses: actions-rust-lang/setup-rust-toolchain@v1.10.1 + uses: actions-rust-lang/setup-rust-toolchain@v1.11.0 with: toolchain: ${{ matrix.version.version }} @@ -120,7 +120,7 @@ jobs: - uses: actions/checkout@v4 - name: Install Rust (nightly) - uses: actions-rust-lang/setup-rust-toolchain@v1.10.1 + uses: actions-rust-lang/setup-rust-toolchain@v1.11.0 with: toolchain: nightly diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml index 792e6133..3060854e 100644 --- a/.github/workflows/coverage.yml +++ b/.github/workflows/coverage.yml @@ -18,7 +18,7 @@ jobs: - uses: actions/checkout@v4 - name: Install Rust - uses: actions-rust-lang/setup-rust-toolchain@v1.10.1 + uses: actions-rust-lang/setup-rust-toolchain@v1.11.0 with: components: llvm-tools-preview diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 58676ca7..a388c158 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -18,7 +18,7 @@ jobs: steps: - uses: actions/checkout@v4 - - uses: actions-rust-lang/setup-rust-toolchain@v1.10.1 + - uses: actions-rust-lang/setup-rust-toolchain@v1.11.0 with: toolchain: nightly components: rustfmt @@ -35,7 +35,7 @@ jobs: steps: - uses: actions/checkout@v4 - - uses: actions-rust-lang/setup-rust-toolchain@v1.10.1 + - uses: actions-rust-lang/setup-rust-toolchain@v1.11.0 with: { components: clippy } - uses: giraffate/clippy-action@v1.0.1 @@ -51,7 +51,7 @@ jobs: - uses: actions/checkout@v4 - name: Install Rust (${{ vars.RUST_VERSION_EXTERNAL_TYPES }}) - uses: actions-rust-lang/setup-rust-toolchain@v1.10.1 + uses: actions-rust-lang/setup-rust-toolchain@v1.11.0 with: toolchain: ${{ vars.RUST_VERSION_EXTERNAL_TYPES }} From 6f5b81d2a061dc4b83108ac88b2418083914f36f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 8 Mar 2025 18:07:04 +0000 Subject: [PATCH 263/410] build(deps): bump codecov/codecov-action from 5.3.1 to 5.4.0 (#647) Bumps [codecov/codecov-action](https://github.com/codecov/codecov-action) from 5.3.1 to 5.4.0. - [Release notes](https://github.com/codecov/codecov-action/releases) - [Changelog](https://github.com/codecov/codecov-action/blob/main/CHANGELOG.md) - [Commits](https://github.com/codecov/codecov-action/compare/v5.3.1...v5.4.0) --- updated-dependencies: - dependency-name: codecov/codecov-action 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/coverage.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml index 3060854e..8ae584f9 100644 --- a/.github/workflows/coverage.yml +++ b/.github/workflows/coverage.yml @@ -31,7 +31,7 @@ jobs: run: cargo llvm-cov --workspace --all-features --codecov --output-path codecov.json - name: Upload coverage to Codecov - uses: codecov/codecov-action@v5.3.1 + uses: codecov/codecov-action@v5.4.0 with: files: codecov.json fail_ci_if_error: true From 12df4d7027e4d07d29655c2a87ec86315b3e02d1 Mon Sep 17 00:00:00 2001 From: Dylan Anthony <43723790+dbanty@users.noreply.github.com> Date: Sun, 9 Mar 2025 10:53:48 -0600 Subject: [PATCH 264/410] Remove need for paste (#649) Co-authored-by: Dylan Anthony --- Cargo.lock | 1 - actix-service/Cargo.toml | 1 - actix-service/src/boxed.rs | 46 ++++++++++++++++++++------------------ 3 files changed, 24 insertions(+), 24 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 30f79e5d..d884859a 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -69,7 +69,6 @@ dependencies = [ "actix-utils", "futures-core", "futures-util", - "paste", "pin-project-lite", ] diff --git a/actix-service/Cargo.toml b/actix-service/Cargo.toml index f0be441b..64273943 100644 --- a/actix-service/Cargo.toml +++ b/actix-service/Cargo.toml @@ -12,7 +12,6 @@ rust-version.workspace = true [dependencies] futures-core = { version = "0.3.17", default-features = false } -paste = "1" pin-project-lite = "0.2" [dev-dependencies] diff --git a/actix-service/src/boxed.rs b/actix-service/src/boxed.rs index cc9ad410..e3f7a80b 100644 --- a/actix-service/src/boxed.rs +++ b/actix-service/src/boxed.rs @@ -3,36 +3,38 @@ use alloc::{boxed::Box, rc::Rc}; use core::{future::Future, pin::Pin}; -use paste::paste; - use crate::{Service, ServiceFactory}; /// A boxed future with no send bound or lifetime parameters. pub type BoxFuture = Pin>>; -macro_rules! service_object { - ($name: ident, $type: tt, $fn_name: ident) => { - paste! { - #[doc = "Type alias for service trait object using `" $type "`."] - pub type $name = $type< - dyn Service>>, - >; +/// Type alias for service trait object using [`Box`]. +pub type BoxService = + Box>>>; - #[doc = "Wraps service as a trait object using [`" $name "`]."] - pub fn $fn_name(service: S) -> $name - where - S: Service + 'static, - Req: 'static, - S::Future: 'static, - { - $type::new(ServiceWrapper::new(service)) - } - } - }; +/// Wraps service as a trait object using [`BoxService`]. +pub fn service(service: S) -> BoxService +where + S: Service + 'static, + Req: 'static, + S::Future: 'static, +{ + Box::new(ServiceWrapper::new(service)) } -service_object!(BoxService, Box, service); -service_object!(RcService, Rc, rc_service); +/// Type alias for service trait object using [`Rc`]. +pub type RcService = + Rc>>>; + +/// Wraps service as a trait object using [`RcService`]. +pub fn rc_service(service: S) -> RcService +where + S: Service + 'static, + Req: 'static, + S::Future: 'static, +{ + Rc::new(ServiceWrapper::new(service)) +} struct ServiceWrapper { inner: S, From 70f0008f42ebcc272f56660116e2a85414184c82 Mon Sep 17 00:00:00 2001 From: Rob Ede Date: Sun, 9 Mar 2025 17:36:45 +0000 Subject: [PATCH 265/410] chore(actix-service): prepare release 2.0.3 --- Cargo.lock | 2 +- actix-service/CHANGES.md | 2 ++ actix-service/Cargo.toml | 2 +- actix-service/README.md | 4 ++-- 4 files changed, 6 insertions(+), 4 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index d884859a..fd3a64a2 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -63,7 +63,7 @@ dependencies = [ [[package]] name = "actix-service" -version = "2.0.2" +version = "2.0.3" dependencies = [ "actix-rt", "actix-utils", diff --git a/actix-service/CHANGES.md b/actix-service/CHANGES.md index 2617de5d..b558a869 100644 --- a/actix-service/CHANGES.md +++ b/actix-service/CHANGES.md @@ -2,6 +2,8 @@ ## Unreleased +## 2.0.3 + - Minimum supported Rust version (MSRV) is now 1.71. ## 2.0.2 diff --git a/actix-service/Cargo.toml b/actix-service/Cargo.toml index 64273943..bc9d1acf 100644 --- a/actix-service/Cargo.toml +++ b/actix-service/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "actix-service" -version = "2.0.2" +version = "2.0.3" authors = ["Nikolay Kim ", "Rob Ede "] description = "Service trait and combinators for representing asynchronous request/response operations." keywords = ["network", "framework", "async", "futures", "service"] diff --git a/actix-service/README.md b/actix-service/README.md index 79bf3028..0af08a83 100644 --- a/actix-service/README.md +++ b/actix-service/README.md @@ -3,10 +3,10 @@ > Service trait and combinators for representing asynchronous request/response operations. [![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.2)](https://docs.rs/actix-service/2.0.2) +[![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) ![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.2/status.svg)](https://deps.rs/crate/actix-service/2.0.2) +[![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) [![Chat on Discord](https://img.shields.io/discord/771444961383153695?label=chat&logo=discord)](https://discord.gg/NWpN5mmg3x) From 0915904bdb565e93ad105d0b1b2aeb9b944077a5 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 10 Mar 2025 18:31:58 +0000 Subject: [PATCH 266/410] build(deps): bump serde from 1.0.218 to 1.0.219 (#654) Bumps [serde](https://github.com/serde-rs/serde) from 1.0.218 to 1.0.219. - [Release notes](https://github.com/serde-rs/serde/releases) - [Commits](https://github.com/serde-rs/serde/compare/v1.0.218...v1.0.219) --- updated-dependencies: - dependency-name: serde 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 | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index fd3a64a2..a74aadb4 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1860,18 +1860,18 @@ dependencies = [ [[package]] name = "serde" -version = "1.0.218" +version = "1.0.219" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8dfc9d19bdbf6d17e22319da49161d5d0108e4188e8b680aef6299eed22df60" +checksum = "5f0e2c6ed6606019b4e29e69dbaba95b11854410e5347d525002456dbbb786b6" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.218" +version = "1.0.219" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f09503e191f4e797cb8aac08e9a4a4695c5edf6a2e70e376d961ddd5c969f82b" +checksum = "5b0276cf7f2c73365f7157c8123c21cd9a50fbbd844757af28ca1f5925fc2a00" dependencies = [ "proc-macro2", "quote", From bbb3139c45728d4b55b9f7bd6e134f4d16bdb799 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 10 Mar 2025 18:32:15 +0000 Subject: [PATCH 267/410] build(deps): bump taiki-e/install-action from 2.49.11 to 2.49.19 (#653) Bumps [taiki-e/install-action](https://github.com/taiki-e/install-action) from 2.49.11 to 2.49.19. - [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.49.11...v2.49.19) --- updated-dependencies: - dependency-name: taiki-e/install-action 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/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 e679f98f..1416f520 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.49.11 + uses: taiki-e/install-action@v2.49.19 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.49.11 + uses: taiki-e/install-action@v2.49.19 with: tool: cargo-hack,cargo-minimal-versions diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 0073392d..e4064302 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.49.11 + uses: taiki-e/install-action@v2.49.19 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.49.11 + uses: taiki-e/install-action@v2.49.19 with: tool: just diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml index 8ae584f9..173f5aee 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.49.11 + uses: taiki-e/install-action@v2.49.19 with: tool: cargo-llvm-cov diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index a388c158..5e504c2d 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.49.11 + uses: taiki-e/install-action@v2.49.19 with: tool: just From 82046905683de5b688b652842ea1366c9cd9fdce Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 10 Mar 2025 18:34:13 +0000 Subject: [PATCH 268/410] build(deps): bump syn from 2.0.99 to 2.0.100 (#652) Bumps [syn](https://github.com/dtolnay/syn) from 2.0.99 to 2.0.100. - [Release notes](https://github.com/dtolnay/syn/releases) - [Commits](https://github.com/dtolnay/syn/compare/2.0.99...2.0.100) --- updated-dependencies: - dependency-name: syn 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 a74aadb4..2768ddee 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1975,9 +1975,9 @@ checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" [[package]] name = "syn" -version = "2.0.99" +version = "2.0.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e02e925281e18ffd9d640e234264753c43edc62d64b2d4cf898f1bc5e75f3fc2" +checksum = "b09a44accad81e1ba1cd74a32461ba89dee89095ba17b32f5d03683b1b1fc2a0" dependencies = [ "proc-macro2", "quote", From 9069fd85900c090c1d808a07ae292232bb449ea2 Mon Sep 17 00:00:00 2001 From: Rob Ede Date: Fri, 21 Mar 2025 05:37:50 +0000 Subject: [PATCH 269/410] build: fix msrv --- Cargo.lock | 249 +++++++++++++++++++++++++++++------------------------ justfile | 14 +-- 2 files changed, 147 insertions(+), 116 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 2768ddee..1306f140 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -85,7 +85,7 @@ dependencies = [ "futures-core", "futures-util", "http 0.2.12", - "http 1.2.0", + "http 1.3.1", "impl-more", "itertools 0.14.0", "openssl", @@ -160,7 +160,7 @@ dependencies = [ "cfg-if", "once_cell", "version_check", - "zerocopy", + "zerocopy 0.7.35", ] [[package]] @@ -208,9 +208,9 @@ dependencies = [ [[package]] name = "async-trait" -version = "0.1.87" +version = "0.1.88" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d556ec1359574147ec0c4fc5eb525f3f23263a592b1a9c07e0a75b427de55c97" +checksum = "e539d3fca749fcee5236ab05e93a52867dd549cc157c8cb7f99595f3cedffdb5" dependencies = [ "proc-macro2", "quote", @@ -225,27 +225,25 @@ checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" [[package]] name = "aws-lc-rs" -version = "1.12.5" +version = "1.12.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e4e8200b9a4a5801a769d50eeabc05670fec7e959a8cb7a63a93e4e519942ae" +checksum = "dabb68eb3a7aa08b46fddfd59a3d55c978243557a90ab804769f7e20e67d2b01" dependencies = [ "aws-lc-sys", - "paste", "zeroize", ] [[package]] name = "aws-lc-sys" -version = "0.26.0" +version = "0.27.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f9dd2e03ee80ca2822dd6ea431163d2ef259f2066a4d6ccaca6d9dcb386aa43" +checksum = "77926887776171ced7d662120a75998e444d3750c951abfe07f90da130514b1f" dependencies = [ "bindgen", "cc", "cmake", "dunce", "fs_extra", - "paste", ] [[package]] @@ -316,12 +314,6 @@ version = "3.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1628fb46dfa0b37568d12e5edd512553eccf6a22a78e8bde00bb4aed84d5bdbf" -[[package]] -name = "byteorder" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" - [[package]] name = "bytes" version = "1.10.1" @@ -411,18 +403,18 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.31" +version = "4.5.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "027bb0d98429ae334a8698531da7077bdf906419543a35a55c2cb1b66437d767" +checksum = "6088f3ae8c3608d19260cd7445411865a485688711b78b5be70d78cd96136f83" dependencies = [ "clap_builder", ] [[package]] name = "clap_builder" -version = "4.5.31" +version = "4.5.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5589e0cba072e0f3d23791efac0fd8627b49c829c196a492e88168e6a669d863" +checksum = "22a7ef7f676155edfb82daa97f99441f3ebf4a58d5e32f295a56259f1b6facc8" dependencies = [ "anstyle", "clap_lex", @@ -534,9 +526,9 @@ checksum = "575f75dfd25738df5b91b8e43e14d44bda14637a58fae779fd2b064f8bf3e010" [[package]] name = "deranged" -version = "0.3.11" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4" +checksum = "9c9e6a11ca8224451684bc0d7d5a7adbf8f2fd6887261a1cfc3c0432f9d4068e" dependencies = [ "powerfmt", ] @@ -719,14 +711,14 @@ dependencies = [ [[package]] name = "getrandom" -version = "0.3.1" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43a49c392881ce6d5c3b8cb70f98717b7c07aabbdff06687b9030dbfbe2725f8" +checksum = "73fea8450eea4bac3940448fb7ae50d91f034f941199fcd9d909a5a07aa455f0" dependencies = [ "cfg-if", "libc", - "wasi 0.13.3+wasi-0.2.2", - "windows-targets 0.52.6", + "r-efi", + "wasi 0.14.2+wasi-0.2.4", ] [[package]] @@ -743,9 +735,9 @@ checksum = "a8d1add55171497b4705a648c6b583acafb01d58050a51727785f0b2c8e0a2b2" [[package]] name = "half" -version = "2.4.1" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6dd08c532ae367adf81c312a4580bc67f1d0fe8bc9c460520283f4c0ff277888" +checksum = "7db2ff139bba50379da6aa0766b52fdcb62cb5b263009b09ed58ba604e14bbd1" dependencies = [ "cfg-if", "crunchy", @@ -780,13 +772,13 @@ dependencies = [ [[package]] name = "hostname" -version = "0.3.1" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c731c3e10504cc8ed35cfe2f1db4c9274c3d35fa486e3b31df46f068ef3e867" +checksum = "f9c7c7c8ac16c798734b8a24560c1362120597c40d5e1459f09498f8f6c8f2ba" dependencies = [ + "cfg-if", "libc", - "match_cfg", - "winapi", + "windows", ] [[package]] @@ -802,9 +794,9 @@ dependencies = [ [[package]] name = "http" -version = "1.2.0" +version = "1.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f16ca2af56261c99fba8bac40a10251ce8188205a4c448fbb745a2e4daa76fea" +checksum = "f4a85d31aea989eead29a3aaf9e1115a180df8282431156e533de47660892565" dependencies = [ "bytes", "fnv", @@ -813,9 +805,9 @@ dependencies = [ [[package]] name = "humantime" -version = "2.1.0" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" +checksum = "9b112acc8b3adf4b107a8ec20977da0273a8c386765a3ec0229bd500a1443f9f" [[package]] name = "icu_collections" @@ -974,9 +966,9 @@ checksum = "e8a5a9a0ff0086c7a148acb942baaabeadf9504d10400b5a05645853729b9cd2" [[package]] name = "indexmap" -version = "2.7.1" +version = "2.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c9c992b02b5b4c94ea26e32fe5bccb7aa7d9f390ab5c1221ff895bc7ea8b652" +checksum = "3954d50fe15b02142bf25d3b8bdadb634ec3948f103d04ffe3031bc8fe9d7058" dependencies = [ "equivalent", "hashbrown", @@ -1087,9 +1079,9 @@ checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55" [[package]] name = "libc" -version = "0.2.170" +version = "0.2.171" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "875b3680cb2f8f71bdcf9a30f38d48282f5d3c95cbf9b3fa57269bb5d5c06828" +checksum = "c19937216e9d3aa9956d9bb8dfc0b0c8beb6058fc4f7a4dc4d850edf86a237d6" [[package]] name = "libloading" @@ -1115,9 +1107,9 @@ checksum = "d26c52dbd32dccf2d10cac7725f8eae5296885fb5703b261f7d0a0739ec807ab" [[package]] name = "linux-raw-sys" -version = "0.9.2" +version = "0.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6db9c683daf087dc577b7506e9695b3d556a9f3849903fa28186283afd6809e9" +checksum = "fe7db12097d22ec582439daf8618b8fdd1a7bef6270e9af3b1ebcd30893cf413" [[package]] name = "litemap" @@ -1165,12 +1157,6 @@ dependencies = [ "linked-hash-map", ] -[[package]] -name = "match_cfg" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ffbee8634e0d45d258acb448e7eaab3fce7a0a467395d4d9f228e3c1f01fb2e4" - [[package]] name = "memchr" version = "2.7.4" @@ -1257,9 +1243,9 @@ dependencies = [ [[package]] name = "once_cell" -version = "1.20.3" +version = "1.21.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "945462a4b81e43c4e3ba96bd7b49d834c6f61198356aa858733bc4acf3cbe62e" +checksum = "d75b0bedcc4fe52caa0e03d9f1151a323e4aa5e2d78ba3580400cd3c9e2bc4bc" [[package]] name = "oorandom" @@ -1334,12 +1320,6 @@ dependencies = [ "windows-targets 0.52.6", ] -[[package]] -name = "paste" -version = "1.0.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" - [[package]] name = "pem" version = "3.0.5" @@ -1430,11 +1410,11 @@ checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" [[package]] name = "ppv-lite86" -version = "0.2.20" +version = "0.2.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77957b295656769bb8ad2b6a6b09d897d94f05c41b069aede1fcdaa675eaea04" +checksum = "85eae3c4ed2f50dcfe72643da4befc30deadb458a9b590d720cde2f2b1e97da9" dependencies = [ - "zerocopy", + "zerocopy 0.8.23", ] [[package]] @@ -1449,9 +1429,9 @@ dependencies = [ [[package]] name = "prettyplease" -version = "0.2.30" +version = "0.2.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1ccf34da56fc294e7d4ccf69a85992b7dfb826b7cf57bac6a70bba3494cc08a" +checksum = "5316f57387668042f561aae71480de936257848f9c43ce528e311d89a07cadeb" dependencies = [ "proc-macro2", "syn", @@ -1466,21 +1446,21 @@ dependencies = [ "unicode-ident", ] -[[package]] -name = "quick-error" -version = "1.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0" - [[package]] name = "quote" -version = "1.0.39" +version = "1.0.40" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1f1914ce909e1658d9907913b4b91947430c7d9be598b15a1912935b8c04801" +checksum = "1885c039570dc00dcb4ff087a89e185fd56bae234ddc7f056a945bf36467248d" dependencies = [ "proc-macro2", ] +[[package]] +name = "r-efi" +version = "5.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "74765f6d916ee2faa39bc8e68e4f3ed8949b48cccdac59983d287a7cb71ce9c5" + [[package]] name = "rand" version = "0.8.5" @@ -1538,7 +1518,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "75e669e5202259b5314d1ea5397316ad400819437857b90861765f24c4cf80a2" dependencies = [ "pem", - "ring 0.17.13", + "ring 0.17.14", "rustls-pki-types", "time", "yasna", @@ -1584,12 +1564,11 @@ checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c" [[package]] name = "resolv-conf" -version = "0.7.0" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "52e44394d2086d010551b14b53b1f24e31647570cd1deb0379e2c21b329aba00" +checksum = "48375394603e3dd4b2d64371f7148fd8c7baa2680e28741f2cb8d23b59e3d4c4" dependencies = [ "hostname", - "quick-error", ] [[package]] @@ -1609,9 +1588,9 @@ dependencies = [ [[package]] name = "ring" -version = "0.17.13" +version = "0.17.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70ac5d832aa16abd7d1def883a8545280c20a60f523a370aa3a9617c2b8550ee" +checksum = "a4689e6c2294d81e88dc6261c768b63bc4fcdb852be6d1352498b114f61383b7" dependencies = [ "cc", "cfg-if", @@ -1648,14 +1627,14 @@ dependencies = [ [[package]] name = "rustix" -version = "1.0.1" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dade4812df5c384711475be5fcd8c162555352945401aed22a35bffeab61f657" +checksum = "e56a18552996ac8d29ecc3b190b4fdbb2d91ca4ec396de7bbffaf43f3d637e96" dependencies = [ "bitflags 2.9.0", "errno", "libc", - "linux-raw-sys 0.9.2", + "linux-raw-sys 0.9.3", "windows-sys 0.59.0", ] @@ -1678,7 +1657,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3f56a14d1f48b391359b22f731fd4bd7e43c97f3c50eee276f3aa09c94784d3e" dependencies = [ "log", - "ring 0.17.13", + "ring 0.17.14", "rustls-webpki 0.101.7", "sct", ] @@ -1690,7 +1669,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bf4ef73721ac7bcd79b2b315da7779d8fc09718c6b3d2d1b2d94850eb8c18432" dependencies = [ "log", - "ring 0.17.13", + "ring 0.17.14", "rustls-pki-types", "rustls-webpki 0.102.8", "subtle", @@ -1699,15 +1678,15 @@ dependencies = [ [[package]] name = "rustls" -version = "0.23.23" +version = "0.23.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "47796c98c480fce5406ef69d1c76378375492c3b0a0de587be0c1d9feb12f395" +checksum = "822ee9188ac4ec04a2f0531e55d035fb2de73f18b41a63c70c2712503b6fb13c" dependencies = [ "aws-lc-rs", "log", "once_cell", "rustls-pki-types", - "rustls-webpki 0.102.8", + "rustls-webpki 0.103.0", "subtle", "zeroize", ] @@ -1767,7 +1746,7 @@ version = "0.101.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8b6275d1ee7a1cd780b64aca7726599a1dbc893b1e64144529e55c3c2f745765" dependencies = [ - "ring 0.17.13", + "ring 0.17.14", "untrusted 0.9.0", ] @@ -1776,9 +1755,20 @@ name = "rustls-webpki" version = "0.102.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "64ca1bc8749bd4cf37b5ce386cc146580777b4e8572c7b97baf22c83f444bee9" +dependencies = [ + "ring 0.17.14", + "rustls-pki-types", + "untrusted 0.9.0", +] + +[[package]] +name = "rustls-webpki" +version = "0.103.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0aa4eeac2588ffff23e9d7a7e9b3f971c5fb5b7ebc9452745e0c232c64f83b2f" dependencies = [ "aws-lc-rs", - "ring 0.17.13", + "ring 0.17.14", "rustls-pki-types", "untrusted 0.9.0", ] @@ -1831,7 +1821,7 @@ version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "da046153aa2352493d6cb7da4b6e5c0c057d8a1d0a9aa8560baffdd945acd414" dependencies = [ - "ring 0.17.13", + "ring 0.17.14", "untrusted 0.9.0", ] @@ -2003,15 +1993,14 @@ checksum = "1ac9aa371f599d22256307c24a9d748c041e548cbf599f35d890f9d365361790" [[package]] name = "tempfile" -version = "3.18.0" +version = "3.19.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c317e0a526ee6120d8dabad239c8dadca62b24b6f168914bbbc8e2fb1f0e567" +checksum = "7437ac7763b9b123ccf33c338a5cc1bac6f69b45a136c19bdd8a65e3916435bf" dependencies = [ - "cfg-if", "fastrand", - "getrandom 0.3.1", + "getrandom 0.3.2", "once_cell", - "rustix 1.0.1", + "rustix 1.0.3", "windows-sys 0.59.0", ] @@ -2046,9 +2035,9 @@ dependencies = [ [[package]] name = "time" -version = "0.3.39" +version = "0.3.40" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dad298b01a40a23aac4580b67e3dbedb7cc8402f3592d7f49469de2ea4aecdd8" +checksum = "9d9c75b47bdff86fa3334a3db91356b8d7d86a9b839dab7d0bdc5c3d3a077618" dependencies = [ "deranged", "num-conv", @@ -2059,9 +2048,9 @@ dependencies = [ [[package]] name = "time-core" -version = "0.1.3" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "765c97a5b985b7c11d7bc27fa927dc4fe6af3a6dfb021d28deb60d3bf51e76ef" +checksum = "c9e9a38711f559d9e3ce1cdb06dd7c5b8ea546bc90052da6d06bb76da74bb07c" [[package]] name = "tinystr" @@ -2100,9 +2089,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.44.0" +version = "1.44.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9975ea0f48b5aa3972bf2d888c238182458437cc2a19374b81b25cdf1023fb3a" +checksum = "f382da615b842244d4b8738c82ed1275e6c5dd90c459a30941cd07080b06c91a" dependencies = [ "backtrace", "bytes", @@ -2186,7 +2175,7 @@ version = "0.26.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8e727b36a1a0e8b74c376ac2211e40c2c8af09fb4013c60d910495810f008e9b" dependencies = [ - "rustls 0.23.23", + "rustls 0.23.25", "tokio", ] @@ -2230,9 +2219,9 @@ dependencies = [ [[package]] name = "tokio-util" -version = "0.7.13" +version = "0.7.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7fcaa8d55a2bdd6b83ace262b016eca0d79ee02818c5c1bcdf0305114081078" +checksum = "6b9590b93e6fcc1739458317cccd391ad3955e2bde8913edf6f95f9e65a8f034" dependencies = [ "bytes", "futures-core", @@ -2464,9 +2453,9 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] name = "wasi" -version = "0.13.3+wasi-0.2.2" +version = "0.14.2+wasi-0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26816d2e1a4a36a2940b96c5296ce403917633dff8f3440e9b236ed6f6bacad2" +checksum = "9683f9a5a998d873c0d21fcbe3c083009670149a8fab228644b8bd36b2c48cb3" dependencies = [ "wit-bindgen-rt", ] @@ -2545,7 +2534,7 @@ version = "0.22.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ed63aea5ce73d0ff405984102c42de94fc55a6b75765d621c65262469b3c9b53" dependencies = [ - "ring 0.17.13", + "ring 0.17.14", "untrusted 0.9.0", ] @@ -2587,9 +2576,9 @@ dependencies = [ [[package]] name = "widestring" -version = "1.1.0" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7219d36b6eac893fa81e84ebe06485e7dcbb616177469b142df14f1f4deb1311" +checksum = "dd7cf3379ca1aac9eea11fba24fd7e315d621f8dfe35c8d7d2be8b793726e07d" [[package]] name = "winapi" @@ -2622,6 +2611,25 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" +[[package]] +name = "windows" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e48a53791691ab099e5e2ad123536d0fff50652600abaf43bbf952894110d0be" +dependencies = [ + "windows-core", + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-core" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9" +dependencies = [ + "windows-targets 0.52.6", +] + [[package]] name = "windows-sys" version = "0.48.0" @@ -2772,9 +2780,9 @@ checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" [[package]] name = "winnow" -version = "0.7.3" +version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e7f4ea97f6f78012141bcdb6a216b2609f0979ada50b20ca5b52dde2eac2bb1" +checksum = "0e97b544156e9bebe1a0ffbc03484fc1ffe3100cbce3ffb17eac35f7cdd7ab36" dependencies = [ "memchr", ] @@ -2791,9 +2799,9 @@ dependencies = [ [[package]] name = "wit-bindgen-rt" -version = "0.33.0" +version = "0.39.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3268f3d866458b787f390cf61f4bbb563b922d091359f9608842999eaee3943c" +checksum = "6f42320e61fe2cfd34354ecb597f86f413484a798ba44a8ca1165c58d42da6c1" dependencies = [ "bitflags 2.9.0", ] @@ -2849,8 +2857,16 @@ version = "0.7.35" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1b9b4fd18abc82b8136838da5d50bae7bdea537c574d8dc1a34ed098d6c166f0" dependencies = [ - "byteorder", - "zerocopy-derive", + "zerocopy-derive 0.7.35", +] + +[[package]] +name = "zerocopy" +version = "0.8.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fd97444d05a4328b90e75e503a34bad781f14e28a823ad3557f0750df1ebcbc6" +dependencies = [ + "zerocopy-derive 0.8.23", ] [[package]] @@ -2864,6 +2880,17 @@ dependencies = [ "syn", ] +[[package]] +name = "zerocopy-derive" +version = "0.8.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6352c01d0edd5db859a63e2605f4ea3183ddbd15e2c4a9e7d32184df75e4f154" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "zerofrom" version = "0.1.6" diff --git a/justfile b/justfile index 7265a3ce..30d438f0 100644 --- a/justfile +++ b/justfile @@ -18,13 +18,14 @@ fmt: fd --type=file --hidden -e=toml --exec-batch taplo format cargo +nightly fmt -# Downgrade dev-dependencies necessary to run MSRV checks/tests. +# Downgrade dependencies necessary to run MSRV checks/tests. [private] downgrade-for-msrv: - cargo update -p=clap --precise=4.4.18 - cargo update -p=native-tls --precise=0.2.13 - cargo update -p=litemap --precise=0.7.4 - cargo update -p=zerofrom --precise=0.1.5 + cargo update -p=clap --precise=4.4.18 # next ver: 1.74.0 + cargo update -p=native-tls --precise=0.2.13 # next ver: 1.80.0 + cargo update -p=litemap --precise=0.7.4 # next ver: 1.81.0 + cargo update -p=zerofrom --precise=0.1.5 # next ver: 1.81.0 + cargo update -p=half --precise=2.4.1 # next ver: 1.81.0 msrv := ``` cargo metadata --format-version=1 \ @@ -45,6 +46,9 @@ all_crate_features := if os() == "linux" { "--all-features" } else { "--features clippy toolchain="": cargo {{ toolchain }} clippy --workspace --all-targets {{ all_crate_features }} +# Run Clippy using MSRV. +clippy-msrv: downgrade-for-msrv (clippy msrv_rustup) + # Test workspace code. [macos] [windows] From 887975ab11685e39725f8cacb907fb827cb4976e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 21 Mar 2025 06:02:34 +0000 Subject: [PATCH 270/410] build(deps): bump taiki-e/install-action from 2.49.19 to 2.49.28 (#657) Bumps [taiki-e/install-action](https://github.com/taiki-e/install-action) from 2.49.19 to 2.49.28. - [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.49.19...v2.49.28) --- updated-dependencies: - dependency-name: taiki-e/install-action 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/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 1416f520..9d69318f 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.49.19 + uses: taiki-e/install-action@v2.49.32 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.49.19 + uses: taiki-e/install-action@v2.49.32 with: tool: cargo-hack,cargo-minimal-versions diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index e4064302..a10f349c 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.49.19 + uses: taiki-e/install-action@v2.49.32 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.49.19 + uses: taiki-e/install-action@v2.49.32 with: tool: just diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml index 173f5aee..f3c88ba8 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.49.19 + uses: taiki-e/install-action@v2.49.32 with: tool: cargo-llvm-cov diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 5e504c2d..84ca2abe 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.49.19 + uses: taiki-e/install-action@v2.49.32 with: tool: just From b57ab7e8f0a7b653b2549997944b0859e4124763 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 25 Mar 2025 00:34:54 +0000 Subject: [PATCH 271/410] build(deps): bump taiki-e/install-action from 2.49.32 to 2.49.34 (#659) Bumps [taiki-e/install-action](https://github.com/taiki-e/install-action) from 2.49.32 to 2.49.34. - [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.49.32...v2.49.34) --- updated-dependencies: - dependency-name: taiki-e/install-action 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/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 9d69318f..bf93f7ae 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.49.32 + uses: taiki-e/install-action@v2.49.34 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.49.32 + uses: taiki-e/install-action@v2.49.34 with: tool: cargo-hack,cargo-minimal-versions diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index a10f349c..d6cd8591 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.49.32 + uses: taiki-e/install-action@v2.49.34 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.49.32 + uses: taiki-e/install-action@v2.49.34 with: tool: just diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml index f3c88ba8..0ea5efd3 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.49.32 + uses: taiki-e/install-action@v2.49.34 with: tool: cargo-llvm-cov diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 84ca2abe..3fb2a9a1 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.49.32 + uses: taiki-e/install-action@v2.49.34 with: tool: just From d7f60b88d3d2bdfca03f89d687eb16bc255fe6e8 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 3 Apr 2025 17:35:15 +0100 Subject: [PATCH 272/410] build(deps): bump taiki-e/install-action from 2.49.34 to 2.49.40 (#660) Bumps [taiki-e/install-action](https://github.com/taiki-e/install-action) from 2.49.34 to 2.49.40. - [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.49.34...v2.49.40) --- updated-dependencies: - dependency-name: taiki-e/install-action 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/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 bf93f7ae..5351403a 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.49.34 + uses: taiki-e/install-action@v2.49.40 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.49.34 + uses: taiki-e/install-action@v2.49.40 with: tool: cargo-hack,cargo-minimal-versions diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index d6cd8591..2e29c0da 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.49.34 + uses: taiki-e/install-action@v2.49.40 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.49.34 + uses: taiki-e/install-action@v2.49.40 with: tool: just diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml index 0ea5efd3..16f7291a 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.49.34 + uses: taiki-e/install-action@v2.49.40 with: tool: cargo-llvm-cov diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 3fb2a9a1..1c1132ec 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.49.34 + uses: taiki-e/install-action@v2.49.40 with: tool: just From 7030b26a7ccf24167412a3bf1cbd344972eed193 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 3 Apr 2025 17:35:18 +0100 Subject: [PATCH 273/410] build(deps): bump socket2 from 0.5.8 to 0.5.9 (#661) Bumps [socket2](https://github.com/rust-lang/socket2) from 0.5.8 to 0.5.9. - [Release notes](https://github.com/rust-lang/socket2/releases) - [Changelog](https://github.com/rust-lang/socket2/blob/master/CHANGELOG.md) - [Commits](https://github.com/rust-lang/socket2/commits) --- updated-dependencies: - dependency-name: socket2 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 | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 1306f140..285c59c7 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -55,7 +55,7 @@ dependencies = [ "futures-util", "mio", "pretty_env_logger", - "socket2 0.5.8", + "socket2 0.5.9", "tokio", "tokio-uring", "tracing", @@ -990,7 +990,7 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b58db92f96b720de98181bbbe63c831e87005ab460c1bf306eb2622b4707997f" dependencies = [ - "socket2 0.5.8", + "socket2 0.5.9", "widestring", "windows-sys 0.48.0", "winreg", @@ -1931,9 +1931,9 @@ dependencies = [ [[package]] name = "socket2" -version = "0.5.8" +version = "0.5.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c970269d99b64e60ec3bd6ad27270092a5394c4e309314b18ae3fe575695fbe8" +checksum = "4f5fd57c80058a56cf5c777ab8a126398ece8e442983605d280a44ce79d0edef" dependencies = [ "libc", "windows-sys 0.52.0", @@ -2100,7 +2100,7 @@ dependencies = [ "parking_lot", "pin-project-lite", "signal-hook-registry", - "socket2 0.5.8", + "socket2 0.5.9", "tokio-macros", "windows-sys 0.52.0", ] From f8bea79547defc008db834df18174d2a03fefaf9 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 5 Apr 2025 22:30:14 +0100 Subject: [PATCH 274/410] build(deps): bump openssl from 0.10.71 to 0.10.72 (#662) Bumps [openssl](https://github.com/sfackler/rust-openssl) from 0.10.71 to 0.10.72. - [Release notes](https://github.com/sfackler/rust-openssl/releases) - [Commits](https://github.com/sfackler/rust-openssl/compare/openssl-v0.10.71...openssl-v0.10.72) --- updated-dependencies: - dependency-name: openssl dependency-version: 0.10.72 dependency-type: indirect ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Cargo.lock | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 285c59c7..c24ff429 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1255,9 +1255,9 @@ checksum = "d6790f58c7ff633d8771f42965289203411a5e5c68388703c06e14f24770b41e" [[package]] name = "openssl" -version = "0.10.71" +version = "0.10.72" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e14130c6a98cd258fdcb0fb6d744152343ff729cbfcb28c656a9d12b999fbcd" +checksum = "fedfea7d58a1f73118430a55da6a286e7b044961736ce96a16a17068ea25e5da" dependencies = [ "bitflags 2.9.0", "cfg-if", @@ -1287,9 +1287,9 @@ checksum = "d05e27ee213611ffe7d6348b942e8f942b37114c00cc03cec254295a4a17852e" [[package]] name = "openssl-sys" -version = "0.9.106" +version = "0.9.107" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8bb61ea9811cc39e3c2069f40b8b8e2e70d8569b361f879786cc7ed48b777cdd" +checksum = "8288979acd84749c744a9014b4382d42b8f7b2592847b5afb2ed29e5d16ede07" dependencies = [ "cc", "libc", From 53036ce9c4d5c193b04f892d1a304da07869ccfb Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 7 Apr 2025 23:09:50 +0100 Subject: [PATCH 275/410] build(deps): bump tokio from 1.44.1 to 1.44.2 (#663) Bumps [tokio](https://github.com/tokio-rs/tokio) from 1.44.1 to 1.44.2. - [Release notes](https://github.com/tokio-rs/tokio/releases) - [Commits](https://github.com/tokio-rs/tokio/compare/tokio-1.44.1...tokio-1.44.2) --- updated-dependencies: - dependency-name: tokio dependency-version: 1.44.2 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 ++-- actix-codec/Cargo.toml | 2 +- actix-rt/Cargo.toml | 4 ++-- actix-server/Cargo.toml | 4 ++-- actix-tls/Cargo.toml | 2 +- local-channel/Cargo.toml | 2 +- 6 files changed, 9 insertions(+), 9 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index c24ff429..efcec8fa 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2089,9 +2089,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.44.1" +version = "1.44.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f382da615b842244d4b8738c82ed1275e6c5dd90c459a30941cd07080b06c91a" +checksum = "e6b88822cbe49de4185e3a4cbf8321dd487cf5fe0c5c65695fef6346371e9c48" dependencies = [ "backtrace", "bytes", diff --git a/actix-codec/Cargo.toml b/actix-codec/Cargo.toml index 89e0396a..c6eda83b 100644 --- a/actix-codec/Cargo.toml +++ b/actix-codec/Cargo.toml @@ -20,7 +20,7 @@ futures-core = { version = "0.3.7", default-features = false } futures-sink = { version = "0.3.7", default-features = false } memchr = "2.3" pin-project-lite = "0.2" -tokio = "1.23.1" +tokio = "1.44.2" tokio-util = { version = "0.7", features = ["codec", "io"] } tracing = { version = "0.1.30", default-features = false, features = ["log"] } diff --git a/actix-rt/Cargo.toml b/actix-rt/Cargo.toml index bee209cc..ec022119 100644 --- a/actix-rt/Cargo.toml +++ b/actix-rt/Cargo.toml @@ -23,14 +23,14 @@ io-uring = ["tokio-uring"] actix-macros = { version = "0.2.3", optional = true } futures-core = { version = "0.3", default-features = false } -tokio = { version = "1.23.1", features = ["rt", "net", "parking_lot", "signal", "sync", "time"] } +tokio = { version = "1.44.2", features = ["rt", "net", "parking_lot", "signal", "sync", "time"] } # runtime for `io-uring` feature [target.'cfg(target_os = "linux")'.dependencies] tokio-uring = { version = "0.5", optional = true } [dev-dependencies] -tokio = { version = "1.23.1", features = ["full"] } +tokio = { version = "1.44.2", features = ["full"] } [lints] workspace = true diff --git a/actix-server/Cargo.toml b/actix-server/Cargo.toml index 8e44140a..9e2f138e 100644 --- a/actix-server/Cargo.toml +++ b/actix-server/Cargo.toml @@ -30,7 +30,7 @@ futures-core = { version = "0.3.17", default-features = false, features = ["allo futures-util = { version = "0.3.17", default-features = false, features = ["alloc"] } mio = { version = "1", features = ["os-poll", "net"] } socket2 = "0.5" -tokio = { version = "1.23.1", features = ["sync"] } +tokio = { version = "1.44.2", features = ["sync"] } tracing = { version = "0.1.30", default-features = false, features = ["log"] } # runtime for `io-uring` feature @@ -44,7 +44,7 @@ actix-rt = "2.8" bytes = "1" futures-util = { version = "0.3.17", default-features = false, features = ["sink", "async-await-macro"] } pretty_env_logger = "0.5" -tokio = { version = "1.23.1", features = ["io-util", "rt-multi-thread", "macros", "fs"] } +tokio = { version = "1.44.2", features = ["io-util", "rt-multi-thread", "macros", "fs"] } [lints] workspace = true diff --git a/actix-tls/Cargo.toml b/actix-tls/Cargo.toml index a855fb83..3228dc99 100644 --- a/actix-tls/Cargo.toml +++ b/actix-tls/Cargo.toml @@ -71,7 +71,7 @@ actix-utils = "3" futures-core = { version = "0.3.7", default-features = false, features = ["alloc"] } impl-more = "0.1" pin-project-lite = "0.2.7" -tokio = "1.23.1" +tokio = "1.44.2" tokio-util = "0.7" tracing = { version = "0.1.30", default-features = false, features = ["log"] } diff --git a/local-channel/Cargo.toml b/local-channel/Cargo.toml index 466b9a40..e3ee5b65 100644 --- a/local-channel/Cargo.toml +++ b/local-channel/Cargo.toml @@ -19,4 +19,4 @@ local-waker = "0.1" [dev-dependencies] futures-util = { version = "0.3.17", default-features = false } -tokio = { version = "1.23.1", features = ["rt", "macros"] } +tokio = { version = "1.44.2", features = ["rt", "macros"] } From d95eea8fbeb7c11f02af18bd732982f07e55e186 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 7 Apr 2025 23:10:14 +0100 Subject: [PATCH 276/410] build(deps): bump taiki-e/install-action from 2.49.40 to 2.49.45 (#664) Bumps [taiki-e/install-action](https://github.com/taiki-e/install-action) from 2.49.40 to 2.49.45. - [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.49.40...v2.49.45) --- updated-dependencies: - dependency-name: taiki-e/install-action dependency-version: 2.49.45 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/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 5351403a..5977e9cd 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.49.40 + uses: taiki-e/install-action@v2.49.45 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.49.40 + uses: taiki-e/install-action@v2.49.45 with: tool: cargo-hack,cargo-minimal-versions diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 2e29c0da..baa2b25b 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.49.40 + uses: taiki-e/install-action@v2.49.45 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.49.40 + uses: taiki-e/install-action@v2.49.45 with: tool: just diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml index 16f7291a..69c31dbe 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.49.40 + uses: taiki-e/install-action@v2.49.45 with: tool: cargo-llvm-cov diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 1c1132ec..7acbb4bf 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.49.40 + uses: taiki-e/install-action@v2.49.45 with: tool: just From d61b33928debf441d387d2d802dd5707542e7133 Mon Sep 17 00:00:00 2001 From: Rob Ede Date: Fri, 9 May 2025 04:20:18 +0100 Subject: [PATCH 277/410] chore: bump msrv to 1.74 --- Cargo.toml | 2 +- actix-codec/CHANGES.md | 2 +- actix-macros/CHANGES.md | 2 +- actix-rt/CHANGES.md | 2 +- actix-server/CHANGES.md | 2 ++ actix-service/CHANGES.md | 2 ++ actix-tls/CHANGES.md | 2 +- actix-tracing/CHANGES.md | 2 +- actix-utils/CHANGES.md | 2 +- bytestring/CHANGES.md | 2 ++ local-channel/CHANGES.md | 2 +- local-waker/CHANGES.md | 2 +- 12 files changed, 15 insertions(+), 9 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index 164529aa..668e0d62 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -17,7 +17,7 @@ members = [ [workspace.package] license = "MIT OR Apache-2.0" edition = "2021" -rust-version = "1.71.1" +rust-version = "1.74" [patch.crates-io] actix-codec = { path = "actix-codec" } diff --git a/actix-codec/CHANGES.md b/actix-codec/CHANGES.md index 5757d55e..d2043cbe 100644 --- a/actix-codec/CHANGES.md +++ b/actix-codec/CHANGES.md @@ -2,7 +2,7 @@ ## Unreleased -- Minimum supported Rust version (MSRV) is now 1.71. +- Minimum supported Rust version (MSRV) is now 1.74. ## 0.5.2 diff --git a/actix-macros/CHANGES.md b/actix-macros/CHANGES.md index 398f6d27..42b07b8e 100644 --- a/actix-macros/CHANGES.md +++ b/actix-macros/CHANGES.md @@ -2,7 +2,7 @@ ## Unreleased -- Minimum supported Rust version (MSRV) is now 1.71. +- Minimum supported Rust version (MSRV) is now 1.74. ## 0.2.4 diff --git a/actix-rt/CHANGES.md b/actix-rt/CHANGES.md index 27476ab9..9d9622e2 100644 --- a/actix-rt/CHANGES.md +++ b/actix-rt/CHANGES.md @@ -2,7 +2,7 @@ ## Unreleased -- Minimum supported Rust version (MSRV) is now 1.71. +- Minimum supported Rust version (MSRV) is now 1.74. ## 2.10.0 diff --git a/actix-server/CHANGES.md b/actix-server/CHANGES.md index 4abfedb7..268361c6 100644 --- a/actix-server/CHANGES.md +++ b/actix-server/CHANGES.md @@ -2,6 +2,8 @@ ## Unreleased +- Minimum supported Rust version (MSRV) is now 1.74. + ## 2.5.1 - Fix panic in test server. diff --git a/actix-service/CHANGES.md b/actix-service/CHANGES.md index b558a869..36cc7007 100644 --- a/actix-service/CHANGES.md +++ b/actix-service/CHANGES.md @@ -2,6 +2,8 @@ ## Unreleased +- Minimum supported Rust version (MSRV) is now 1.74. + ## 2.0.3 - Minimum supported Rust version (MSRV) is now 1.71. diff --git a/actix-tls/CHANGES.md b/actix-tls/CHANGES.md index 2654c083..0f334fc0 100644 --- a/actix-tls/CHANGES.md +++ b/actix-tls/CHANGES.md @@ -2,7 +2,7 @@ ## Unreleased -- Minimum supported Rust version (MSRV) is now 1.71. +- Minimum supported Rust version (MSRV) is now 1.74. ## 3.4.0 diff --git a/actix-tracing/CHANGES.md b/actix-tracing/CHANGES.md index c288deaa..fb34ef51 100644 --- a/actix-tracing/CHANGES.md +++ b/actix-tracing/CHANGES.md @@ -2,7 +2,7 @@ ## Unreleased -- Minimum supported Rust version (MSRV) is now 1.71. +- Minimum supported Rust version (MSRV) is now 1.74. ## 0.1.0 diff --git a/actix-utils/CHANGES.md b/actix-utils/CHANGES.md index 4e7cdddd..e836ed92 100644 --- a/actix-utils/CHANGES.md +++ b/actix-utils/CHANGES.md @@ -2,7 +2,7 @@ ## Unreleased -- Minimum supported Rust version (MSRV) is now 1.71. +- Minimum supported Rust version (MSRV) is now 1.74. ## 3.0.1 diff --git a/bytestring/CHANGES.md b/bytestring/CHANGES.md index a5d69fd5..bbb07fff 100644 --- a/bytestring/CHANGES.md +++ b/bytestring/CHANGES.md @@ -2,6 +2,8 @@ ## Unreleased +- Minimum supported Rust version (MSRV) is now 1.74. + ## 1.4.0 - Add `ByteString::split_at()` method. diff --git a/local-channel/CHANGES.md b/local-channel/CHANGES.md index 9b2111f7..65caa7e1 100644 --- a/local-channel/CHANGES.md +++ b/local-channel/CHANGES.md @@ -2,7 +2,7 @@ ## Unreleased -- Minimum supported Rust version (MSRV) is now 1.71. +- Minimum supported Rust version (MSRV) is now 1.74. ## 0.1.5 diff --git a/local-waker/CHANGES.md b/local-waker/CHANGES.md index 5731219b..759a5d2e 100644 --- a/local-waker/CHANGES.md +++ b/local-waker/CHANGES.md @@ -2,7 +2,7 @@ ## Unreleased -- Minimum supported Rust version (MSRV) is now 1.71. +- Minimum supported Rust version (MSRV) is now 1.74. ## 0.1.4 From 69041c4f6c265aea335e5756c550a4e84fb23eaa Mon Sep 17 00:00:00 2001 From: Rob Ede Date: Fri, 9 May 2025 04:29:52 +0100 Subject: [PATCH 278/410] build: rework justfile toolchain input --- .cspell.yml | 3 +++ actix-service/src/ready.rs | 2 +- justfile | 27 +++++++++++++++------------ 3 files changed, 19 insertions(+), 13 deletions(-) create mode 100644 .cspell.yml diff --git a/.cspell.yml b/.cspell.yml new file mode 100644 index 00000000..ce712a0e --- /dev/null +++ b/.cspell.yml @@ -0,0 +1,3 @@ +version: "0.2" +words: + - rustup diff --git a/actix-service/src/ready.rs b/actix-service/src/ready.rs index 8b0c2ea7..7e32fa9e 100644 --- a/actix-service/src/ready.rs +++ b/actix-service/src/ready.rs @@ -1,4 +1,4 @@ -//! When MSRV is 1.48, replace with `core::future::Ready` and `core::future::ready()`. +//! When MSRV is 1.82, replace with `core::future::Ready` and `core::future::ready()`. use core::{ future::Future, diff --git a/justfile b/justfile index 30d438f0..6c02f40a 100644 --- a/justfile +++ b/justfile @@ -21,7 +21,6 @@ fmt: # Downgrade dependencies necessary to run MSRV checks/tests. [private] downgrade-for-msrv: - cargo update -p=clap --precise=4.4.18 # next ver: 1.74.0 cargo update -p=native-tls --precise=0.2.13 # next ver: 1.80.0 cargo update -p=litemap --precise=0.7.4 # next ver: 1.81.0 cargo update -p=zerofrom --precise=0.1.5 # next ver: 1.81.0 @@ -42,38 +41,42 @@ non_linux_all_features_list := ``` ``` all_crate_features := if os() == "linux" { "--all-features" } else { "--features='" + non_linux_all_features_list + "'" } +toolchain := "" + # Run Clippy over workspace. -clippy toolchain="": +clippy: cargo {{ toolchain }} clippy --workspace --all-targets {{ all_crate_features }} # Run Clippy using MSRV. -clippy-msrv: downgrade-for-msrv (clippy msrv_rustup) +clippy-msrv: downgrade-for-msrv + @just toolchain={{ msrv_rustup }} clippy # Test workspace code. [macos] [windows] -test toolchain="": +test: cargo {{ toolchain }} test --lib --tests --package=actix-macros cargo {{ toolchain }} nextest run --no-tests=warn --workspace --exclude=actix-macros --no-default-features cargo {{ toolchain }} nextest run --no-tests=warn --workspace --exclude=actix-macros {{ all_crate_features }} # Test workspace code. [linux] -test toolchain="": +test: cargo {{ toolchain }} test --lib --tests --package=actix-macros cargo {{ toolchain }} nextest run --no-tests=warn --workspace --exclude=actix-macros --no-default-features cargo {{ toolchain }} nextest run --no-tests=warn --workspace --exclude=actix-macros {{ non_linux_all_features_list }} cargo {{ toolchain }} nextest run --no-tests=warn --workspace --exclude=actix-macros {{ all_crate_features }} # Test workspace using MSRV. -test-msrv: downgrade-for-msrv (test msrv_rustup) +test-msrv: downgrade-for-msrv + @just toolchain={{ msrv_rustup }} test # Test workspace docs. -test-docs toolchain="": && doc +test-docs: && doc cargo {{ toolchain }} test --doc --workspace {{ all_crate_features }} --no-fail-fast -- --nocapture # Test workspace. -test-all toolchain="": (test toolchain) (test-docs toolchain) +test-all: test test-docs # Document crates in workspace. doc *args: && doc-set-workspace-crates @@ -96,12 +99,12 @@ doc-watch: cargo watch -- just doc # Check for unintentional external type exposure on all crates in workspace. -check-external-types-all toolchain="+nightly": +check-external-types-all: #!/usr/bin/env bash set -euo pipefail exit=0 for f in $(find . -mindepth 2 -maxdepth 2 -name Cargo.toml | grep -vE "\-codegen/|\-derive/|\-macros/"); do - if ! just check-external-types-manifest "$f" {{ toolchain }}; then exit=1; fi + if ! just toolchain="+nightly" check-external-types-manifest "$f"; then exit=1; fi echo echo done @@ -114,9 +117,9 @@ check-external-types-all-table toolchain="+nightly": for f in $(find . -mindepth 2 -maxdepth 2 -name Cargo.toml | grep -vE "\-codegen/|\-derive/|\-macros/"); do echo echo "Checking for $f" - just check-external-types-manifest "$f" {{ toolchain }} --output-format=markdown-table + just toolchain="+nightly" check-external-types-manifest "$f" --output-format=markdown-table done # Check for unintentional external type exposure on a crate. -check-external-types-manifest manifest_path toolchain="+nightly" *extra_args="": +check-external-types-manifest manifest_path *extra_args="": cargo {{ toolchain }} check-external-types --manifest-path "{{ manifest_path }}" {{ extra_args }} From 2972a5ac08584f42e7f53b902f20510d739a550c Mon Sep 17 00:00:00 2001 From: Rob Ede Date: Fri, 9 May 2025 16:58:28 +0100 Subject: [PATCH 279/410] ci: fix msrv jobs --- Cargo.lock | 30 +++++++++++++++--------------- justfile | 9 +++++---- 2 files changed, 20 insertions(+), 19 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index efcec8fa..2a1a1862 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -594,7 +594,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "33d852cb9b869c2a9b3df2f71a3074817f01e1844f839a144f5fcef059a4eb5d" dependencies = [ "libc", - "windows-sys 0.59.0", + "windows-sys 0.52.0", ] [[package]] @@ -735,9 +735,9 @@ checksum = "a8d1add55171497b4705a648c6b583acafb01d58050a51727785f0b2c8e0a2b2" [[package]] name = "half" -version = "2.5.0" +version = "2.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7db2ff139bba50379da6aa0766b52fdcb62cb5b263009b09ed58ba604e14bbd1" +checksum = "6dd08c532ae367adf81c312a4580bc67f1d0fe8bc9c460520283f4c0ff277888" dependencies = [ "cfg-if", "crunchy", @@ -1010,7 +1010,7 @@ checksum = "e04d7f318608d35d4b61ddd75cbdaee86b023ebe2bd5a66ee0915f0bf93095a9" dependencies = [ "hermit-abi", "libc", - "windows-sys 0.59.0", + "windows-sys 0.52.0", ] [[package]] @@ -1090,7 +1090,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fc2f4eb4bc735547cfed7c0a4922cbd04a4655978c09b54f1f7b228750664c34" dependencies = [ "cfg-if", - "windows-targets 0.52.6", + "windows-targets 0.48.5", ] [[package]] @@ -1113,9 +1113,9 @@ checksum = "fe7db12097d22ec582439daf8618b8fdd1a7bef6270e9af3b1ebcd30893cf413" [[package]] name = "litemap" -version = "0.7.5" +version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23fb14cb19457329c82206317a5663005a4d404783dc74f4252769b0d5f42856" +checksum = "4ee93343901ab17bd981295f2cf0026d4ad018c7c31ba84549a4ddbb47a45104" [[package]] name = "local-channel" @@ -1192,9 +1192,9 @@ dependencies = [ [[package]] name = "native-tls" -version = "0.2.14" +version = "0.2.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87de3442987e9dbec73158d5c715e7ad9072fda936bb03d19d7fa10e00520f0e" +checksum = "0dab59f8e050d5df8e4dd87d9206fb6f65a483e20ac9fda365ade4fab353196c" dependencies = [ "libc", "log", @@ -1622,7 +1622,7 @@ dependencies = [ "errno", "libc", "linux-raw-sys 0.4.15", - "windows-sys 0.59.0", + "windows-sys 0.52.0", ] [[package]] @@ -1635,7 +1635,7 @@ dependencies = [ "errno", "libc", "linux-raw-sys 0.9.3", - "windows-sys 0.59.0", + "windows-sys 0.52.0", ] [[package]] @@ -2001,7 +2001,7 @@ dependencies = [ "getrandom 0.3.2", "once_cell", "rustix 1.0.3", - "windows-sys 0.59.0", + "windows-sys 0.52.0", ] [[package]] @@ -2602,7 +2602,7 @@ version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cf221c93e13a30d793f7645a0e7762c55d169dbb0a49671918a2319d289b10bb" dependencies = [ - "windows-sys 0.59.0", + "windows-sys 0.48.0", ] [[package]] @@ -2893,9 +2893,9 @@ dependencies = [ [[package]] name = "zerofrom" -version = "0.1.6" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50cc42e0333e05660c3587f3bf9d0478688e15d870fab3346451ce7f8c9fbea5" +checksum = "cff3ee08c995dee1859d998dea82f7374f2826091dd9cd47def953cae446cd2e" dependencies = [ "zerofrom-derive", ] diff --git a/justfile b/justfile index 6c02f40a..68be0834 100644 --- a/justfile +++ b/justfile @@ -21,10 +21,11 @@ fmt: # Downgrade dependencies necessary to run MSRV checks/tests. [private] downgrade-for-msrv: - cargo update -p=native-tls --precise=0.2.13 # next ver: 1.80.0 - cargo update -p=litemap --precise=0.7.4 # next ver: 1.81.0 - cargo update -p=zerofrom --precise=0.1.5 # next ver: 1.81.0 - cargo update -p=half --precise=2.4.1 # next ver: 1.81.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 msrv := ``` cargo metadata --format-version=1 \ From 8e7de172214ff98ecdb4b87885b06864501b50cb Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 9 May 2025 16:22:10 +0000 Subject: [PATCH 280/410] build(deps): bump codecov/codecov-action from 5.4.0 to 5.4.2 (#668) Bumps [codecov/codecov-action](https://github.com/codecov/codecov-action) from 5.4.0 to 5.4.2. - [Release notes](https://github.com/codecov/codecov-action/releases) - [Changelog](https://github.com/codecov/codecov-action/blob/main/CHANGELOG.md) - [Commits](https://github.com/codecov/codecov-action/compare/v5.4.0...v5.4.2) --- updated-dependencies: - dependency-name: codecov/codecov-action dependency-version: 5.4.2 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/coverage.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml index 69c31dbe..4bbd13be 100644 --- a/.github/workflows/coverage.yml +++ b/.github/workflows/coverage.yml @@ -31,7 +31,7 @@ jobs: run: cargo llvm-cov --workspace --all-features --codecov --output-path codecov.json - name: Upload coverage to Codecov - uses: codecov/codecov-action@v5.4.0 + uses: codecov/codecov-action@v5.4.2 with: files: codecov.json fail_ci_if_error: true From 809071b8571a0f57e35ff95c7213765d92305932 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 9 May 2025 16:27:27 +0000 Subject: [PATCH 281/410] build(deps): bump tokio-util from 0.7.14 to 0.7.15 (#674) Bumps [tokio-util](https://github.com/tokio-rs/tokio) from 0.7.14 to 0.7.15. - [Release notes](https://github.com/tokio-rs/tokio/releases) - [Commits](https://github.com/tokio-rs/tokio/compare/tokio-util-0.7.14...tokio-util-0.7.15) --- updated-dependencies: - dependency-name: tokio-util dependency-version: 0.7.15 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 | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 2a1a1862..88fa2734 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -594,7 +594,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "33d852cb9b869c2a9b3df2f71a3074817f01e1844f839a144f5fcef059a4eb5d" dependencies = [ "libc", - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] @@ -1010,7 +1010,7 @@ checksum = "e04d7f318608d35d4b61ddd75cbdaee86b023ebe2bd5a66ee0915f0bf93095a9" dependencies = [ "hermit-abi", "libc", - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] @@ -1090,7 +1090,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fc2f4eb4bc735547cfed7c0a4922cbd04a4655978c09b54f1f7b228750664c34" dependencies = [ "cfg-if", - "windows-targets 0.48.5", + "windows-targets 0.52.6", ] [[package]] @@ -1622,7 +1622,7 @@ dependencies = [ "errno", "libc", "linux-raw-sys 0.4.15", - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] @@ -1635,7 +1635,7 @@ dependencies = [ "errno", "libc", "linux-raw-sys 0.9.3", - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] @@ -2001,7 +2001,7 @@ dependencies = [ "getrandom 0.3.2", "once_cell", "rustix 1.0.3", - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] @@ -2219,9 +2219,9 @@ dependencies = [ [[package]] name = "tokio-util" -version = "0.7.14" +version = "0.7.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b9590b93e6fcc1739458317cccd391ad3955e2bde8913edf6f95f9e65a8f034" +checksum = "66a539a9ad6d5d281510d5bd368c973d636c02dbf8a67300bfb6b950696ad7df" dependencies = [ "bytes", "futures-core", @@ -2602,7 +2602,7 @@ version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cf221c93e13a30d793f7645a0e7762c55d169dbb0a49671918a2319d289b10bb" dependencies = [ - "windows-sys 0.48.0", + "windows-sys 0.59.0", ] [[package]] From 67616902cc013d15d89e1fec581e02b8cf48dee4 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 9 May 2025 17:45:02 +0100 Subject: [PATCH 282/410] build(deps): bump taiki-e/install-action from 2.49.45 to 2.50.7 (#675) Bumps [taiki-e/install-action](https://github.com/taiki-e/install-action) from 2.49.45 to 2.50.7. - [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.49.45...v2.50.7) --- updated-dependencies: - dependency-name: taiki-e/install-action dependency-version: 2.50.7 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 5977e9cd..311b8590 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.49.45 + uses: taiki-e/install-action@v2.50.10 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.49.45 + uses: taiki-e/install-action@v2.50.10 with: tool: cargo-hack,cargo-minimal-versions diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index baa2b25b..d861985d 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.49.45 + uses: taiki-e/install-action@v2.50.10 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.49.45 + uses: taiki-e/install-action@v2.50.10 with: tool: just diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml index 4bbd13be..2414ce4f 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.49.45 + uses: taiki-e/install-action@v2.50.10 with: tool: cargo-llvm-cov diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 7acbb4bf..9c442ddd 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.49.45 + uses: taiki-e/install-action@v2.50.10 with: tool: just From d9203797be2e29cd6cd884fe556d010324188000 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 9 May 2025 16:53:20 +0000 Subject: [PATCH 283/410] build(deps): bump actions-rust-lang/setup-rust-toolchain (#671) Bumps [actions-rust-lang/setup-rust-toolchain](https://github.com/actions-rust-lang/setup-rust-toolchain) from 1.11.0 to 1.12.0. - [Release notes](https://github.com/actions-rust-lang/setup-rust-toolchain/releases) - [Changelog](https://github.com/actions-rust-lang/setup-rust-toolchain/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions-rust-lang/setup-rust-toolchain/compare/v1.11.0...v1.12.0) --- updated-dependencies: - dependency-name: actions-rust-lang/setup-rust-toolchain dependency-version: 1.12.0 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 | 6 +++--- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/.github/workflows/ci-post-merge.yml b/.github/workflows/ci-post-merge.yml index 311b8590..e3217b9e 100644 --- a/.github/workflows/ci-post-merge.yml +++ b/.github/workflows/ci-post-merge.yml @@ -59,7 +59,7 @@ jobs: echo "RUSTFLAGS=-C target-feature=+crt-static" >> $GITHUB_ENV - name: Install Rust (${{ matrix.version }}) - uses: actions-rust-lang/setup-rust-toolchain@v1.11.0 + uses: actions-rust-lang/setup-rust-toolchain@v1.12.0 with: toolchain: ${{ matrix.version }} @@ -116,7 +116,7 @@ jobs: - uses: actions/checkout@v4 - name: Install Rust (nightly) - uses: actions-rust-lang/setup-rust-toolchain@v1.11.0 + uses: actions-rust-lang/setup-rust-toolchain@v1.12.0 with: toolchain: nightly diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index d861985d..51691a0c 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -68,7 +68,7 @@ jobs: echo "RUSTFLAGS=-C target-feature=+crt-static" >> $GITHUB_ENV - name: Install Rust (${{ matrix.version.name }}) - uses: actions-rust-lang/setup-rust-toolchain@v1.11.0 + uses: actions-rust-lang/setup-rust-toolchain@v1.12.0 with: toolchain: ${{ matrix.version.version }} @@ -120,7 +120,7 @@ jobs: - uses: actions/checkout@v4 - name: Install Rust (nightly) - uses: actions-rust-lang/setup-rust-toolchain@v1.11.0 + uses: actions-rust-lang/setup-rust-toolchain@v1.12.0 with: toolchain: nightly diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml index 2414ce4f..1f1d2064 100644 --- a/.github/workflows/coverage.yml +++ b/.github/workflows/coverage.yml @@ -18,7 +18,7 @@ jobs: - uses: actions/checkout@v4 - name: Install Rust - uses: actions-rust-lang/setup-rust-toolchain@v1.11.0 + uses: actions-rust-lang/setup-rust-toolchain@v1.12.0 with: components: llvm-tools-preview diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 9c442ddd..c067cc89 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -18,7 +18,7 @@ jobs: steps: - uses: actions/checkout@v4 - - uses: actions-rust-lang/setup-rust-toolchain@v1.11.0 + - uses: actions-rust-lang/setup-rust-toolchain@v1.12.0 with: toolchain: nightly components: rustfmt @@ -35,7 +35,7 @@ jobs: steps: - uses: actions/checkout@v4 - - uses: actions-rust-lang/setup-rust-toolchain@v1.11.0 + - uses: actions-rust-lang/setup-rust-toolchain@v1.12.0 with: { components: clippy } - uses: giraffate/clippy-action@v1.0.1 @@ -51,7 +51,7 @@ jobs: - uses: actions/checkout@v4 - name: Install Rust (${{ vars.RUST_VERSION_EXTERNAL_TYPES }}) - uses: actions-rust-lang/setup-rust-toolchain@v1.11.0 + uses: actions-rust-lang/setup-rust-toolchain@v1.12.0 with: toolchain: ${{ vars.RUST_VERSION_EXTERNAL_TYPES }} From 270360e095d29b377918c72df06ef56ac4b76b9e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 9 May 2025 19:05:37 +0100 Subject: [PATCH 284/410] build(deps): bump syn from 2.0.100 to 2.0.101 (#673) Bumps [syn](https://github.com/dtolnay/syn) from 2.0.100 to 2.0.101. - [Release notes](https://github.com/dtolnay/syn/releases) - [Commits](https://github.com/dtolnay/syn/compare/2.0.100...2.0.101) --- updated-dependencies: - dependency-name: syn dependency-version: 2.0.101 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 88fa2734..cdadbbd4 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1965,9 +1965,9 @@ checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" [[package]] name = "syn" -version = "2.0.100" +version = "2.0.101" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b09a44accad81e1ba1cd74a32461ba89dee89095ba17b32f5d03683b1b1fc2a0" +checksum = "8ce2b7fc941b3a24138a0a7cf8e858bfc6a992e7978a068a5c760deb0ed43caf" dependencies = [ "proc-macro2", "quote", From 064da0e3ffbfc2be674c8aa157a489459a749d53 Mon Sep 17 00:00:00 2001 From: Rob Ede Date: Fri, 9 May 2025 19:30:11 +0100 Subject: [PATCH 285/410] feat: server shutdown signal (#676) --- .cspell.yml | 5 + .github/dependabot.yml | 1 + Cargo.lock | 519 ++++++++++++----------- actix-rt/src/system.rs | 8 +- actix-server/CHANGES.md | 3 + actix-server/Cargo.toml | 7 +- actix-server/README.md | 4 +- actix-server/examples/shutdown-signal.rs | 51 +++ actix-server/src/accept.rs | 2 +- actix-server/src/builder.rs | 45 +- actix-server/src/server.rs | 26 +- actix-server/src/signals.rs | 69 ++- actix-server/src/worker.rs | 18 +- justfile | 4 +- 14 files changed, 470 insertions(+), 292 deletions(-) create mode 100644 actix-server/examples/shutdown-signal.rs diff --git a/.cspell.yml b/.cspell.yml index ce712a0e..fe18fd1e 100644 --- a/.cspell.yml +++ b/.cspell.yml @@ -1,3 +1,8 @@ version: "0.2" words: + - actix + - addrs + - mptcp + - nonblocking + - oneshot - rustup diff --git a/.github/dependabot.yml b/.github/dependabot.yml index b3eb7c8b..3aeae6b1 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -8,3 +8,4 @@ updates: directory: / schedule: interval: weekly + versioning-strategy: lockfile-only diff --git a/Cargo.lock b/Cargo.lock index cdadbbd4..723e1fe9 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -44,7 +44,7 @@ dependencies = [ [[package]] name = "actix-server" -version = "2.5.1" +version = "2.6.0" dependencies = [ "actix-codec", "actix-rt", @@ -56,9 +56,12 @@ dependencies = [ "mio", "pretty_env_logger", "socket2 0.5.9", + "static_assertions", "tokio", "tokio-uring", + "tokio-util", "tracing", + "tracing-subscriber", ] [[package]] @@ -110,7 +113,7 @@ dependencies = [ "trust-dns-resolver", "webpki-roots 0.22.6", "webpki-roots 0.25.4", - "webpki-roots 0.26.8", + "webpki-roots 0.26.11", ] [[package]] @@ -153,14 +156,14 @@ checksum = "512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627" [[package]] name = "ahash" -version = "0.8.11" +version = "0.8.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011" +checksum = "5a15f179cd60c4584b8a8c596927aadc462e27f2ca70c04e0071964a73ba7a75" dependencies = [ "cfg-if", "once_cell", "version_check", - "zerocopy 0.7.35", + "zerocopy", ] [[package]] @@ -225,9 +228,9 @@ checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" [[package]] name = "aws-lc-rs" -version = "1.12.6" +version = "1.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dabb68eb3a7aa08b46fddfd59a3d55c978243557a90ab804769f7e20e67d2b01" +checksum = "93fcc8f365936c834db5514fc45aee5b1202d677e6b40e48468aaaa8183ca8c7" dependencies = [ "aws-lc-sys", "zeroize", @@ -235,9 +238,9 @@ dependencies = [ [[package]] name = "aws-lc-sys" -version = "0.27.1" +version = "0.29.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77926887776171ced7d662120a75998e444d3750c951abfe07f90da130514b1f" +checksum = "61b1d86e7705efe1be1b569bab41d4fa1e14e220b60a160f78de2db687add079" dependencies = [ "bindgen", "cc", @@ -248,9 +251,9 @@ dependencies = [ [[package]] name = "backtrace" -version = "0.3.74" +version = "0.3.75" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d82cb332cdfaed17ae235a638438ac4d4839913cc2af585c3c6746e8f8bee1a" +checksum = "6806a6321ec58106fea15becdad98371e28d92ccbc7c8f1b3b6dd724fe8f1002" dependencies = [ "addr2line", "cfg-if", @@ -339,9 +342,9 @@ checksum = "37b2a672a2cb129a2e41c10b1224bb368f9f37a2b16b612598138befd7b37eb5" [[package]] name = "cc" -version = "1.2.16" +version = "1.2.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be714c154be609ec7f5dad223a33bf1482fff90472de28f7362806e6d4832b8c" +checksum = "32db95edf998450acc7881c932f94cd9b05c87b4b2599e8bab064753da4acfd1" dependencies = [ "jobserver", "libc", @@ -403,18 +406,18 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.32" +version = "4.5.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6088f3ae8c3608d19260cd7445411865a485688711b78b5be70d78cd96136f83" +checksum = "eccb054f56cbd38340b380d4a8e69ef1f02f1af43db2f0cc817a4774d80ae071" dependencies = [ "clap_builder", ] [[package]] name = "clap_builder" -version = "4.5.32" +version = "4.5.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22a7ef7f676155edfb82daa97f99441f3ebf4a58d5e32f295a56259f1b6facc8" +checksum = "efd9466fac8543255d3b1fcad4762c5e116ffe808c8a3043d4263cd4fd4862a2" dependencies = [ "anstyle", "clap_lex", @@ -520,9 +523,9 @@ checksum = "43da5946c66ffcc7745f48db692ffbb10a83bfe0afd96235c5c2a4fb23994929" [[package]] name = "data-encoding" -version = "2.8.0" +version = "2.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "575f75dfd25738df5b91b8e43e14d44bda14637a58fae779fd2b064f8bf3e010" +checksum = "2a2330da5de22e8a3cb63252ce2abb30116bf5265e89c0e01bc17015ce30a476" [[package]] name = "deranged" @@ -589,9 +592,9 @@ checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" [[package]] name = "errno" -version = "0.3.10" +version = "0.3.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33d852cb9b869c2a9b3df2f71a3074817f01e1844f839a144f5fcef059a4eb5d" +checksum = "976dd42dc7e85965fe702eb8164f21f450704bdde31faefd6471dba214cb594e" dependencies = [ "libc", "windows-sys 0.59.0", @@ -700,9 +703,9 @@ dependencies = [ [[package]] name = "getrandom" -version = "0.2.15" +version = "0.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7" +checksum = "335ff9f135e4384c8150d6f27c6daed433577f86b4750418338c01a1a2528592" dependencies = [ "cfg-if", "libc", @@ -711,9 +714,9 @@ dependencies = [ [[package]] name = "getrandom" -version = "0.3.2" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73fea8450eea4bac3940448fb7ae50d91f034f941199fcd9d909a5a07aa455f0" +checksum = "26145e563e54f2cadc477553f1ec5ee650b00862f0a58bcd12cbdc5f0ea2d2f4" dependencies = [ "cfg-if", "libc", @@ -735,9 +738,9 @@ checksum = "a8d1add55171497b4705a648c6b583acafb01d58050a51727785f0b2c8e0a2b2" [[package]] name = "half" -version = "2.4.1" +version = "2.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6dd08c532ae367adf81c312a4580bc67f1d0fe8bc9c460520283f4c0ff277888" +checksum = "459196ed295495a68f7d7fe1d84f6c4b7ff0e21fe3017b2f283c6fac3ad803c9" dependencies = [ "cfg-if", "crunchy", @@ -745,9 +748,9 @@ dependencies = [ [[package]] name = "hashbrown" -version = "0.15.2" +version = "0.15.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf151400ff0baff5465007dd2f3e717f3fe502074ca563069ce3a6629d07b289" +checksum = "84b26c544d002229e640969970a2e74021aadf6e2f96372b9c58eff97de08eb3" [[package]] name = "heck" @@ -757,9 +760,9 @@ checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" [[package]] name = "hermit-abi" -version = "0.5.0" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fbd780fe5cc30f81464441920d82ac8740e2e46b29a6fad543ddd075229ce37e" +checksum = "f154ce46856750ed433c8649605bf7ed2de3bc35fd9d2a9f30cddd873c80cb08" [[package]] name = "home" @@ -770,17 +773,6 @@ dependencies = [ "windows-sys 0.59.0", ] -[[package]] -name = "hostname" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9c7c7c8ac16c798734b8a24560c1362120597c40d5e1459f09498f8f6c8f2ba" -dependencies = [ - "cfg-if", - "libc", - "windows", -] - [[package]] name = "http" version = "0.2.12" @@ -811,21 +803,22 @@ checksum = "9b112acc8b3adf4b107a8ec20977da0273a8c386765a3ec0229bd500a1443f9f" [[package]] name = "icu_collections" -version = "1.5.0" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db2fa452206ebee18c4b5c2274dbf1de17008e874b4dc4f0aea9d01ca79e4526" +checksum = "200072f5d0e3614556f94a9930d5dc3e0662a652823904c3a75dc3b0af7fee47" dependencies = [ "displaydoc", + "potential_utf", "yoke", "zerofrom", "zerovec", ] [[package]] -name = "icu_locid" -version = "1.5.0" +name = "icu_locale_core" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13acbb8371917fc971be86fc8057c41a64b521c184808a698c02acc242dbf637" +checksum = "0cde2700ccaed3872079a65fb1a78f6c0a36c91570f28755dda67bc8f7d9f00a" dependencies = [ "displaydoc", "litemap", @@ -834,31 +827,11 @@ dependencies = [ "zerovec", ] -[[package]] -name = "icu_locid_transform" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01d11ac35de8e40fdeda00d9e1e9d92525f3f9d887cdd7aa81d727596788b54e" -dependencies = [ - "displaydoc", - "icu_locid", - "icu_locid_transform_data", - "icu_provider", - "tinystr", - "zerovec", -] - -[[package]] -name = "icu_locid_transform_data" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fdc8ff3388f852bede6b579ad4e978ab004f139284d7b28715f773507b946f6e" - [[package]] name = "icu_normalizer" -version = "1.5.0" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19ce3e0da2ec68599d193c93d088142efd7f9c5d6fc9b803774855747dc6a84f" +checksum = "436880e8e18df4d7bbc06d58432329d6458cc84531f7ac5f024e93deadb37979" dependencies = [ "displaydoc", "icu_collections", @@ -866,67 +839,54 @@ dependencies = [ "icu_properties", "icu_provider", "smallvec", - "utf16_iter", - "utf8_iter", - "write16", "zerovec", ] [[package]] name = "icu_normalizer_data" -version = "1.5.0" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8cafbf7aa791e9b22bec55a167906f9e1215fd475cd22adfcf660e03e989516" +checksum = "00210d6893afc98edb752b664b8890f0ef174c8adbb8d0be9710fa66fbbf72d3" [[package]] name = "icu_properties" -version = "1.5.1" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93d6020766cfc6302c15dbbc9c8778c37e62c14427cb7f6e601d849e092aeef5" +checksum = "2549ca8c7241c82f59c80ba2a6f415d931c5b58d24fb8412caa1a1f02c49139a" dependencies = [ "displaydoc", "icu_collections", - "icu_locid_transform", + "icu_locale_core", "icu_properties_data", "icu_provider", - "tinystr", + "potential_utf", + "zerotrie", "zerovec", ] [[package]] name = "icu_properties_data" -version = "1.5.0" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67a8effbc3dd3e4ba1afa8ad918d5684b8868b3b26500753effea8d2eed19569" +checksum = "8197e866e47b68f8f7d95249e172903bec06004b18b2937f1095d40a0c57de04" [[package]] name = "icu_provider" -version = "1.5.0" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ed421c8a8ef78d3e2dbc98a973be2f3770cb42b606e3ab18d6237c4dfde68d9" +checksum = "03c80da27b5f4187909049ee2d72f276f0d9f99a42c306bd0131ecfe04d8e5af" dependencies = [ "displaydoc", - "icu_locid", - "icu_provider_macros", + "icu_locale_core", "stable_deref_trait", "tinystr", "writeable", "yoke", "zerofrom", + "zerotrie", "zerovec", ] -[[package]] -name = "icu_provider_macros" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ec89e9337638ecdc08744df490b221a7399bf8d164eb52a665454e60e075ad6" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - [[package]] name = "idna" version = "0.4.0" @@ -950,9 +910,9 @@ dependencies = [ [[package]] name = "idna_adapter" -version = "1.2.0" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "daca1df1c957320b2cf139ac61e7bd64fed304c5040df000a745aa1de3b4ef71" +checksum = "3acae9609540aa318d1bc588455225fb2085b9ed0c4f6bd0d9d5bcd86f1a0344" dependencies = [ "icu_normalizer", "icu_properties", @@ -966,9 +926,9 @@ checksum = "e8a5a9a0ff0086c7a148acb942baaabeadf9504d10400b5a05645853729b9cd2" [[package]] name = "indexmap" -version = "2.8.0" +version = "2.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3954d50fe15b02142bf25d3b8bdadb634ec3948f103d04ffe3031bc8fe9d7058" +checksum = "cea70ddb795996207ad57735b50c5982d8844f38ba9ee5f1aedcfb708a2aa11e" dependencies = [ "equivalent", "hashbrown", @@ -1048,10 +1008,11 @@ checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c" [[package]] name = "jobserver" -version = "0.1.32" +version = "0.1.33" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48d1dbcbbeb6a7fec7e059840aa538bd62aaccf972c7346c4d9d2059312853d0" +checksum = "38f262f097c174adebe41eb73d66ae9c06b2844fb0da69969647bbddd9b0538a" dependencies = [ + "getrandom 0.3.3", "libc", ] @@ -1079,9 +1040,9 @@ checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55" [[package]] name = "libc" -version = "0.2.171" +version = "0.2.172" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c19937216e9d3aa9956d9bb8dfc0b0c8beb6058fc4f7a4dc4d850edf86a237d6" +checksum = "d750af042f7ef4f724306de029d18836c26c1765a54a6a3f094cbd23a7267ffa" [[package]] name = "libloading" @@ -1107,15 +1068,15 @@ checksum = "d26c52dbd32dccf2d10cac7725f8eae5296885fb5703b261f7d0a0739ec807ab" [[package]] name = "linux-raw-sys" -version = "0.9.3" +version = "0.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe7db12097d22ec582439daf8618b8fdd1a7bef6270e9af3b1ebcd30893cf413" +checksum = "cd945864f07fe9f5371a27ad7b52a172b4b499999f1d97574c9fa68373937e12" [[package]] name = "litemap" -version = "0.7.4" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ee93343901ab17bd981295f2cf0026d4ad018c7c31ba84549a4ddbb47a45104" +checksum = "241eaef5fd12c88705a01fc1066c48c4b36e0dd4377dcdc7ec3942cea7a69956" [[package]] name = "local-channel" @@ -1144,9 +1105,9 @@ dependencies = [ [[package]] name = "log" -version = "0.4.26" +version = "0.4.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30bde2b3dc3671ae49d8e2e9f044c7c005836e7a023ee57cffa25ab82764bb9e" +checksum = "13dc2df351e3202783a1fe0d44375f7295ffb4049267b0f3018346dc122a1d94" [[package]] name = "lru-cache" @@ -1157,6 +1118,15 @@ dependencies = [ "linked-hash-map", ] +[[package]] +name = "matchers" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8263075bb86c5a1b1427b5ae862e8889656f126e9f77c484496e8b47cf5c5558" +dependencies = [ + "regex-automata 0.1.10", +] + [[package]] name = "memchr" version = "2.7.4" @@ -1171,9 +1141,9 @@ checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" [[package]] name = "miniz_oxide" -version = "0.8.5" +version = "0.8.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e3e04debbb59698c15bacbb6d93584a8c0ca9cc3213cb423d31f760d8843ce5" +checksum = "3be647b768db090acb35d5ec5db2b0e1f1de11133ca123b9eacf5137868f892a" dependencies = [ "adler2", ] @@ -1192,9 +1162,9 @@ dependencies = [ [[package]] name = "native-tls" -version = "0.2.13" +version = "0.2.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0dab59f8e050d5df8e4dd87d9206fb6f65a483e20ac9fda365ade4fab353196c" +checksum = "87de3442987e9dbec73158d5c715e7ad9072fda936bb03d19d7fa10e00520f0e" dependencies = [ "libc", "log", @@ -1217,6 +1187,16 @@ dependencies = [ "minimal-lexical", ] +[[package]] +name = "nu-ansi-term" +version = "0.46.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84" +dependencies = [ + "overload", + "winapi", +] + [[package]] name = "num-conv" version = "0.1.0" @@ -1243,9 +1223,9 @@ dependencies = [ [[package]] name = "once_cell" -version = "1.21.1" +version = "1.21.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d75b0bedcc4fe52caa0e03d9f1151a323e4aa5e2d78ba3580400cd3c9e2bc4bc" +checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d" [[package]] name = "oorandom" @@ -1287,9 +1267,9 @@ checksum = "d05e27ee213611ffe7d6348b942e8f942b37114c00cc03cec254295a4a17852e" [[package]] name = "openssl-sys" -version = "0.9.107" +version = "0.9.108" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8288979acd84749c744a9014b4382d42b8f7b2592847b5afb2ed29e5d16ede07" +checksum = "e145e1651e858e820e4860f7b9c5e169bc1d8ce1c86043be79fa7b7634821847" dependencies = [ "cc", "libc", @@ -1297,6 +1277,12 @@ dependencies = [ "vcpkg", ] +[[package]] +name = "overload" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" + [[package]] name = "parking_lot" version = "0.12.3" @@ -1402,6 +1388,15 @@ dependencies = [ "plotters-backend", ] +[[package]] +name = "potential_utf" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5a7c30837279ca13e7c867e9e40053bc68740f988cb07f7ca6df43cc734b585" +dependencies = [ + "zerovec", +] + [[package]] name = "powerfmt" version = "0.2.0" @@ -1414,7 +1409,7 @@ version = "0.2.21" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "85eae3c4ed2f50dcfe72643da4befc30deadb458a9b590d720cde2f2b1e97da9" dependencies = [ - "zerocopy 0.8.23", + "zerocopy", ] [[package]] @@ -1429,9 +1424,9 @@ dependencies = [ [[package]] name = "prettyplease" -version = "0.2.31" +version = "0.2.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5316f57387668042f561aae71480de936257848f9c43ce528e311d89a07cadeb" +checksum = "664ec5419c51e34154eec046ebcba56312d5a2fc3b09a06da188e1ad21afadf6" dependencies = [ "proc-macro2", "syn", @@ -1439,9 +1434,9 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.94" +version = "1.0.95" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a31971752e70b8b2686d7e46ec17fb38dad4051d94024c88df49b667caea9c84" +checksum = "02b3e5e68a3a1a02aad3ec490a98007cbc13c37cbe84a3cd7b8e406d76e7f778" dependencies = [ "unicode-ident", ] @@ -1488,7 +1483,7 @@ version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" dependencies = [ - "getrandom 0.2.15", + "getrandom 0.2.16", ] [[package]] @@ -1526,9 +1521,9 @@ dependencies = [ [[package]] name = "redox_syscall" -version = "0.5.10" +version = "0.5.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b8c0c260b63a8219631167be35e6a988e9554dbd323f8bd08439c8ed1302bd1" +checksum = "928fca9cf2aa042393a8325b9ead81d2f0df4cb12e1e24cef072922ccd99c5af" dependencies = [ "bitflags 2.9.0", ] @@ -1541,8 +1536,17 @@ checksum = "b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191" dependencies = [ "aho-corasick", "memchr", - "regex-automata", - "regex-syntax", + "regex-automata 0.4.9", + "regex-syntax 0.8.5", +] + +[[package]] +name = "regex-automata" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132" +dependencies = [ + "regex-syntax 0.6.29", ] [[package]] @@ -1553,9 +1557,15 @@ checksum = "809e8dc61f6de73b46c85f4c96486310fe304c434cfa43669d7b40f711150908" dependencies = [ "aho-corasick", "memchr", - "regex-syntax", + "regex-syntax 0.8.5", ] +[[package]] +name = "regex-syntax" +version = "0.6.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" + [[package]] name = "regex-syntax" version = "0.8.5" @@ -1564,12 +1574,9 @@ checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c" [[package]] name = "resolv-conf" -version = "0.7.1" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48375394603e3dd4b2d64371f7148fd8c7baa2680e28741f2cb8d23b59e3d4c4" -dependencies = [ - "hostname", -] +checksum = "fc7c8f7f733062b66dc1c63f9db168ac0b97a9210e247fa90fdc9ad08f51b302" [[package]] name = "ring" @@ -1594,7 +1601,7 @@ checksum = "a4689e6c2294d81e88dc6261c768b63bc4fcdb852be6d1352498b114f61383b7" dependencies = [ "cc", "cfg-if", - "getrandom 0.2.15", + "getrandom 0.2.16", "libc", "untrusted 0.9.0", "windows-sys 0.52.0", @@ -1627,14 +1634,14 @@ dependencies = [ [[package]] name = "rustix" -version = "1.0.3" +version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e56a18552996ac8d29ecc3b190b4fdbb2d91ca4ec396de7bbffaf43f3d637e96" +checksum = "c71e83d6afe7ff64890ec6b71d6a69bb8a610ab78ce364b3352876bb4c801266" dependencies = [ "bitflags 2.9.0", "errno", "libc", - "linux-raw-sys 0.9.3", + "linux-raw-sys 0.9.4", "windows-sys 0.59.0", ] @@ -1678,15 +1685,15 @@ dependencies = [ [[package]] name = "rustls" -version = "0.23.25" +version = "0.23.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "822ee9188ac4ec04a2f0531e55d035fb2de73f18b41a63c70c2712503b6fb13c" +checksum = "730944ca083c1c233a75c09f199e973ca499344a2b7ba9e755c457e86fb4a321" dependencies = [ "aws-lc-rs", "log", "once_cell", "rustls-pki-types", - "rustls-webpki 0.103.0", + "rustls-webpki 0.103.3", "subtle", "zeroize", ] @@ -1736,9 +1743,12 @@ dependencies = [ [[package]] name = "rustls-pki-types" -version = "1.11.0" +version = "1.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "917ce264624a4b4db1c364dcc35bfca9ded014d0a958cd47ad3e960e988ea51c" +checksum = "229a4a4c221013e7e1f1a043678c5cc39fe5171437c88fb47151a21e6f5b5c79" +dependencies = [ + "zeroize", +] [[package]] name = "rustls-webpki" @@ -1763,9 +1773,9 @@ dependencies = [ [[package]] name = "rustls-webpki" -version = "0.103.0" +version = "0.103.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0aa4eeac2588ffff23e9d7a7e9b3f971c5fb5b7ebc9452745e0c232c64f83b2f" +checksum = "e4a72fe2bcf7a6ac6fd7d0b9e5cb68aeb7d4c0a0271730218b3e92d43b4eb435" dependencies = [ "aws-lc-rs", "ring 0.17.14", @@ -1889,6 +1899,15 @@ dependencies = [ "serde", ] +[[package]] +name = "sharded-slab" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6" +dependencies = [ + "lazy_static", +] + [[package]] name = "shlex" version = "1.3.0" @@ -1897,9 +1916,9 @@ checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" [[package]] name = "signal-hook-registry" -version = "1.4.2" +version = "1.4.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9e9e0b4211b72e7b8b6e85c807d36c212bdb33ea8587f7569562a84df5465b1" +checksum = "9203b8055f63a2a00e2f593bb0510367fe707d7ff1e5c872de2f537b339e5410" dependencies = [ "libc", ] @@ -1915,9 +1934,9 @@ dependencies = [ [[package]] name = "smallvec" -version = "1.14.0" +version = "1.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7fcf8323ef1faaee30a44a340193b1ac6814fd9b7b4e88e9d4519a3e4abe1cfd" +checksum = "8917285742e9f3e1683f0a9c4e6b57960b7314d0b08d30d1ecd426713ee2eee9" [[package]] name = "socket2" @@ -1976,9 +1995,9 @@ dependencies = [ [[package]] name = "synstructure" -version = "0.13.1" +version = "0.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971" +checksum = "728a70f3dbaf5bab7f0c4b1ac8d7ae5ea60a4b5549c8a5914361c99147a709d2" dependencies = [ "proc-macro2", "quote", @@ -1998,9 +2017,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7437ac7763b9b123ccf33c338a5cc1bac6f69b45a136c19bdd8a65e3916435bf" dependencies = [ "fastrand", - "getrandom 0.3.2", + "getrandom 0.3.3", "once_cell", - "rustix 1.0.3", + "rustix 1.0.7", "windows-sys 0.59.0", ] @@ -2034,10 +2053,20 @@ dependencies = [ ] [[package]] -name = "time" -version = "0.3.40" +name = "thread_local" +version = "1.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d9c75b47bdff86fa3334a3db91356b8d7d86a9b839dab7d0bdc5c3d3a077618" +checksum = "8b9ef9bad013ada3808854ceac7b46812a6465ba368859a37e2100283d2d719c" +dependencies = [ + "cfg-if", + "once_cell", +] + +[[package]] +name = "time" +version = "0.3.41" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a7619e19bc266e0f9c5e6686659d394bc57973859340060a69221e57dbc0c40" dependencies = [ "deranged", "num-conv", @@ -2054,9 +2083,9 @@ checksum = "c9e9a38711f559d9e3ce1cdb06dd7c5b8ea546bc90052da6d06bb76da74bb07c" [[package]] name = "tinystr" -version = "0.7.6" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9117f5d4db391c1cf6927e7bea3db74b9a1c1add8f7eda9ffd5364f40f57b82f" +checksum = "5d4f6d1145dcb577acf783d4e601bc1d76a13337bb54e6233add580b07344c8b" dependencies = [ "displaydoc", "zerovec", @@ -2089,9 +2118,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.44.2" +version = "1.45.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6b88822cbe49de4185e3a4cbf8321dd487cf5fe0c5c65695fef6346371e9c48" +checksum = "2513ca694ef9ede0fb23fe71a4ee4107cb102b9dc1930f6d0fd77aae068ae165" dependencies = [ "backtrace", "bytes", @@ -2175,7 +2204,7 @@ version = "0.26.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8e727b36a1a0e8b74c376ac2211e40c2c8af09fb4013c60d910495810f008e9b" dependencies = [ - "rustls 0.23.25", + "rustls 0.23.27", "tokio", ] @@ -2232,9 +2261,9 @@ dependencies = [ [[package]] name = "toml" -version = "0.8.20" +version = "0.8.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd87a5cdd6ffab733b2f74bc4fd7ee5fff6634124999ac278c35fc78c6120148" +checksum = "05ae329d1f08c4d17a59bed7ff5b5a769d062e64a62d34a3261b219e62cd5aae" dependencies = [ "serde", "serde_spanned", @@ -2244,26 +2273,33 @@ dependencies = [ [[package]] name = "toml_datetime" -version = "0.6.8" +version = "0.6.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0dd7358ecb8fc2f8d014bf86f6f638ce72ba252a2c3a2572f2a795f1d23efb41" +checksum = "3da5db5a963e24bc68be8b17b6fa82814bb22ee8660f192bb182771d498f09a3" dependencies = [ "serde", ] [[package]] name = "toml_edit" -version = "0.22.24" +version = "0.22.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17b4795ff5edd201c7cd6dca065ae59972ce77d1b80fa0a84d94950ece7d1474" +checksum = "310068873db2c5b3e7659d2cc35d21855dbafa50d1ce336397c666e3cb08137e" dependencies = [ "indexmap", "serde", "serde_spanned", "toml_datetime", + "toml_write", "winnow", ] +[[package]] +name = "toml_write" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfb942dfe1d8e29a7ee7fcbde5bd2b9a25fb89aa70caea2eba3bee836ff41076" + [[package]] name = "tracing" version = "0.1.41" @@ -2294,6 +2330,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e672c95779cf947c5311f83787af4fa8fffd12fb27e4993211a84bdfd9610f9c" dependencies = [ "once_cell", + "valuable", ] [[package]] @@ -2306,6 +2343,35 @@ dependencies = [ "tracing", ] +[[package]] +name = "tracing-log" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee855f1f400bd0e5c02d150ae5de3840039a3f54b025156404e34c23c03f47c3" +dependencies = [ + "log", + "once_cell", + "tracing-core", +] + +[[package]] +name = "tracing-subscriber" +version = "0.3.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e8189decb5ac0fa7bc8b96b7cb9b2701d60d48805aca84a238004d665fcc4008" +dependencies = [ + "matchers", + "nu-ansi-term", + "once_cell", + "regex", + "sharded-slab", + "smallvec", + "thread_local", + "tracing", + "tracing-core", + "tracing-log", +] + [[package]] name = "trust-dns-proto" version = "0.23.2" @@ -2411,18 +2477,18 @@ dependencies = [ "percent-encoding", ] -[[package]] -name = "utf16_iter" -version = "1.0.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8232dd3cdaed5356e0f716d285e4b40b932ac434100fe9b7e0e8e935b9e6246" - [[package]] name = "utf8_iter" version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" +[[package]] +name = "valuable" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba73ea9cf16a25df0c8caa16c51acb937d5712a8429db78a3ee29d5dcacd3a65" + [[package]] name = "vcpkg" version = "0.2.15" @@ -2555,9 +2621,18 @@ checksum = "5f20c57d8d7db6d3b86154206ae5d8fba62dd39573114de97c2cb0578251f8e1" [[package]] name = "webpki-roots" -version = "0.26.8" +version = "0.26.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2210b291f7ea53617fbafcc4939f10914214ec15aace5ba62293a668f322c5c9" +checksum = "521bc38abb08001b01866da9f51eb7c5d647a19260e00054a8c7fd5f9e57f7a9" +dependencies = [ + "webpki-roots 1.0.0", +] + +[[package]] +name = "webpki-roots" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2853738d1cc4f2da3a225c18ec6c3721abb31961096e9dbf5ab35fa88b19cfdb" dependencies = [ "rustls-pki-types", ] @@ -2611,25 +2686,6 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" -[[package]] -name = "windows" -version = "0.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e48a53791691ab099e5e2ad123536d0fff50652600abaf43bbf952894110d0be" -dependencies = [ - "windows-core", - "windows-targets 0.52.6", -] - -[[package]] -name = "windows-core" -version = "0.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9" -dependencies = [ - "windows-targets 0.52.6", -] - [[package]] name = "windows-sys" version = "0.48.0" @@ -2780,9 +2836,9 @@ checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" [[package]] name = "winnow" -version = "0.7.4" +version = "0.7.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e97b544156e9bebe1a0ffbc03484fc1ffe3100cbce3ffb17eac35f7cdd7ab36" +checksum = "c06928c8748d81b05c9be96aad92e1b6ff01833332f281e8cfca3be4b35fc9ec" dependencies = [ "memchr", ] @@ -2806,17 +2862,11 @@ dependencies = [ "bitflags 2.9.0", ] -[[package]] -name = "write16" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d1890f4022759daae28ed4fe62859b1236caebfc61ede2f63ed4e695f3f6d936" - [[package]] name = "writeable" -version = "0.5.5" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e9df38ee2d2c3c5948ea468a8406ff0db0b29ae1ffde1bcf20ef305bcc95c51" +checksum = "ea2f10b9bb0928dfb1b42b65e1f9e36f7f54dbdf08457afefb38afcdec4fa2bb" [[package]] name = "yasna" @@ -2829,9 +2879,9 @@ dependencies = [ [[package]] name = "yoke" -version = "0.7.5" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "120e6aef9aa629e3d4f52dc8cc43a015c7724194c97dfaf45180d2daf2b77f40" +checksum = "5f41bb01b8226ef4bfd589436a297c53d118f65921786300e427be8d487695cc" dependencies = [ "serde", "stable_deref_trait", @@ -2841,9 +2891,9 @@ dependencies = [ [[package]] name = "yoke-derive" -version = "0.7.5" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2380878cad4ac9aac1e2435f3eb4020e8374b5f13c296cb75b4620ff8e229154" +checksum = "38da3c9736e16c5d3c8c597a9aaa5d1fa565d0532ae05e27c24aa62fb32c0ab6" dependencies = [ "proc-macro2", "quote", @@ -2853,38 +2903,18 @@ dependencies = [ [[package]] name = "zerocopy" -version = "0.7.35" +version = "0.8.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b9b4fd18abc82b8136838da5d50bae7bdea537c574d8dc1a34ed098d6c166f0" +checksum = "a1702d9583232ddb9174e01bb7c15a2ab8fb1bc6f227aa1233858c351a3ba0cb" dependencies = [ - "zerocopy-derive 0.7.35", -] - -[[package]] -name = "zerocopy" -version = "0.8.23" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd97444d05a4328b90e75e503a34bad781f14e28a823ad3557f0750df1ebcbc6" -dependencies = [ - "zerocopy-derive 0.8.23", + "zerocopy-derive", ] [[package]] name = "zerocopy-derive" -version = "0.7.35" +version = "0.8.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "zerocopy-derive" -version = "0.8.23" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6352c01d0edd5db859a63e2605f4ea3183ddbd15e2c4a9e7d32184df75e4f154" +checksum = "28a6e20d751156648aa063f3800b706ee209a32c0b4d9f24be3d980b01be55ef" dependencies = [ "proc-macro2", "quote", @@ -2893,9 +2923,9 @@ dependencies = [ [[package]] name = "zerofrom" -version = "0.1.5" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cff3ee08c995dee1859d998dea82f7374f2826091dd9cd47def953cae446cd2e" +checksum = "50cc42e0333e05660c3587f3bf9d0478688e15d870fab3346451ce7f8c9fbea5" dependencies = [ "zerofrom-derive", ] @@ -2919,10 +2949,21 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ced3678a2879b30306d323f4542626697a464a97c0a07c9aebf7ebca65cd4dde" [[package]] -name = "zerovec" -version = "0.10.4" +name = "zerotrie" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa2b893d79df23bfb12d5461018d408ea19dfafe76c2c7ef6d4eba614f8ff079" +checksum = "36f0bbd478583f79edad978b407914f61b2972f5af6fa089686016be8f9af595" +dependencies = [ + "displaydoc", + "yoke", + "zerofrom", +] + +[[package]] +name = "zerovec" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4a05eb080e015ba39cc9e23bbe5e7fb04d5fb040350f99f34e338d5fdd294428" dependencies = [ "yoke", "zerofrom", @@ -2931,9 +2972,9 @@ dependencies = [ [[package]] name = "zerovec-derive" -version = "0.10.3" +version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6eafa6dfb17584ea3e2bd6e76e0cc15ad7af12b09abdd1ca55961bed9b1063c6" +checksum = "5b96237efa0c878c64bd89c436f661be4e46b2f3eff1ebb976f7ef2321d2f58f" dependencies = [ "proc-macro2", "quote", diff --git a/actix-rt/src/system.rs b/actix-rt/src/system.rs index f9fe4c8d..5d8187cd 100644 --- a/actix-rt/src/system.rs +++ b/actix-rt/src/system.rs @@ -187,10 +187,7 @@ impl SystemRunner { match exit_code { 0 => Ok(()), - nonzero => Err(io::Error::new( - io::ErrorKind::Other, - format!("Non-zero exit code: {}", nonzero), - )), + nonzero => Err(io::Error::other(format!("Non-zero exit code: {}", nonzero))), } } @@ -199,8 +196,7 @@ impl SystemRunner { let SystemRunner { rt, stop_rx, .. } = self; // run loop - rt.block_on(stop_rx) - .map_err(|err| io::Error::new(io::ErrorKind::Other, err)) + rt.block_on(stop_rx).map_err(io::Error::other) } /// Retrieves a reference to the underlying [Actix runtime](crate::Runtime) associated with this diff --git a/actix-server/CHANGES.md b/actix-server/CHANGES.md index 268361c6..d67f2f88 100644 --- a/actix-server/CHANGES.md +++ b/actix-server/CHANGES.md @@ -2,6 +2,9 @@ ## Unreleased +## 2.6.0 + +- Add `ServerBuilder::shutdown_signal()` method. - Minimum supported Rust version (MSRV) is now 1.74. ## 2.5.1 diff --git a/actix-server/Cargo.toml b/actix-server/Cargo.toml index 9e2f138e..e197260e 100644 --- a/actix-server/Cargo.toml +++ b/actix-server/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "actix-server" -version = "2.5.1" +version = "2.6.0" authors = [ "Nikolay Kim ", "Rob Ede ", @@ -44,7 +44,10 @@ actix-rt = "2.8" bytes = "1" futures-util = { version = "0.3.17", default-features = false, features = ["sink", "async-await-macro"] } pretty_env_logger = "0.5" -tokio = { version = "1.44.2", features = ["io-util", "rt-multi-thread", "macros", "fs"] } +static_assertions = "1" +tokio = { version = "1.44.2", features = ["io-util", "rt-multi-thread", "macros", "fs", "time"] } +tokio-util = "0.7" +tracing-subscriber = { version = "0.3", features = ["fmt", "env-filter"] } [lints] workspace = true diff --git a/actix-server/README.md b/actix-server/README.md index 73b94fe9..c51e1864 100644 --- a/actix-server/README.md +++ b/actix-server/README.md @@ -5,11 +5,11 @@ [![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.5.1)](https://docs.rs/actix-server/2.5.1) +[![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) ![MIT or Apache 2.0 licensed](https://img.shields.io/crates/l/actix-server.svg)
-[![Dependency Status](https://deps.rs/crate/actix-server/2.5.1/status.svg)](https://deps.rs/crate/actix-server/2.5.1) +[![Dependency Status](https://deps.rs/crate/actix-server/2.6.0/status.svg)](https://deps.rs/crate/actix-server/2.6.0) ![Download](https://img.shields.io/crates/d/actix-server.svg) [![Chat on Discord](https://img.shields.io/discord/771444961383153695?label=chat&logo=discord)](https://discord.gg/NWpN5mmg3x) diff --git a/actix-server/examples/shutdown-signal.rs b/actix-server/examples/shutdown-signal.rs new file mode 100644 index 00000000..99500845 --- /dev/null +++ b/actix-server/examples/shutdown-signal.rs @@ -0,0 +1,51 @@ +//! Demonstrates use of the `ServerBuilder::shutdown_signal` method using `tokio-util`s +//! `CancellationToken` helper using a nonsensical timer. In practice, this cancellation token would +//! be wired throughout your application and typically triggered by OS signals elsewhere. + +use std::{io, time::Duration}; + +use actix_rt::net::TcpStream; +use actix_server::Server; +use actix_service::fn_service; +use tokio_util::sync::CancellationToken; +use tracing::level_filters::LevelFilter; +use tracing_subscriber::{prelude::*, EnvFilter}; + +async fn run(stop_signal: CancellationToken) -> io::Result<()> { + tracing_subscriber::registry() + .with(tracing_subscriber::fmt::layer()) + .with( + EnvFilter::builder() + .with_default_directive(LevelFilter::INFO.into()) + .from_env_lossy(), + ) + .init(); + + let addr = ("127.0.0.1", 8080); + tracing::info!("starting server on port: {}", &addr.0); + + Server::build() + .bind("shutdown-signal", addr, || { + fn_service(|_stream: TcpStream| async { Ok::<_, io::Error>(()) }) + })? + .shutdown_signal(stop_signal.cancelled_owned()) + .workers(2) + .run() + .await +} + +#[tokio::main] +async fn main() -> io::Result<()> { + let stop_signal = CancellationToken::new(); + + tokio::spawn({ + let stop_signal = stop_signal.clone(); + async move { + tokio::time::sleep(Duration::from_secs(10)).await; + stop_signal.cancel(); + } + }); + + run(stop_signal).await?; + Ok(()) +} diff --git a/actix-server/src/accept.rs b/actix-server/src/accept.rs index c250f909..997c9699 100644 --- a/actix-server/src/accept.rs +++ b/actix-server/src/accept.rs @@ -76,7 +76,7 @@ impl Accept { let accept_handle = thread::Builder::new() .name("actix-server acceptor".to_owned()) .spawn(move || accept.poll_with(&mut sockets)) - .map_err(|err| io::Error::new(io::ErrorKind::Other, err))?; + .map_err(io::Error::other)?; Ok((waker_queue, handles_server, accept_handle)) } diff --git a/actix-server/src/builder.rs b/actix-server/src/builder.rs index bd5418c1..864132ef 100644 --- a/actix-server/src/builder.rs +++ b/actix-server/src/builder.rs @@ -1,6 +1,7 @@ -use std::{io, num::NonZeroUsize, time::Duration}; +use std::{future::Future, io, num::NonZeroUsize, time::Duration}; use actix_rt::net::TcpStream; +use futures_core::future::BoxFuture; use tokio::sync::mpsc::{unbounded_channel, UnboundedReceiver, UnboundedSender}; use crate::{ @@ -39,6 +40,7 @@ pub struct ServerBuilder { pub(crate) mptcp: MpTcp, pub(crate) exit: bool, pub(crate) listen_os_signals: bool, + pub(crate) shutdown_signal: Option>, pub(crate) cmd_tx: UnboundedSender, pub(crate) cmd_rx: UnboundedReceiver, pub(crate) worker_config: ServerWorkerConfig, @@ -64,6 +66,7 @@ impl ServerBuilder { mptcp: MpTcp::Disabled, exit: false, listen_os_signals: true, + shutdown_signal: None, cmd_tx, cmd_rx, worker_config: ServerWorkerConfig::default(), @@ -170,6 +173,41 @@ impl ServerBuilder { self } + /// Specify shutdown signal from a future. + /// + /// Using this method will prevent OS signal handlers being set up. + /// + /// Typically, a `CancellationToken` will be used, but any future _can_ be. + /// + /// # Examples + /// + /// ``` + /// # use std::io; + /// # use tokio::net::TcpStream; + /// # use actix_server::Server; + /// # async fn run() -> io::Result<()> { + /// use actix_service::fn_service; + /// use tokio_util::sync::CancellationToken; + /// + /// let stop_signal = CancellationToken::new(); + /// + /// Server::build() + /// .bind("shutdown-signal", "127.0.0.1:12345", || { + /// fn_service(|_stream: TcpStream| async { Ok::<_, io::Error>(()) }) + /// })? + /// .shutdown_signal(stop_signal.cancelled_owned()) + /// .run() + /// .await + /// # } + /// ``` + pub fn shutdown_signal(mut self, shutdown_signal: Fut) -> Self + where + Fut: Future + Send + 'static, + { + self.shutdown_signal = Some(Box::pin(shutdown_signal)); + self + } + /// Timeout for graceful workers shutdown in seconds. /// /// After receiving a stop signal, workers have this much time to finish serving requests. @@ -370,9 +408,6 @@ pub(super) fn bind_addr( } else if let Some(err) = opt_err.take() { Err(err) } else { - Err(io::Error::new( - io::ErrorKind::Other, - "Can not bind to address.", - )) + Err(io::Error::other("Can not bind to address.")) } } diff --git a/actix-server/src/server.rs b/actix-server/src/server.rs index db7d67fd..0d582978 100644 --- a/actix-server/src/server.rs +++ b/actix-server/src/server.rs @@ -18,7 +18,7 @@ use crate::{ builder::ServerBuilder, join_all::join_all, service::InternalServiceFactory, - signals::{SignalKind, Signals}, + signals::{OsSignals, SignalKind, StopSignal}, waker_queue::{WakerInterest, WakerQueue}, worker::{ServerWorker, ServerWorkerConfig, WorkerHandleServer}, ServerHandle, @@ -210,7 +210,12 @@ impl ServerInner { let (waker_queue, worker_handles, accept_handle) = Accept::start(sockets, &builder)?; let mux = ServerEventMultiplexer { - signal_fut: (builder.listen_os_signals).then(Signals::new), + signal_fut: builder.shutdown_signal.map(StopSignal::Cancel).or_else(|| { + builder + .listen_os_signals + .then(OsSignals::new) + .map(StopSignal::Os) + }), cmd_rx: builder.cmd_rx, }; @@ -315,7 +320,16 @@ impl ServerInner { fn map_signal(signal: SignalKind) -> ServerCommand { match signal { - SignalKind::Int => { + SignalKind::Cancel => { + info!("Cancellation token/channel received; starting graceful shutdown"); + ServerCommand::Stop { + graceful: true, + completion: None, + force_system_stop: true, + } + } + + SignalKind::OsInt => { info!("SIGINT received; starting forced shutdown"); ServerCommand::Stop { graceful: false, @@ -324,7 +338,7 @@ impl ServerInner { } } - SignalKind::Term => { + SignalKind::OsTerm => { info!("SIGTERM received; starting graceful shutdown"); ServerCommand::Stop { graceful: true, @@ -333,7 +347,7 @@ impl ServerInner { } } - SignalKind::Quit => { + SignalKind::OsQuit => { info!("SIGQUIT received; starting forced shutdown"); ServerCommand::Stop { graceful: false, @@ -347,7 +361,7 @@ impl ServerInner { struct ServerEventMultiplexer { cmd_rx: UnboundedReceiver, - signal_fut: Option, + signal_fut: Option, } impl Stream for ServerEventMultiplexer { diff --git a/actix-server/src/signals.rs b/actix-server/src/signals.rs index 2b01f015..c41d0e33 100644 --- a/actix-server/src/signals.rs +++ b/actix-server/src/signals.rs @@ -1,10 +1,11 @@ use std::{ fmt, future::Future, - pin::Pin, + pin::{pin, Pin}, task::{Context, Poll}, }; +use futures_core::future::BoxFuture; use tracing::trace; /// Types of process signals. @@ -12,28 +13,51 @@ use tracing::trace; #[derive(Debug, Clone, Copy, PartialEq)] #[allow(dead_code)] // variants are never constructed on non-unix pub(crate) enum SignalKind { - /// `SIGINT` - Int, + /// Cancellation token or channel. + Cancel, - /// `SIGTERM` - Term, + /// OS `SIGINT`. + OsInt, - /// `SIGQUIT` - Quit, + /// OS `SIGTERM`. + OsTerm, + + /// OS `SIGQUIT`. + OsQuit, } impl fmt::Display for SignalKind { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { f.write_str(match self { - SignalKind::Int => "SIGINT", - SignalKind::Term => "SIGTERM", - SignalKind::Quit => "SIGQUIT", + SignalKind::Cancel => "Cancellation token or channel", + SignalKind::OsInt => "SIGINT", + SignalKind::OsTerm => "SIGTERM", + SignalKind::OsQuit => "SIGQUIT", }) } } +pub(crate) enum StopSignal { + /// OS signal handling is configured. + Os(OsSignals), + + /// Cancellation token or channel. + Cancel(BoxFuture<'static, ()>), +} + +impl Future for StopSignal { + type Output = SignalKind; + + fn poll(self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll { + match self.get_mut() { + StopSignal::Os(os_signals) => pin!(os_signals).poll(cx), + StopSignal::Cancel(cancel) => pin!(cancel).poll(cx).map(|()| SignalKind::Cancel), + } + } +} + /// Process signal listener. -pub(crate) struct Signals { +pub(crate) struct OsSignals { #[cfg(not(unix))] signals: futures_core::future::BoxFuture<'static, std::io::Result<()>>, @@ -41,14 +65,14 @@ pub(crate) struct Signals { signals: Vec<(SignalKind, actix_rt::signal::unix::Signal)>, } -impl Signals { +impl OsSignals { /// Constructs an OS signal listening future. pub(crate) fn new() -> Self { trace!("setting up OS signal listener"); #[cfg(not(unix))] { - Signals { + OsSignals { signals: Box::pin(actix_rt::signal::ctrl_c()), } } @@ -58,9 +82,9 @@ impl Signals { use actix_rt::signal::unix; let sig_map = [ - (unix::SignalKind::interrupt(), SignalKind::Int), - (unix::SignalKind::terminate(), SignalKind::Term), - (unix::SignalKind::quit(), SignalKind::Quit), + (unix::SignalKind::interrupt(), SignalKind::OsInt), + (unix::SignalKind::terminate(), SignalKind::OsTerm), + (unix::SignalKind::quit(), SignalKind::OsQuit), ]; let signals = sig_map @@ -79,18 +103,18 @@ impl Signals { }) .collect::>(); - Signals { signals } + OsSignals { signals } } } } -impl Future for Signals { +impl Future for OsSignals { type Output = SignalKind; fn poll(mut self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll { #[cfg(not(unix))] { - self.signals.as_mut().poll(cx).map(|_| SignalKind::Int) + self.signals.as_mut().poll(cx).map(|_| SignalKind::OsInt) } #[cfg(unix)] @@ -106,3 +130,10 @@ impl Future for Signals { } } } + +#[cfg(test)] +mod tests { + use super::*; + + static_assertions::assert_impl_all!(StopSignal: Send, Unpin); +} diff --git a/actix-server/src/worker.rs b/actix-server/src/worker.rs index 7050fcd2..92a2c007 100644 --- a/actix-server/src/worker.rs +++ b/actix-server/src/worker.rs @@ -341,11 +341,10 @@ impl ServerWorker { Ok((token, svc)) => services.push((idx, token, svc)), Err(err) => { - error!("can not start worker: {:?}", err); - return Err(io::Error::new( - io::ErrorKind::Other, - format!("can not start server service {}", idx), - )); + error!("can not start worker: {err:?}"); + return Err(io::Error::other(format!( + "can not start server service {idx}", + ))); } } } @@ -440,13 +439,12 @@ impl ServerWorker { Ok((token, svc)) => services.push((idx, token, svc)), Err(err) => { - error!("can not start worker: {:?}", err); + error!("can not start worker: {err:?}"); Arbiter::current().stop(); factory_tx - .send(Err(io::Error::new( - io::ErrorKind::Other, - format!("can not start server service {}", idx), - ))) + .send(Err(io::Error::other(format!( + "can not start server service {idx}", + )))) .unwrap(); return; } diff --git a/justfile b/justfile index 68be0834..a1e840c6 100644 --- a/justfile +++ b/justfile @@ -1,6 +1,8 @@ _list: @just --list +toolchain := "" + # Check project. check: && clippy just --unstable --fmt --check @@ -42,8 +44,6 @@ non_linux_all_features_list := ``` ``` all_crate_features := if os() == "linux" { "--all-features" } else { "--features='" + non_linux_all_features_list + "'" } -toolchain := "" - # Run Clippy over workspace. clippy: cargo {{ toolchain }} clippy --workspace --all-targets {{ all_crate_features }} From 7834d76d4fec5fc2f28f37206203bc2fd08a1bdd Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 16 May 2025 08:16:02 +0100 Subject: [PATCH 286/410] build(deps): bump trybuild from 1.0.104 to 1.0.105 (#677) Bumps [trybuild](https://github.com/dtolnay/trybuild) from 1.0.104 to 1.0.105. - [Release notes](https://github.com/dtolnay/trybuild/releases) - [Commits](https://github.com/dtolnay/trybuild/compare/1.0.104...1.0.105) --- updated-dependencies: - dependency-name: trybuild 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 723e1fe9..d2ed9a7e 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2420,9 +2420,9 @@ dependencies = [ [[package]] name = "trybuild" -version = "1.0.104" +version = "1.0.105" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ae08be68c056db96f0e6c6dd820727cca756ced9e1f4cc7fdd20e2a55e23898" +checksum = "1c9bf9513a2f4aeef5fdac8677d7d349c79fdbcc03b9c86da6e9d254f1e43be2" dependencies = [ "glob", "serde", From 3356038c8021c4add6b78086aae623cd52cedc43 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 24 May 2025 08:19:22 +0100 Subject: [PATCH 287/410] build(deps): bump bitflags from 2.9.0 to 2.9.1 (#680) Bumps [bitflags](https://github.com/bitflags/bitflags) from 2.9.0 to 2.9.1. - [Release notes](https://github.com/bitflags/bitflags/releases) - [Changelog](https://github.com/bitflags/bitflags/blob/main/CHANGELOG.md) - [Commits](https://github.com/bitflags/bitflags/compare/2.9.0...2.9.1) --- updated-dependencies: - dependency-name: bitflags dependency-version: 2.9.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> --- Cargo.lock | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index d2ed9a7e..c7c7c97a 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -6,7 +6,7 @@ version = 3 name = "actix-codec" version = "0.5.2" dependencies = [ - "bitflags 2.9.0", + "bitflags 2.9.1", "bytes", "criterion", "futures-core", @@ -282,7 +282,7 @@ version = "0.69.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "271383c67ccabffb7381723dea0672a673f292304fcb45c01cc648c7a8d58088" dependencies = [ - "bitflags 2.9.0", + "bitflags 2.9.1", "cexpr", "clang-sys", "itertools 0.12.1", @@ -307,9 +307,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bitflags" -version = "2.9.0" +version = "2.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c8214115b7bf84099f1309324e63141d4c5d7cc26862f97a0a857dbefe165bd" +checksum = "1b8e56985ec62d17e9c1001dc89c88ecd7dc08e47eba5ec7c29c7b5eeecde967" [[package]] name = "bumpalo" @@ -1239,7 +1239,7 @@ version = "0.10.72" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fedfea7d58a1f73118430a55da6a286e7b044961736ce96a16a17068ea25e5da" dependencies = [ - "bitflags 2.9.0", + "bitflags 2.9.1", "cfg-if", "foreign-types", "libc", @@ -1525,7 +1525,7 @@ version = "0.5.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "928fca9cf2aa042393a8325b9ead81d2f0df4cb12e1e24cef072922ccd99c5af" dependencies = [ - "bitflags 2.9.0", + "bitflags 2.9.1", ] [[package]] @@ -1625,7 +1625,7 @@ version = "0.38.44" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fdb5bc1ae2baa591800df16c9ca78619bf65c0488b41b96ccec5d11220d8c154" dependencies = [ - "bitflags 2.9.0", + "bitflags 2.9.1", "errno", "libc", "linux-raw-sys 0.4.15", @@ -1638,7 +1638,7 @@ version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c71e83d6afe7ff64890ec6b71d6a69bb8a610ab78ce364b3352876bb4c801266" dependencies = [ - "bitflags 2.9.0", + "bitflags 2.9.1", "errno", "libc", "linux-raw-sys 0.9.4", @@ -1841,7 +1841,7 @@ version = "2.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02" dependencies = [ - "bitflags 2.9.0", + "bitflags 2.9.1", "core-foundation", "core-foundation-sys", "libc", @@ -2859,7 +2859,7 @@ version = "0.39.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6f42320e61fe2cfd34354ecb597f86f413484a798ba44a8ca1165c58d42da6c1" dependencies = [ - "bitflags 2.9.0", + "bitflags 2.9.1", ] [[package]] From 15c13c3e32f23bbf225f4b9fc13d9e4dd86e5e0b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 24 May 2025 08:19:30 +0100 Subject: [PATCH 288/410] build(deps): bump taiki-e/install-action from 2.50.10 to 2.51.2 (#679) Bumps [taiki-e/install-action](https://github.com/taiki-e/install-action) from 2.50.10 to 2.51.2. - [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.50.10...v2.51.2) --- updated-dependencies: - dependency-name: taiki-e/install-action dependency-version: 2.51.2 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 e3217b9e..2b266930 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.50.10 + uses: taiki-e/install-action@v2.51.2 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.50.10 + uses: taiki-e/install-action@v2.51.2 with: tool: cargo-hack,cargo-minimal-versions diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 51691a0c..e41208ea 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.50.10 + uses: taiki-e/install-action@v2.51.2 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.50.10 + uses: taiki-e/install-action@v2.51.2 with: tool: just diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml index 1f1d2064..1b8ee51d 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.50.10 + uses: taiki-e/install-action@v2.51.2 with: tool: cargo-llvm-cov diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index c067cc89..3ba26e28 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.50.10 + uses: taiki-e/install-action@v2.51.2 with: tool: just From 3ebed4701d80fcc754b451a90e84bf1fde144c81 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 24 May 2025 08:19:37 +0100 Subject: [PATCH 289/410] build(deps): bump codecov/codecov-action from 5.4.2 to 5.4.3 (#678) Bumps [codecov/codecov-action](https://github.com/codecov/codecov-action) from 5.4.2 to 5.4.3. - [Release notes](https://github.com/codecov/codecov-action/releases) - [Changelog](https://github.com/codecov/codecov-action/blob/main/CHANGELOG.md) - [Commits](https://github.com/codecov/codecov-action/compare/v5.4.2...v5.4.3) --- updated-dependencies: - dependency-name: codecov/codecov-action dependency-version: 5.4.3 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/coverage.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml index 1b8ee51d..b0c9b95b 100644 --- a/.github/workflows/coverage.yml +++ b/.github/workflows/coverage.yml @@ -31,7 +31,7 @@ jobs: run: cargo llvm-cov --workspace --all-features --codecov --output-path codecov.json - name: Upload coverage to Codecov - uses: codecov/codecov-action@v5.4.2 + uses: codecov/codecov-action@v5.4.3 with: files: codecov.json fail_ci_if_error: true From 1a1af68bf068d53b7e7318ba79d1ce3138c33559 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 2 Jun 2025 10:38:20 +0100 Subject: [PATCH 290/410] build(deps): bump socket2 from 0.5.9 to 0.5.10 (#683) Bumps [socket2](https://github.com/rust-lang/socket2) from 0.5.9 to 0.5.10. - [Release notes](https://github.com/rust-lang/socket2/releases) - [Changelog](https://github.com/rust-lang/socket2/blob/master/CHANGELOG.md) - [Commits](https://github.com/rust-lang/socket2/commits) --- updated-dependencies: - dependency-name: socket2 dependency-version: 0.5.10 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 | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index c7c7c97a..b5a5ed35 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -55,7 +55,7 @@ dependencies = [ "futures-util", "mio", "pretty_env_logger", - "socket2 0.5.9", + "socket2 0.5.10", "static_assertions", "tokio", "tokio-uring", @@ -950,7 +950,7 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b58db92f96b720de98181bbbe63c831e87005ab460c1bf306eb2622b4707997f" dependencies = [ - "socket2 0.5.9", + "socket2 0.5.10", "widestring", "windows-sys 0.48.0", "winreg", @@ -1950,9 +1950,9 @@ dependencies = [ [[package]] name = "socket2" -version = "0.5.9" +version = "0.5.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f5fd57c80058a56cf5c777ab8a126398ece8e442983605d280a44ce79d0edef" +checksum = "e22376abed350d73dd1cd119b57ffccad95b4e585a7cda43e286245ce23c0678" dependencies = [ "libc", "windows-sys 0.52.0", @@ -2129,7 +2129,7 @@ dependencies = [ "parking_lot", "pin-project-lite", "signal-hook-registry", - "socket2 0.5.9", + "socket2 0.5.10", "tokio-macros", "windows-sys 0.52.0", ] From 758c37b80c6332a2e1a7ce43b38df7b669c2e09f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 12 Jun 2025 03:38:15 +0100 Subject: [PATCH 291/410] build(deps): bump taiki-e/install-action from 2.51.2 to 2.52.7 (#686) Bumps [taiki-e/install-action](https://github.com/taiki-e/install-action) from 2.51.2 to 2.52.7. - [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.51.2...v2.52.7) --- updated-dependencies: - dependency-name: taiki-e/install-action dependency-version: 2.52.7 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 2b266930..a64a44f8 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.51.2 + uses: taiki-e/install-action@v2.52.7 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.51.2 + uses: taiki-e/install-action@v2.52.7 with: tool: cargo-hack,cargo-minimal-versions diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index e41208ea..dc78064a 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.51.2 + uses: taiki-e/install-action@v2.52.7 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.51.2 + uses: taiki-e/install-action@v2.52.7 with: tool: just diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml index b0c9b95b..55d1b1a1 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.51.2 + uses: taiki-e/install-action@v2.52.7 with: tool: cargo-llvm-cov diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 3ba26e28..7f80bd44 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.51.2 + uses: taiki-e/install-action@v2.52.7 with: tool: just From 9c646e4998290fb04f6e395288ba7602c4bff449 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 12 Jun 2025 03:51:52 +0100 Subject: [PATCH 292/410] build(deps): bump tokio from 1.45.0 to 1.45.1 (#681) Bumps [tokio](https://github.com/tokio-rs/tokio) from 1.45.0 to 1.45.1. - [Release notes](https://github.com/tokio-rs/tokio/releases) - [Commits](https://github.com/tokio-rs/tokio/compare/tokio-1.45.0...tokio-1.45.1) --- updated-dependencies: - dependency-name: tokio dependency-version: 1.45.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> --- Cargo.lock | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index b5a5ed35..7f5de74a 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2118,9 +2118,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.45.0" +version = "1.45.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2513ca694ef9ede0fb23fe71a4ee4107cb102b9dc1930f6d0fd77aae068ae165" +checksum = "75ef51a33ef1da925cea3e4eb122833cb377c61439ca401b770f54902b806779" dependencies = [ "backtrace", "bytes", From 0be1dd8156ccfef496c6babfd866a164b1619e93 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 12 Jun 2025 03:51:56 +0100 Subject: [PATCH 293/410] build(deps): bump mio from 1.0.3 to 1.0.4 (#682) Bumps [mio](https://github.com/tokio-rs/mio) from 1.0.3 to 1.0.4. - [Release notes](https://github.com/tokio-rs/mio/releases) - [Changelog](https://github.com/tokio-rs/mio/blob/master/CHANGELOG.md) - [Commits](https://github.com/tokio-rs/mio/commits) --- updated-dependencies: - dependency-name: mio dependency-version: 1.0.4 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 | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 7f5de74a..1330c065 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1150,14 +1150,14 @@ dependencies = [ [[package]] name = "mio" -version = "1.0.3" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2886843bf800fba2e3377cff24abf6379b4c4d5c6681eaf9ea5b0d15090450bd" +checksum = "78bed444cc8a2160f01cbcf811ef18cac863ad68ae8ca62092e8db51d51c761c" dependencies = [ "libc", "log", "wasi 0.11.0+wasi-snapshot-preview1", - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] From da1c0024f032a2c65d20225b6b4465458b4282d8 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 23 Jun 2025 09:58:14 +0000 Subject: [PATCH 294/410] build(deps): bump taiki-e/install-action from 2.52.7 to 2.54.0 (#687) * build(deps): bump taiki-e/install-action from 2.52.7 to 2.53.0 Bumps [taiki-e/install-action](https://github.com/taiki-e/install-action) from 2.52.7 to 2.53.0. - [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.52.7...v2.53.0) --- updated-dependencies: - dependency-name: taiki-e/install-action dependency-version: 2.53.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] * Apply suggestions from code review --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Yuki Okushi --- .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 a64a44f8..47799974 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.52.7 + uses: taiki-e/install-action@v2.54.0 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.52.7 + uses: taiki-e/install-action@v2.54.0 with: tool: cargo-hack,cargo-minimal-versions diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index dc78064a..3addfb92 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.52.7 + uses: taiki-e/install-action@v2.54.0 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.52.7 + uses: taiki-e/install-action@v2.54.0 with: tool: just diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml index 55d1b1a1..f1115416 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.52.7 + uses: taiki-e/install-action@v2.54.0 with: tool: cargo-llvm-cov diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 7f80bd44..c0d7ca8f 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.52.7 + uses: taiki-e/install-action@v2.54.0 with: tool: just From 1ad8a98f1bdb18f99e0587d445de0140a7fbe204 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 23 Jun 2025 19:25:58 +0900 Subject: [PATCH 295/410] build(deps): bump slab from 0.4.9 to 0.4.10 (#688) Bumps [slab](https://github.com/tokio-rs/slab) from 0.4.9 to 0.4.10. - [Release notes](https://github.com/tokio-rs/slab/releases) - [Changelog](https://github.com/tokio-rs/slab/blob/master/CHANGELOG.md) - [Commits](https://github.com/tokio-rs/slab/compare/v0.4.9...v0.4.10) --- updated-dependencies: - dependency-name: slab dependency-version: 0.4.10 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 | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 1330c065..f0801daf 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1925,12 +1925,9 @@ dependencies = [ [[package]] name = "slab" -version = "0.4.9" +version = "0.4.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" -dependencies = [ - "autocfg", -] +checksum = "04dc19736151f35336d325007ac991178d504a119863a2fcb3758cdb5e52c50d" [[package]] name = "smallvec" From 120e0206eb5bfc511e705f385e73edc5ca897e26 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 23 Jun 2025 19:26:06 +0900 Subject: [PATCH 296/410] build(deps): bump syn from 2.0.101 to 2.0.103 (#689) Bumps [syn](https://github.com/dtolnay/syn) from 2.0.101 to 2.0.103. - [Release notes](https://github.com/dtolnay/syn/releases) - [Commits](https://github.com/dtolnay/syn/compare/2.0.101...2.0.103) --- updated-dependencies: - dependency-name: syn dependency-version: 2.0.103 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 f0801daf..f4ee808f 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1981,9 +1981,9 @@ checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" [[package]] name = "syn" -version = "2.0.101" +version = "2.0.103" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ce2b7fc941b3a24138a0a7cf8e858bfc6a992e7978a068a5c760deb0ed43caf" +checksum = "e4307e30089d6fd6aff212f2da3a1f9e32f3223b1f010fb09b7c95f90f3ca1e8" dependencies = [ "proc-macro2", "quote", From 3d54a00d5b8728fe466e515aee2959e343ce2b92 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 23 Jun 2025 19:26:10 +0900 Subject: [PATCH 297/410] build(deps): bump memchr from 2.7.4 to 2.7.5 (#690) Bumps [memchr](https://github.com/BurntSushi/memchr) from 2.7.4 to 2.7.5. - [Commits](https://github.com/BurntSushi/memchr/compare/2.7.4...2.7.5) --- updated-dependencies: - dependency-name: memchr dependency-version: 2.7.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 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index f4ee808f..8494e5ea 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1129,9 +1129,9 @@ dependencies = [ [[package]] name = "memchr" -version = "2.7.4" +version = "2.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" +checksum = "32a282da65faaf38286cf3be983213fcf1d2e2a58700e808f83f4ea9a4804bc0" [[package]] name = "minimal-lexical" From 05065186ff2ce67120fe30228e37a5fa0bad28c8 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 28 Jun 2025 22:57:10 +0900 Subject: [PATCH 298/410] build(deps): bump taiki-e/cache-cargo-install-action from 2.1.1 to 2.1.2 (#693) Bumps [taiki-e/cache-cargo-install-action](https://github.com/taiki-e/cache-cargo-install-action) from 2.1.1 to 2.1.2. - [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/v2.1.1...v2.1.2) --- updated-dependencies: - dependency-name: taiki-e/cache-cargo-install-action dependency-version: 2.1.2 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 c0d7ca8f..1fc0db2d 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@v2.1.1 + uses: taiki-e/cache-cargo-install-action@v2.1.2 with: tool: cargo-check-external-types From c9cea8644543dfdcc7da29a31c9157ae58b1088a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 28 Jun 2025 22:57:32 +0900 Subject: [PATCH 299/410] build(deps): bump actions-rust-lang/setup-rust-toolchain (#691) Bumps [actions-rust-lang/setup-rust-toolchain](https://github.com/actions-rust-lang/setup-rust-toolchain) from 1.12.0 to 1.13.0. - [Release notes](https://github.com/actions-rust-lang/setup-rust-toolchain/releases) - [Changelog](https://github.com/actions-rust-lang/setup-rust-toolchain/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions-rust-lang/setup-rust-toolchain/compare/v1.12.0...v1.13.0) --- updated-dependencies: - dependency-name: actions-rust-lang/setup-rust-toolchain dependency-version: 1.13.0 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 | 6 +++--- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/.github/workflows/ci-post-merge.yml b/.github/workflows/ci-post-merge.yml index 47799974..9d357491 100644 --- a/.github/workflows/ci-post-merge.yml +++ b/.github/workflows/ci-post-merge.yml @@ -59,7 +59,7 @@ jobs: echo "RUSTFLAGS=-C target-feature=+crt-static" >> $GITHUB_ENV - name: Install Rust (${{ matrix.version }}) - uses: actions-rust-lang/setup-rust-toolchain@v1.12.0 + uses: actions-rust-lang/setup-rust-toolchain@v1.13.0 with: toolchain: ${{ matrix.version }} @@ -116,7 +116,7 @@ jobs: - uses: actions/checkout@v4 - name: Install Rust (nightly) - uses: actions-rust-lang/setup-rust-toolchain@v1.12.0 + uses: actions-rust-lang/setup-rust-toolchain@v1.13.0 with: toolchain: nightly diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 3addfb92..d9d1f610 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -68,7 +68,7 @@ jobs: echo "RUSTFLAGS=-C target-feature=+crt-static" >> $GITHUB_ENV - name: Install Rust (${{ matrix.version.name }}) - uses: actions-rust-lang/setup-rust-toolchain@v1.12.0 + uses: actions-rust-lang/setup-rust-toolchain@v1.13.0 with: toolchain: ${{ matrix.version.version }} @@ -120,7 +120,7 @@ jobs: - uses: actions/checkout@v4 - name: Install Rust (nightly) - uses: actions-rust-lang/setup-rust-toolchain@v1.12.0 + uses: actions-rust-lang/setup-rust-toolchain@v1.13.0 with: toolchain: nightly diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml index f1115416..6ffd58fa 100644 --- a/.github/workflows/coverage.yml +++ b/.github/workflows/coverage.yml @@ -18,7 +18,7 @@ jobs: - uses: actions/checkout@v4 - name: Install Rust - uses: actions-rust-lang/setup-rust-toolchain@v1.12.0 + uses: actions-rust-lang/setup-rust-toolchain@v1.13.0 with: components: llvm-tools-preview diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 1fc0db2d..4f90ecbb 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -18,7 +18,7 @@ jobs: steps: - uses: actions/checkout@v4 - - uses: actions-rust-lang/setup-rust-toolchain@v1.12.0 + - uses: actions-rust-lang/setup-rust-toolchain@v1.13.0 with: toolchain: nightly components: rustfmt @@ -35,7 +35,7 @@ jobs: steps: - uses: actions/checkout@v4 - - uses: actions-rust-lang/setup-rust-toolchain@v1.12.0 + - uses: actions-rust-lang/setup-rust-toolchain@v1.13.0 with: { components: clippy } - uses: giraffate/clippy-action@v1.0.1 @@ -51,7 +51,7 @@ jobs: - uses: actions/checkout@v4 - name: Install Rust (${{ vars.RUST_VERSION_EXTERNAL_TYPES }}) - uses: actions-rust-lang/setup-rust-toolchain@v1.12.0 + uses: actions-rust-lang/setup-rust-toolchain@v1.13.0 with: toolchain: ${{ vars.RUST_VERSION_EXTERNAL_TYPES }} From bbac9966779ca31670309cdd0764423872651f45 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 30 Jun 2025 22:44:21 +0100 Subject: [PATCH 300/410] build(deps): bump taiki-e/cache-cargo-install-action from 2.1.2 to 2.2.0 (#694) Bumps [taiki-e/cache-cargo-install-action](https://github.com/taiki-e/cache-cargo-install-action) from 2.1.2 to 2.2.0. - [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/v2.1.2...v2.2.0) --- updated-dependencies: - dependency-name: taiki-e/cache-cargo-install-action dependency-version: 2.2.0 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/lint.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 4f90ecbb..87c6f612 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@v2.1.2 + uses: taiki-e/cache-cargo-install-action@v2.2.0 with: tool: cargo-check-external-types From 637bd709aeac8ad6f07c688ef65cb14fca2cf31d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 30 Jun 2025 21:51:44 +0000 Subject: [PATCH 301/410] build(deps): bump taiki-e/install-action from 2.54.0 to 2.55.1 (#695) Bumps [taiki-e/install-action](https://github.com/taiki-e/install-action) from 2.54.0 to 2.55.1. - [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.54.0...v2.55.1) --- updated-dependencies: - dependency-name: taiki-e/install-action dependency-version: 2.55.1 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 9d357491..168e19d5 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.54.0 + uses: taiki-e/install-action@v2.55.1 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.54.0 + uses: taiki-e/install-action@v2.55.1 with: tool: cargo-hack,cargo-minimal-versions diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index d9d1f610..d2b6ac3b 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.54.0 + uses: taiki-e/install-action@v2.55.1 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.54.0 + uses: taiki-e/install-action@v2.55.1 with: tool: just diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml index 6ffd58fa..e6251f22 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.54.0 + uses: taiki-e/install-action@v2.55.1 with: tool: cargo-llvm-cov diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 87c6f612..6062a4d8 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.54.0 + uses: taiki-e/install-action@v2.55.1 with: tool: just From 64a2d1c1eb7ab0ba42779c5f07ac3fa9cd561ca2 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 1 Jul 2025 00:09:03 +0100 Subject: [PATCH 302/410] build(deps): bump syn from 2.0.103 to 2.0.104 (#692) Bumps [syn](https://github.com/dtolnay/syn) from 2.0.103 to 2.0.104. - [Release notes](https://github.com/dtolnay/syn/releases) - [Commits](https://github.com/dtolnay/syn/compare/2.0.103...2.0.104) --- updated-dependencies: - dependency-name: syn dependency-version: 2.0.104 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 8494e5ea..46a21a91 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1981,9 +1981,9 @@ checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" [[package]] name = "syn" -version = "2.0.103" +version = "2.0.104" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e4307e30089d6fd6aff212f2da3a1f9e32f3223b1f010fb09b7c95f90f3ca1e8" +checksum = "17b6f705963418cdb9927482fa304bc562ece2fdd4f616084c50b7023b435a40" dependencies = [ "proc-macro2", "quote", From a91bdcb80c708412b435829cc4cf5a0a1ffe933f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 10 Jul 2025 09:09:32 +0100 Subject: [PATCH 303/410] build(deps): bump tokio from 1.45.1 to 1.46.1 (#698) Bumps [tokio](https://github.com/tokio-rs/tokio) from 1.45.1 to 1.46.1. - [Release notes](https://github.com/tokio-rs/tokio/releases) - [Commits](https://github.com/tokio-rs/tokio/compare/tokio-1.45.1...tokio-1.46.1) --- updated-dependencies: - dependency-name: tokio dependency-version: 1.46.1 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> --- Cargo.lock | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 46a21a91..3bca6388 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -944,6 +944,17 @@ dependencies = [ "libc", ] +[[package]] +name = "io-uring" +version = "0.7.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b86e202f00093dcba4275d4636b93ef9dd75d025ae560d2521b45ea28ab49013" +dependencies = [ + "bitflags 2.9.1", + "cfg-if", + "libc", +] + [[package]] name = "ipconfig" version = "0.3.2" @@ -2115,17 +2126,19 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.45.1" +version = "1.46.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75ef51a33ef1da925cea3e4eb122833cb377c61439ca401b770f54902b806779" +checksum = "0cc3a2344dafbe23a245241fe8b09735b521110d30fcefbbd5feb1797ca35d17" dependencies = [ "backtrace", "bytes", + "io-uring 0.7.8", "libc", "mio", "parking_lot", "pin-project-lite", "signal-hook-registry", + "slab", "socket2 0.5.10", "tokio-macros", "windows-sys 0.52.0", @@ -2236,7 +2249,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "748482e3e13584a34664a710168ad5068e8cb1d968aa4ffa887e83ca6dd27967" dependencies = [ "futures-util", - "io-uring", + "io-uring 0.6.4", "libc", "slab", "socket2 0.4.10", From 21de88385e280b9855b58dc15426da582782e13c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 10 Jul 2025 09:09:41 +0100 Subject: [PATCH 304/410] build(deps): bump taiki-e/install-action from 2.55.1 to 2.56.7 (#697) Bumps [taiki-e/install-action](https://github.com/taiki-e/install-action) from 2.55.1 to 2.56.7. - [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.55.1...v2.56.7) --- updated-dependencies: - dependency-name: taiki-e/install-action dependency-version: 2.56.7 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 168e19d5..3f1ae918 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.55.1 + uses: taiki-e/install-action@v2.56.7 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.55.1 + uses: taiki-e/install-action@v2.56.7 with: tool: cargo-hack,cargo-minimal-versions diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index d2b6ac3b..996488c1 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.55.1 + uses: taiki-e/install-action@v2.56.7 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.55.1 + uses: taiki-e/install-action@v2.56.7 with: tool: just diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml index e6251f22..786eb3f3 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.55.1 + uses: taiki-e/install-action@v2.56.7 with: tool: cargo-llvm-cov diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 6062a4d8..b0b3eb58 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.55.1 + uses: taiki-e/install-action@v2.56.7 with: tool: just From e6ddf0ccff23a737d803490491b8ecf9f489bd0d Mon Sep 17 00:00:00 2001 From: Thomas de Zeeuw Date: Mon, 14 Jul 2025 03:13:23 +0200 Subject: [PATCH 305/410] Update to socket2 v0.6 (#696) --- Cargo.lock | 12 +++++++++++- actix-server/Cargo.toml | 2 +- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 3bca6388..338ff9ea 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -55,7 +55,7 @@ dependencies = [ "futures-util", "mio", "pretty_env_logger", - "socket2 0.5.10", + "socket2 0.6.0", "static_assertions", "tokio", "tokio-uring", @@ -1966,6 +1966,16 @@ dependencies = [ "windows-sys 0.52.0", ] +[[package]] +name = "socket2" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "233504af464074f9d066d7b5416c5f9b894a5862a6506e306f7b816cdd6f1807" +dependencies = [ + "libc", + "windows-sys 0.59.0", +] + [[package]] name = "spin" version = "0.5.2" diff --git a/actix-server/Cargo.toml b/actix-server/Cargo.toml index e197260e..fe8c10c3 100644 --- a/actix-server/Cargo.toml +++ b/actix-server/Cargo.toml @@ -29,7 +29,7 @@ actix-utils = "3" futures-core = { version = "0.3.17", default-features = false, features = ["alloc"] } futures-util = { version = "0.3.17", default-features = false, features = ["alloc"] } mio = { version = "1", features = ["os-poll", "net"] } -socket2 = "0.5" +socket2 = "0.6" tokio = { version = "1.44.2", features = ["sync"] } tracing = { version = "0.1.30", default-features = false, features = ["log"] } From 4cb04042f5879b9ed1fe03bb3e00f7750e88c683 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 15 Jul 2025 04:39:11 +0100 Subject: [PATCH 306/410] build(deps): bump taiki-e/install-action from 2.56.7 to 2.56.13 (#699) Bumps [taiki-e/install-action](https://github.com/taiki-e/install-action) from 2.56.7 to 2.56.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.56.7...v2.56.13) --- updated-dependencies: - dependency-name: taiki-e/install-action dependency-version: 2.56.13 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/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 3f1ae918..bc1d879e 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.56.7 + uses: taiki-e/install-action@v2.56.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.56.7 + uses: taiki-e/install-action@v2.56.13 with: tool: cargo-hack,cargo-minimal-versions diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 996488c1..765d8564 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.56.7 + uses: taiki-e/install-action@v2.56.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.56.7 + uses: taiki-e/install-action@v2.56.13 with: tool: just diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml index 786eb3f3..acec35ba 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.56.7 + uses: taiki-e/install-action@v2.56.13 with: tool: cargo-llvm-cov diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index b0b3eb58..6c48570d 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.56.7 + uses: taiki-e/install-action@v2.56.13 with: tool: just From 347fc1703534c76cd4d756263a59f15c0df01635 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 15 Jul 2025 04:39:14 +0100 Subject: [PATCH 307/410] build(deps): bump trybuild from 1.0.105 to 1.0.106 (#700) Bumps [trybuild](https://github.com/dtolnay/trybuild) from 1.0.105 to 1.0.106. - [Release notes](https://github.com/dtolnay/trybuild/releases) - [Commits](https://github.com/dtolnay/trybuild/compare/1.0.105...1.0.106) --- updated-dependencies: - dependency-name: trybuild dependency-version: 1.0.106 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 | 63 +++++++++++++++++++++++++----------------------------- 1 file changed, 29 insertions(+), 34 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 338ff9ea..d0d7e28e 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1903,9 +1903,9 @@ dependencies = [ [[package]] name = "serde_spanned" -version = "0.6.8" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87607cb1398ed59d48732e575a4c28a7a8ebf2454b964fe3f224f2afc07909e1" +checksum = "40734c41988f7306bb04f0ecf60ec0f3f1caa34290e4e8ea471dcd3346483b83" dependencies = [ "serde", ] @@ -2281,44 +2281,42 @@ dependencies = [ [[package]] name = "toml" -version = "0.8.22" +version = "0.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05ae329d1f08c4d17a59bed7ff5b5a769d062e64a62d34a3261b219e62cd5aae" -dependencies = [ - "serde", - "serde_spanned", - "toml_datetime", - "toml_edit", -] - -[[package]] -name = "toml_datetime" -version = "0.6.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3da5db5a963e24bc68be8b17b6fa82814bb22ee8660f192bb182771d498f09a3" -dependencies = [ - "serde", -] - -[[package]] -name = "toml_edit" -version = "0.22.26" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "310068873db2c5b3e7659d2cc35d21855dbafa50d1ce336397c666e3cb08137e" +checksum = "ed0aee96c12fa71097902e0bb061a5e1ebd766a6636bb605ba401c45c1650eac" dependencies = [ "indexmap", "serde", "serde_spanned", "toml_datetime", - "toml_write", + "toml_parser", + "toml_writer", "winnow", ] [[package]] -name = "toml_write" -version = "0.1.1" +name = "toml_datetime" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfb942dfe1d8e29a7ee7fcbde5bd2b9a25fb89aa70caea2eba3bee836ff41076" +checksum = "bade1c3e902f58d73d3f294cd7f20391c1cb2fbcb643b73566bc773971df91e3" +dependencies = [ + "serde", +] + +[[package]] +name = "toml_parser" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97200572db069e74c512a14117b296ba0a80a30123fbbb5aa1f4a348f639ca30" +dependencies = [ + "winnow", +] + +[[package]] +name = "toml_writer" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fcc842091f2def52017664b53082ecbbeb5c7731092bad69d2c63050401dfd64" [[package]] name = "tracing" @@ -2440,9 +2438,9 @@ dependencies = [ [[package]] name = "trybuild" -version = "1.0.105" +version = "1.0.106" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c9bf9513a2f4aeef5fdac8677d7d349c79fdbcc03b9c86da6e9d254f1e43be2" +checksum = "65af40ad689f2527aebbd37a0a816aea88ff5f774ceabe99de5be02f2f91dae2" dependencies = [ "glob", "serde", @@ -2859,9 +2857,6 @@ name = "winnow" version = "0.7.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c06928c8748d81b05c9be96aad92e1b6ff01833332f281e8cfca3be4b35fc9ec" -dependencies = [ - "memchr", -] [[package]] name = "winreg" From 95d569d8d7e151f8d554340c47f934ea5ec29fda Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 10 Aug 2025 06:39:12 +0100 Subject: [PATCH 308/410] build(deps): bump serde_json from 1.0.140 to 1.0.141 (#702) Bumps [serde_json](https://github.com/serde-rs/json) from 1.0.140 to 1.0.141. - [Release notes](https://github.com/serde-rs/json/releases) - [Commits](https://github.com/serde-rs/json/compare/v1.0.140...v1.0.141) --- updated-dependencies: - dependency-name: serde_json dependency-version: 1.0.141 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 d0d7e28e..132222d0 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1891,9 +1891,9 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.140" +version = "1.0.141" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "20068b6e96dc6c9bd23e01df8827e6c7e1f2fddd43c21810382803c136b99373" +checksum = "30b9eff21ebe718216c6ec64e1d9ac57087aad11efc64e32002bce4a0d4c03d3" dependencies = [ "itoa", "memchr", From 6c6f7f19f5b9300f71c8f1e3f449b884d1cf5cdf Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 10 Aug 2025 06:39:25 +0100 Subject: [PATCH 309/410] build(deps): bump taiki-e/install-action from 2.56.13 to 2.56.19 (#701) Bumps [taiki-e/install-action](https://github.com/taiki-e/install-action) from 2.56.13 to 2.56.19. - [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.56.13...v2.56.19) --- updated-dependencies: - dependency-name: taiki-e/install-action dependency-version: 2.56.19 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/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 bc1d879e..fb37382c 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.56.13 + uses: taiki-e/install-action@v2.56.19 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.56.13 + uses: taiki-e/install-action@v2.56.19 with: tool: cargo-hack,cargo-minimal-versions diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 765d8564..33bb1d65 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.56.13 + uses: taiki-e/install-action@v2.56.19 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.56.13 + uses: taiki-e/install-action@v2.56.19 with: tool: just diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml index acec35ba..06a33432 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.56.13 + uses: taiki-e/install-action@v2.56.19 with: tool: cargo-llvm-cov diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 6c48570d..c2c0b98d 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.56.13 + uses: taiki-e/install-action@v2.56.19 with: tool: just From 20ae763da84494ea6f8c78fdff62ddf2350dae30 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 12 Aug 2025 06:28:45 +0100 Subject: [PATCH 310/410] build(deps): bump taiki-e/cache-cargo-install-action from 2.2.0 to 2.3.0 (#705) Bumps [taiki-e/cache-cargo-install-action](https://github.com/taiki-e/cache-cargo-install-action) from 2.2.0 to 2.3.0. - [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/v2.2.0...v2.3.0) --- updated-dependencies: - dependency-name: taiki-e/cache-cargo-install-action dependency-version: 2.3.0 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/lint.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index c2c0b98d..8b98b724 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@v2.2.0 + uses: taiki-e/cache-cargo-install-action@v2.3.0 with: tool: cargo-check-external-types From 0c8337f1c99289f71ecad6df4a43ae04a8326dba Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 12 Aug 2025 06:28:51 +0100 Subject: [PATCH 311/410] build(deps): bump taiki-e/install-action from 2.56.19 to 2.58.9 (#711) Bumps [taiki-e/install-action](https://github.com/taiki-e/install-action) from 2.56.19 to 2.58.9. - [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.56.19...v2.58.9) --- updated-dependencies: - dependency-name: taiki-e/install-action dependency-version: 2.58.9 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 fb37382c..d107b033 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.56.19 + uses: taiki-e/install-action@v2.58.9 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.56.19 + uses: taiki-e/install-action@v2.58.9 with: tool: cargo-hack,cargo-minimal-versions diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 33bb1d65..a355ffb3 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.56.19 + uses: taiki-e/install-action@v2.58.9 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.56.19 + uses: taiki-e/install-action@v2.58.9 with: tool: just diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml index 06a33432..81a2ae31 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.56.19 + uses: taiki-e/install-action@v2.58.9 with: tool: cargo-llvm-cov diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 8b98b724..1f74df1b 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.56.19 + uses: taiki-e/install-action@v2.58.9 with: tool: just From 3e925d8f808c45b6d1de10759af269afaa2b9ad2 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 12 Aug 2025 06:28:52 +0100 Subject: [PATCH 312/410] build(deps): bump slab from 0.4.10 to 0.4.11 (#710) Bumps [slab](https://github.com/tokio-rs/slab) from 0.4.10 to 0.4.11. - [Release notes](https://github.com/tokio-rs/slab/releases) - [Changelog](https://github.com/tokio-rs/slab/blob/master/CHANGELOG.md) - [Commits](https://github.com/tokio-rs/slab/compare/v0.4.10...v0.4.11) --- updated-dependencies: - dependency-name: slab dependency-version: 0.4.11 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 132222d0..cfc5187a 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1936,9 +1936,9 @@ dependencies = [ [[package]] name = "slab" -version = "0.4.10" +version = "0.4.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04dc19736151f35336d325007ac991178d504a119863a2fcb3758cdb5e52c50d" +checksum = "7a2ae44ef20feb57a68b23d846850f861394c2e02dc425a50098ae8c90267589" [[package]] name = "smallvec" From d869455251e31631b6f4bea00f74f8e0fc62f61e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 12 Aug 2025 06:28:54 +0100 Subject: [PATCH 313/410] build(deps): bump trybuild from 1.0.106 to 1.0.110 (#709) Bumps [trybuild](https://github.com/dtolnay/trybuild) from 1.0.106 to 1.0.110. - [Release notes](https://github.com/dtolnay/trybuild/releases) - [Commits](https://github.com/dtolnay/trybuild/compare/1.0.106...1.0.110) --- updated-dependencies: - dependency-name: trybuild dependency-version: 1.0.110 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 cfc5187a..41408be5 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2438,9 +2438,9 @@ dependencies = [ [[package]] name = "trybuild" -version = "1.0.106" +version = "1.0.110" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "65af40ad689f2527aebbd37a0a816aea88ff5f774ceabe99de5be02f2f91dae2" +checksum = "32e257d7246e7a9fd015fb0b28b330a8d4142151a33f03e6a497754f4b1f6a8e" dependencies = [ "glob", "serde", From cfddd3ea2e987b9db67cb2e4f41cfaf33c4a24dd Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 12 Aug 2025 06:28:56 +0100 Subject: [PATCH 314/410] build(deps): bump serde_json from 1.0.141 to 1.0.142 (#708) Bumps [serde_json](https://github.com/serde-rs/json) from 1.0.141 to 1.0.142. - [Release notes](https://github.com/serde-rs/json/releases) - [Commits](https://github.com/serde-rs/json/compare/v1.0.141...v1.0.142) --- updated-dependencies: - dependency-name: serde_json dependency-version: 1.0.142 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 41408be5..f53a8784 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1891,9 +1891,9 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.141" +version = "1.0.142" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30b9eff21ebe718216c6ec64e1d9ac57087aad11efc64e32002bce4a0d4c03d3" +checksum = "030fedb782600dcbd6f02d479bf0d817ac3bb40d644745b769d6a96bc3afc5a7" dependencies = [ "itoa", "memchr", From 222527a407f9a09eb32ff62a34db6eafe32a1ddb Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 12 Aug 2025 05:28:58 +0000 Subject: [PATCH 315/410] build(deps): bump actions/checkout from 4 to 5 (#707) Bumps [actions/checkout](https://github.com/actions/checkout) from 4 to 5. - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/checkout/compare/v4...v5) --- updated-dependencies: - dependency-name: actions/checkout dependency-version: '5' dependency-type: direct:production update-type: version-update:semver-major ... 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 | 6 +++--- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/.github/workflows/ci-post-merge.yml b/.github/workflows/ci-post-merge.yml index d107b033..56664b33 100644 --- a/.github/workflows/ci-post-merge.yml +++ b/.github/workflows/ci-post-merge.yml @@ -35,7 +35,7 @@ jobs: if: matrix.target.os == 'macos-latest' run: sudo ifconfig lo0 alias 127.0.0.3 - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - name: Free Disk Space if: matrix.target.os == 'ubuntu-latest' @@ -113,7 +113,7 @@ jobs: name: minimal versions runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - name: Install Rust (nightly) uses: actions-rust-lang/setup-rust-toolchain@v1.13.0 diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index a355ffb3..7b99eaac 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -44,7 +44,7 @@ jobs: if: matrix.target.os == 'macos-latest' run: sudo ifconfig lo0 alias 127.0.0.3 - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - name: Free Disk Space if: matrix.target.os == 'ubuntu-latest' @@ -117,7 +117,7 @@ jobs: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - name: Install Rust (nightly) uses: actions-rust-lang/setup-rust-toolchain@v1.13.0 diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml index 81a2ae31..dd946691 100644 --- a/.github/workflows/coverage.yml +++ b/.github/workflows/coverage.yml @@ -15,7 +15,7 @@ jobs: coverage: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - name: Install Rust uses: actions-rust-lang/setup-rust-toolchain@v1.13.0 diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 1f74df1b..1f273ab1 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -16,7 +16,7 @@ jobs: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - uses: actions-rust-lang/setup-rust-toolchain@v1.13.0 with: @@ -33,7 +33,7 @@ jobs: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - uses: actions-rust-lang/setup-rust-toolchain@v1.13.0 with: { components: clippy } @@ -48,7 +48,7 @@ jobs: if: false # rustdoc mismatch currently runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - name: Install Rust (${{ vars.RUST_VERSION_EXTERNAL_TYPES }}) uses: actions-rust-lang/setup-rust-toolchain@v1.13.0 From 75e56d56d8d0e2547e9355bf0b5ab78a3006cf92 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 12 Aug 2025 05:29:00 +0000 Subject: [PATCH 316/410] build(deps): bump tokio from 1.46.1 to 1.47.1 (#706) Bumps [tokio](https://github.com/tokio-rs/tokio) from 1.46.1 to 1.47.1. - [Release notes](https://github.com/tokio-rs/tokio/releases) - [Commits](https://github.com/tokio-rs/tokio/compare/tokio-1.46.1...tokio-1.47.1) --- updated-dependencies: - dependency-name: tokio dependency-version: 1.47.1 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> --- Cargo.lock | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index f53a8784..7cb20a6e 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2136,9 +2136,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.46.1" +version = "1.47.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0cc3a2344dafbe23a245241fe8b09735b521110d30fcefbbd5feb1797ca35d17" +checksum = "89e49afdadebb872d3145a5638b59eb0691ea23e46ca484037cfab3b76b95038" dependencies = [ "backtrace", "bytes", @@ -2149,9 +2149,9 @@ dependencies = [ "pin-project-lite", "signal-hook-registry", "slab", - "socket2 0.5.10", + "socket2 0.6.0", "tokio-macros", - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] From ee3d54f5743440e1ebd5ce5b7aae90565a7c2bfe Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 12 Aug 2025 06:29:11 +0100 Subject: [PATCH 317/410] build(deps): bump tokio-util from 0.7.15 to 0.7.16 (#704) Bumps [tokio-util](https://github.com/tokio-rs/tokio) from 0.7.15 to 0.7.16. - [Release notes](https://github.com/tokio-rs/tokio/releases) - [Commits](https://github.com/tokio-rs/tokio/compare/tokio-util-0.7.15...tokio-util-0.7.16) --- updated-dependencies: - dependency-name: tokio-util dependency-version: 0.7.16 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 7cb20a6e..cd8b32c7 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2268,9 +2268,9 @@ dependencies = [ [[package]] name = "tokio-util" -version = "0.7.15" +version = "0.7.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "66a539a9ad6d5d281510d5bd368c973d636c02dbf8a67300bfb6b950696ad7df" +checksum = "14307c986784f72ef81c89db7d9e28d6ac26d16213b109ea501696195e6e3ce5" dependencies = [ "bytes", "futures-core", From 1ea0f773b6bd54d30f441f3ee0c8f4c968f6e47d Mon Sep 17 00:00:00 2001 From: Yuki Okushi Date: Fri, 22 Aug 2025 11:53:32 +0900 Subject: [PATCH 318/410] chore: Bump up MSRV to 1.80 (#716) --- Cargo.toml | 2 +- actix-codec/CHANGES.md | 2 +- actix-macros/CHANGES.md | 2 +- actix-rt/CHANGES.md | 2 +- actix-server/CHANGES.md | 2 +- actix-service/CHANGES.md | 2 +- actix-tls/CHANGES.md | 2 +- actix-tracing/CHANGES.md | 2 +- actix-utils/CHANGES.md | 2 +- bytestring/CHANGES.md | 2 +- local-channel/CHANGES.md | 2 +- local-waker/CHANGES.md | 2 +- 12 files changed, 12 insertions(+), 12 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index 668e0d62..6d30e065 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -17,7 +17,7 @@ members = [ [workspace.package] license = "MIT OR Apache-2.0" edition = "2021" -rust-version = "1.74" +rust-version = "1.80" [patch.crates-io] actix-codec = { path = "actix-codec" } diff --git a/actix-codec/CHANGES.md b/actix-codec/CHANGES.md index d2043cbe..58208e64 100644 --- a/actix-codec/CHANGES.md +++ b/actix-codec/CHANGES.md @@ -2,7 +2,7 @@ ## Unreleased -- Minimum supported Rust version (MSRV) is now 1.74. +- Minimum supported Rust version (MSRV) is now 1.80. ## 0.5.2 diff --git a/actix-macros/CHANGES.md b/actix-macros/CHANGES.md index 42b07b8e..6311faf2 100644 --- a/actix-macros/CHANGES.md +++ b/actix-macros/CHANGES.md @@ -2,7 +2,7 @@ ## Unreleased -- Minimum supported Rust version (MSRV) is now 1.74. +- Minimum supported Rust version (MSRV) is now 1.80. ## 0.2.4 diff --git a/actix-rt/CHANGES.md b/actix-rt/CHANGES.md index 9d9622e2..a5eed0b0 100644 --- a/actix-rt/CHANGES.md +++ b/actix-rt/CHANGES.md @@ -2,7 +2,7 @@ ## Unreleased -- Minimum supported Rust version (MSRV) is now 1.74. +- Minimum supported Rust version (MSRV) is now 1.80. ## 2.10.0 diff --git a/actix-server/CHANGES.md b/actix-server/CHANGES.md index d67f2f88..bac3c641 100644 --- a/actix-server/CHANGES.md +++ b/actix-server/CHANGES.md @@ -5,7 +5,7 @@ ## 2.6.0 - Add `ServerBuilder::shutdown_signal()` method. -- Minimum supported Rust version (MSRV) is now 1.74. +- Minimum supported Rust version (MSRV) is now 1.80. ## 2.5.1 diff --git a/actix-service/CHANGES.md b/actix-service/CHANGES.md index 36cc7007..516b1a90 100644 --- a/actix-service/CHANGES.md +++ b/actix-service/CHANGES.md @@ -2,7 +2,7 @@ ## Unreleased -- Minimum supported Rust version (MSRV) is now 1.74. +- Minimum supported Rust version (MSRV) is now 1.80. ## 2.0.3 diff --git a/actix-tls/CHANGES.md b/actix-tls/CHANGES.md index 0f334fc0..b5ed2310 100644 --- a/actix-tls/CHANGES.md +++ b/actix-tls/CHANGES.md @@ -2,7 +2,7 @@ ## Unreleased -- Minimum supported Rust version (MSRV) is now 1.74. +- Minimum supported Rust version (MSRV) is now 1.80. ## 3.4.0 diff --git a/actix-tracing/CHANGES.md b/actix-tracing/CHANGES.md index fb34ef51..a6fb8996 100644 --- a/actix-tracing/CHANGES.md +++ b/actix-tracing/CHANGES.md @@ -2,7 +2,7 @@ ## Unreleased -- Minimum supported Rust version (MSRV) is now 1.74. +- Minimum supported Rust version (MSRV) is now 1.80. ## 0.1.0 diff --git a/actix-utils/CHANGES.md b/actix-utils/CHANGES.md index e836ed92..0a4d0d7f 100644 --- a/actix-utils/CHANGES.md +++ b/actix-utils/CHANGES.md @@ -2,7 +2,7 @@ ## Unreleased -- Minimum supported Rust version (MSRV) is now 1.74. +- Minimum supported Rust version (MSRV) is now 1.80. ## 3.0.1 diff --git a/bytestring/CHANGES.md b/bytestring/CHANGES.md index bbb07fff..6e3805d7 100644 --- a/bytestring/CHANGES.md +++ b/bytestring/CHANGES.md @@ -2,7 +2,7 @@ ## Unreleased -- Minimum supported Rust version (MSRV) is now 1.74. +- Minimum supported Rust version (MSRV) is now 1.80. ## 1.4.0 diff --git a/local-channel/CHANGES.md b/local-channel/CHANGES.md index 65caa7e1..432388c1 100644 --- a/local-channel/CHANGES.md +++ b/local-channel/CHANGES.md @@ -2,7 +2,7 @@ ## Unreleased -- Minimum supported Rust version (MSRV) is now 1.74. +- Minimum supported Rust version (MSRV) is now 1.80. ## 0.1.5 diff --git a/local-waker/CHANGES.md b/local-waker/CHANGES.md index 759a5d2e..6dd7f274 100644 --- a/local-waker/CHANGES.md +++ b/local-waker/CHANGES.md @@ -2,7 +2,7 @@ ## Unreleased -- Minimum supported Rust version (MSRV) is now 1.74. +- Minimum supported Rust version (MSRV) is now 1.80. ## 0.1.4 From 19ab9cc97a80843c5844f0fa6a975b146d797b8d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 22 Aug 2025 15:00:47 +0900 Subject: [PATCH 319/410] build(deps): bump taiki-e/install-action from 2.58.9 to 2.58.17 (#715) Bumps [taiki-e/install-action](https://github.com/taiki-e/install-action) from 2.58.9 to 2.58.17. - [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.58.9...v2.58.17) --- updated-dependencies: - dependency-name: taiki-e/install-action dependency-version: 2.58.17 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/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 56664b33..a441b009 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.58.9 + uses: taiki-e/install-action@v2.58.17 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.58.9 + uses: taiki-e/install-action@v2.58.17 with: tool: cargo-hack,cargo-minimal-versions diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 7b99eaac..f36e616c 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.58.9 + uses: taiki-e/install-action@v2.58.17 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.58.9 + uses: taiki-e/install-action@v2.58.17 with: tool: just diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml index dd946691..6d84841e 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.58.9 + uses: taiki-e/install-action@v2.58.17 with: tool: cargo-llvm-cov diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 1f273ab1..a4746c3e 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.58.9 + uses: taiki-e/install-action@v2.58.17 with: tool: just From e22bca03d5c1682270bbb0a2172b02004792cbfc Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 22 Aug 2025 06:11:14 +0000 Subject: [PATCH 320/410] build(deps): bump syn from 2.0.104 to 2.0.106 (#714) Bumps [syn](https://github.com/dtolnay/syn) from 2.0.104 to 2.0.106. - [Release notes](https://github.com/dtolnay/syn/releases) - [Commits](https://github.com/dtolnay/syn/compare/2.0.104...2.0.106) --- updated-dependencies: - dependency-name: syn dependency-version: 2.0.106 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 cd8b32c7..9eac8fe0 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2002,9 +2002,9 @@ checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" [[package]] name = "syn" -version = "2.0.104" +version = "2.0.106" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17b6f705963418cdb9927482fa304bc562ece2fdd4f616084c50b7023b435a40" +checksum = "ede7c438028d4436d71104916910f5bb611972c5cfd7f89b8300a8186e6fada6" dependencies = [ "proc-macro2", "quote", From dc19b196da6f07c73f4334e4b89abc32abd3be31 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 22 Aug 2025 16:16:22 +0900 Subject: [PATCH 321/410] build(deps): bump proc-macro2 from 1.0.95 to 1.0.101 (#713) Bumps [proc-macro2](https://github.com/dtolnay/proc-macro2) from 1.0.95 to 1.0.101. - [Release notes](https://github.com/dtolnay/proc-macro2/releases) - [Commits](https://github.com/dtolnay/proc-macro2/compare/1.0.95...1.0.101) --- updated-dependencies: - dependency-name: proc-macro2 dependency-version: 1.0.101 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 9eac8fe0..e8086559 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1445,9 +1445,9 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.95" +version = "1.0.101" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02b3e5e68a3a1a02aad3ec490a98007cbc13c37cbe84a3cd7b8e406d76e7f778" +checksum = "89ae43fd86e4158d6db51ad8e2b80f313af9cc74f5c0e03ccb87de09998732de" dependencies = [ "unicode-ident", ] From e85ae87b98a056e25dacfd05d508053f008dbb6a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 22 Aug 2025 07:33:13 +0000 Subject: [PATCH 322/410] build(deps): bump bitflags from 2.9.1 to 2.9.2 (#712) Bumps [bitflags](https://github.com/bitflags/bitflags) from 2.9.1 to 2.9.2. - [Release notes](https://github.com/bitflags/bitflags/releases) - [Changelog](https://github.com/bitflags/bitflags/blob/main/CHANGELOG.md) - [Commits](https://github.com/bitflags/bitflags/compare/2.9.1...2.9.2) --- updated-dependencies: - dependency-name: bitflags dependency-version: 2.9.2 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 | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index e8086559..a798c1e0 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -6,7 +6,7 @@ version = 3 name = "actix-codec" version = "0.5.2" dependencies = [ - "bitflags 2.9.1", + "bitflags 2.9.2", "bytes", "criterion", "futures-core", @@ -282,7 +282,7 @@ version = "0.69.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "271383c67ccabffb7381723dea0672a673f292304fcb45c01cc648c7a8d58088" dependencies = [ - "bitflags 2.9.1", + "bitflags 2.9.2", "cexpr", "clang-sys", "itertools 0.12.1", @@ -307,9 +307,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bitflags" -version = "2.9.1" +version = "2.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b8e56985ec62d17e9c1001dc89c88ecd7dc08e47eba5ec7c29c7b5eeecde967" +checksum = "6a65b545ab31d687cff52899d4890855fec459eb6afe0da6417b8a18da87aa29" [[package]] name = "bumpalo" @@ -950,7 +950,7 @@ version = "0.7.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b86e202f00093dcba4275d4636b93ef9dd75d025ae560d2521b45ea28ab49013" dependencies = [ - "bitflags 2.9.1", + "bitflags 2.9.2", "cfg-if", "libc", ] @@ -1250,7 +1250,7 @@ version = "0.10.72" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fedfea7d58a1f73118430a55da6a286e7b044961736ce96a16a17068ea25e5da" dependencies = [ - "bitflags 2.9.1", + "bitflags 2.9.2", "cfg-if", "foreign-types", "libc", @@ -1536,7 +1536,7 @@ version = "0.5.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "928fca9cf2aa042393a8325b9ead81d2f0df4cb12e1e24cef072922ccd99c5af" dependencies = [ - "bitflags 2.9.1", + "bitflags 2.9.2", ] [[package]] @@ -1636,7 +1636,7 @@ version = "0.38.44" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fdb5bc1ae2baa591800df16c9ca78619bf65c0488b41b96ccec5d11220d8c154" dependencies = [ - "bitflags 2.9.1", + "bitflags 2.9.2", "errno", "libc", "linux-raw-sys 0.4.15", @@ -1649,7 +1649,7 @@ version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c71e83d6afe7ff64890ec6b71d6a69bb8a610ab78ce364b3352876bb4c801266" dependencies = [ - "bitflags 2.9.1", + "bitflags 2.9.2", "errno", "libc", "linux-raw-sys 0.9.4", @@ -1852,7 +1852,7 @@ version = "2.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02" dependencies = [ - "bitflags 2.9.1", + "bitflags 2.9.2", "core-foundation", "core-foundation-sys", "libc", @@ -2874,7 +2874,7 @@ version = "0.39.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6f42320e61fe2cfd34354ecb597f86f413484a798ba44a8ca1165c58d42da6c1" dependencies = [ - "bitflags 2.9.1", + "bitflags 2.9.2", ] [[package]] From 0d45bf9b4395935d20399d5b8df27f41a67300a9 Mon Sep 17 00:00:00 2001 From: Rob Ede Date: Tue, 26 Aug 2025 08:25:35 +0100 Subject: [PATCH 323/410] chore: revert msrv bump --- .cspell.yml | 2 + Cargo.lock | 400 +++++++++++------- Cargo.toml | 2 +- actix-codec/CHANGES.md | 2 +- actix-macros/CHANGES.md | 2 +- .../tests/trybuild/test-04-system-path.rs | 2 + actix-rt/CHANGES.md | 2 +- actix-server/CHANGES.md | 2 +- actix-service/CHANGES.md | 2 +- actix-tls/CHANGES.md | 2 +- actix-tracing/CHANGES.md | 2 +- actix-utils/CHANGES.md | 2 +- bytestring/CHANGES.md | 2 +- justfile | 2 + local-channel/CHANGES.md | 2 +- local-waker/CHANGES.md | 2 +- 16 files changed, 258 insertions(+), 172 deletions(-) diff --git a/.cspell.yml b/.cspell.yml index fe18fd1e..e203ed1a 100644 --- a/.cspell.yml +++ b/.cspell.yml @@ -2,7 +2,9 @@ version: "0.2" words: - actix - addrs + - clippy - mptcp + - MSRV - nonblocking - oneshot - rustup diff --git a/Cargo.lock b/Cargo.lock index a798c1e0..2b79b44a 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -6,7 +6,7 @@ version = 3 name = "actix-codec" version = "0.5.2" dependencies = [ - "bitflags 2.9.2", + "bitflags 2.9.3", "bytes", "criterion", "futures-core", @@ -150,9 +150,9 @@ dependencies = [ [[package]] name = "adler2" -version = "2.0.0" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627" +checksum = "320119579fcad9c21884f5c4861d16174d0e06250625266f50fe6898340abefa" [[package]] name = "ahash" @@ -183,9 +183,9 @@ checksum = "4b46cbb362ab8752921c97e041f5e366ee6297bd428a31275b9fcf1e380f7299" [[package]] name = "anstyle" -version = "1.0.10" +version = "1.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "55cc3b69f167a1ef2e161439aa98aed94e6028e5f9a59be9a6ffb47aef1651f9" +checksum = "862ed96ca487e809f1c8e5a8447f6ee2cf102f846893800b20cebdf541fc6bbd" [[package]] name = "async-stream" @@ -211,9 +211,9 @@ dependencies = [ [[package]] name = "async-trait" -version = "0.1.88" +version = "0.1.89" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e539d3fca749fcee5236ab05e93a52867dd549cc157c8cb7f99595f3cedffdb5" +checksum = "9035ad2d096bed7955a320ee7e2230574d28fd3c3a0f186cbea1ff3c7eed5dbb" dependencies = [ "proc-macro2", "quote", @@ -222,15 +222,15 @@ dependencies = [ [[package]] name = "autocfg" -version = "1.4.0" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" +checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8" [[package]] name = "aws-lc-rs" -version = "1.13.1" +version = "1.13.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93fcc8f365936c834db5514fc45aee5b1202d677e6b40e48468aaaa8183ca8c7" +checksum = "5c953fe1ba023e6b7730c0d4b031d06f267f23a46167dcbd40316644b10a17ba" dependencies = [ "aws-lc-sys", "zeroize", @@ -238,9 +238,9 @@ dependencies = [ [[package]] name = "aws-lc-sys" -version = "0.29.0" +version = "0.30.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61b1d86e7705efe1be1b569bab41d4fa1e14e220b60a160f78de2db687add079" +checksum = "dbfd150b5dbdb988bcc8fb1fe787eb6b7ee6180ca24da683b61ea5405f3d43ff" dependencies = [ "bindgen", "cc", @@ -282,7 +282,7 @@ version = "0.69.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "271383c67ccabffb7381723dea0672a673f292304fcb45c01cc648c7a8d58088" dependencies = [ - "bitflags 2.9.2", + "bitflags 2.9.3", "cexpr", "clang-sys", "itertools 0.12.1", @@ -307,15 +307,15 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bitflags" -version = "2.9.2" +version = "2.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a65b545ab31d687cff52899d4890855fec459eb6afe0da6417b8a18da87aa29" +checksum = "34efbcccd345379ca2868b2b2c9d3782e9cc58ba87bc7d79d5b53d9c9ae6f25d" [[package]] name = "bumpalo" -version = "3.17.0" +version = "3.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1628fb46dfa0b37568d12e5edd512553eccf6a22a78e8bde00bb4aed84d5bdbf" +checksum = "46c5e41b57b8bba42a04676d81cb89e9ee8e859a1a66f80a5a72e1cb76b34d43" [[package]] name = "bytes" @@ -342,9 +342,9 @@ checksum = "37b2a672a2cb129a2e41c10b1224bb368f9f37a2b16b612598138befd7b37eb5" [[package]] name = "cc" -version = "1.2.22" +version = "1.2.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32db95edf998450acc7881c932f94cd9b05c87b4b2599e8bab064753da4acfd1" +checksum = "42bc4aea80032b7bf409b0bc7ccad88853858911b7713a8062fdc0623867bedc" dependencies = [ "jobserver", "libc", @@ -362,9 +362,9 @@ dependencies = [ [[package]] name = "cfg-if" -version = "1.0.0" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" +checksum = "2fd1289c04a9ea8cb22300a459a72a385d7c73d3259e2ed7dcb2af674838cfa9" [[package]] name = "ciborium" @@ -406,18 +406,18 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.37" +version = "4.5.45" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eccb054f56cbd38340b380d4a8e69ef1f02f1af43db2f0cc817a4774d80ae071" +checksum = "1fc0e74a703892159f5ae7d3aac52c8e6c392f5ae5f359c70b5881d60aaac318" dependencies = [ "clap_builder", ] [[package]] name = "clap_builder" -version = "4.5.37" +version = "4.5.44" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "efd9466fac8543255d3b1fcad4762c5e116ffe808c8a3043d4263cd4fd4862a2" +checksum = "b3e7f4214277f3c7aa526a59dd3fbe306a370daee1f8b7b8c987069cd8e888a8" dependencies = [ "anstyle", "clap_lex", @@ -425,9 +425,9 @@ dependencies = [ [[package]] name = "clap_lex" -version = "0.7.4" +version = "0.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f46ad14479a25103f283c0f10005961cf086d8dc42205bb44c46ac563475dca6" +checksum = "b94f61472cee1439c0b966b47e3aca9ae07e45d070759512cd390ea2bebc6675" [[package]] name = "cmake" @@ -517,9 +517,9 @@ checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28" [[package]] name = "crunchy" -version = "0.2.3" +version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43da5946c66ffcc7745f48db692ffbb10a83bfe0afd96235c5c2a4fb23994929" +checksum = "460fbee9c2c2f33933d720630a6a0bac33ba7053db5344fac858d4b8952d77d5" [[package]] name = "data-encoding" @@ -592,12 +592,12 @@ checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" [[package]] name = "errno" -version = "0.3.11" +version = "0.3.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "976dd42dc7e85965fe702eb8164f21f450704bdde31faefd6471dba214cb594e" +checksum = "778e2ac28f6c47af28e4907f13ffd1e1ddbd400980a9abd7c8df189bf578a5ad" dependencies = [ "libc", - "windows-sys 0.59.0", + "windows-sys 0.60.2", ] [[package]] @@ -629,9 +629,9 @@ checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" [[package]] name = "form_urlencoded" -version = "1.2.1" +version = "1.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456" +checksum = "cb4cb245038516f5f85277875cdaa4f7d2c9a0fa0468de06ed190163b1581fcf" dependencies = [ "percent-encoding", ] @@ -709,7 +709,7 @@ checksum = "335ff9f135e4384c8150d6f27c6daed433577f86b4750418338c01a1a2528592" dependencies = [ "cfg-if", "libc", - "wasi 0.11.0+wasi-snapshot-preview1", + "wasi 0.11.1+wasi-snapshot-preview1", ] [[package]] @@ -732,9 +732,9 @@ checksum = "07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f" [[package]] name = "glob" -version = "0.3.2" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8d1add55171497b4705a648c6b583acafb01d58050a51727785f0b2c8e0a2b2" +checksum = "0cc23270f6e1808e30a928bdc84dea0b9b4136a8bc82338574f23baf47bbd280" [[package]] name = "half" @@ -748,9 +748,9 @@ dependencies = [ [[package]] name = "hashbrown" -version = "0.15.3" +version = "0.15.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "84b26c544d002229e640969970a2e74021aadf6e2f96372b9c58eff97de08eb3" +checksum = "9229cfe53dfd69f0609a49f65461bd93001ea1ef889cd5529dd176593f5338a1" [[package]] name = "heck" @@ -760,9 +760,9 @@ checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" [[package]] name = "hermit-abi" -version = "0.5.1" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f154ce46856750ed433c8649605bf7ed2de3bc35fd9d2a9f30cddd873c80cb08" +checksum = "fc0fef456e4baa96da950455cd02c081ca953b141298e41db3fc7e36b1da849c" [[package]] name = "home" @@ -850,9 +850,9 @@ checksum = "00210d6893afc98edb752b664b8890f0ef174c8adbb8d0be9710fa66fbbf72d3" [[package]] name = "icu_properties" -version = "2.0.0" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2549ca8c7241c82f59c80ba2a6f415d931c5b58d24fb8412caa1a1f02c49139a" +checksum = "016c619c1eeb94efb86809b015c58f479963de65bdb6253345c1a1276f22e32b" dependencies = [ "displaydoc", "icu_collections", @@ -866,9 +866,9 @@ dependencies = [ [[package]] name = "icu_properties_data" -version = "2.0.0" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8197e866e47b68f8f7d95249e172903bec06004b18b2937f1095d40a0c57de04" +checksum = "298459143998310acd25ffe6810ed544932242d3f07083eee1084d83a71bd632" [[package]] name = "icu_provider" @@ -899,9 +899,9 @@ dependencies = [ [[package]] name = "idna" -version = "1.0.3" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "686f825264d630750a544639377bae737628043f20d38bbc029e8f29ea968a7e" +checksum = "3b0875f23caa03898994f6ddc501886a45c7d3d62d04d2d90788d47be1b1e4de" dependencies = [ "idna_adapter", "smallvec", @@ -926,9 +926,9 @@ checksum = "e8a5a9a0ff0086c7a148acb942baaabeadf9504d10400b5a05645853729b9cd2" [[package]] name = "indexmap" -version = "2.9.0" +version = "2.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cea70ddb795996207ad57735b50c5982d8844f38ba9ee5f1aedcfb708a2aa11e" +checksum = "f2481980430f9f78649238835720ddccc57e52df14ffce1c6f37391d61b563e9" dependencies = [ "equivalent", "hashbrown", @@ -946,11 +946,11 @@ dependencies = [ [[package]] name = "io-uring" -version = "0.7.8" +version = "0.7.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b86e202f00093dcba4275d4636b93ef9dd75d025ae560d2521b45ea28ab49013" +checksum = "046fa2d4d00aea763528b4950358d0ead425372445dc8ff86312b3c69ff7727b" dependencies = [ - "bitflags 2.9.2", + "bitflags 2.9.3", "cfg-if", "libc", ] @@ -1019,9 +1019,9 @@ checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c" [[package]] name = "jobserver" -version = "0.1.33" +version = "0.1.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38f262f097c174adebe41eb73d66ae9c06b2844fb0da69969647bbddd9b0538a" +checksum = "9afb3de4395d6b3e67a780b6de64b51c978ecf11cb9a462c66be7d4ca9039d33" dependencies = [ "getrandom 0.3.3", "libc", @@ -1051,18 +1051,18 @@ checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55" [[package]] name = "libc" -version = "0.2.172" +version = "0.2.175" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d750af042f7ef4f724306de029d18836c26c1765a54a6a3f094cbd23a7267ffa" +checksum = "6a82ae493e598baaea5209805c49bbf2ea7de956d50d7da0da1164f9c6d28543" [[package]] name = "libloading" -version = "0.8.6" +version = "0.8.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc2f4eb4bc735547cfed7c0a4922cbd04a4655978c09b54f1f7b228750664c34" +checksum = "07033963ba89ebaf1584d767badaa2e8fcec21aedea6b8c0346d487d49c28667" dependencies = [ "cfg-if", - "windows-targets 0.52.6", + "windows-targets 0.53.3", ] [[package]] @@ -1106,9 +1106,9 @@ version = "0.1.4" [[package]] name = "lock_api" -version = "0.4.12" +version = "0.4.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17" +checksum = "96936507f153605bddfcda068dd804796c84324ed2510809e5b2a624c81da765" dependencies = [ "autocfg", "scopeguard", @@ -1152,9 +1152,9 @@ checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" [[package]] name = "miniz_oxide" -version = "0.8.8" +version = "0.8.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3be647b768db090acb35d5ec5db2b0e1f1de11133ca123b9eacf5137868f892a" +checksum = "1fa76a2c86f704bdb222d66965fb3d63269ce38518b83cb0575fca855ebb6316" dependencies = [ "adler2", ] @@ -1167,7 +1167,7 @@ checksum = "78bed444cc8a2160f01cbcf811ef18cac863ad68ae8ca62092e8db51d51c761c" dependencies = [ "libc", "log", - "wasi 0.11.0+wasi-snapshot-preview1", + "wasi 0.11.1+wasi-snapshot-preview1", "windows-sys 0.59.0", ] @@ -1246,11 +1246,11 @@ checksum = "d6790f58c7ff633d8771f42965289203411a5e5c68388703c06e14f24770b41e" [[package]] name = "openssl" -version = "0.10.72" +version = "0.10.73" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fedfea7d58a1f73118430a55da6a286e7b044961736ce96a16a17068ea25e5da" +checksum = "8505734d46c8ab1e19a1dce3aef597ad87dcb4c37e7188231769bd6bd51cebf8" dependencies = [ - "bitflags 2.9.2", + "bitflags 2.9.3", "cfg-if", "foreign-types", "libc", @@ -1278,9 +1278,9 @@ checksum = "d05e27ee213611ffe7d6348b942e8f942b37114c00cc03cec254295a4a17852e" [[package]] name = "openssl-sys" -version = "0.9.108" +version = "0.9.109" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e145e1651e858e820e4860f7b9c5e169bc1d8ce1c86043be79fa7b7634821847" +checksum = "90096e2e47630d78b7d1c20952dc621f957103f8bc2c8359ec81290d75238571" dependencies = [ "cc", "libc", @@ -1296,9 +1296,9 @@ checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" [[package]] name = "parking_lot" -version = "0.12.3" +version = "0.12.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27" +checksum = "70d58bf43669b5795d1576d0641cfb6fbb2057bf629506267a92807158584a13" dependencies = [ "lock_api", "parking_lot_core", @@ -1306,9 +1306,9 @@ dependencies = [ [[package]] name = "parking_lot_core" -version = "0.9.10" +version = "0.9.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8" +checksum = "bc838d2a56b5b1a6c25f55575dfc605fabb63bb2365f6c2353ef9159aa69e4a5" dependencies = [ "cfg-if", "libc", @@ -1329,9 +1329,9 @@ dependencies = [ [[package]] name = "percent-encoding" -version = "2.3.1" +version = "2.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" +checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220" [[package]] name = "pin-project" @@ -1435,9 +1435,9 @@ dependencies = [ [[package]] name = "prettyplease" -version = "0.2.32" +version = "0.2.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "664ec5419c51e34154eec046ebcba56312d5a2fc3b09a06da188e1ad21afadf6" +checksum = "479ca8adacdd7ce8f1fb39ce9ecccbfe93a3f1344b3d0d97f20bc0196208f62b" dependencies = [ "proc-macro2", "syn", @@ -1463,9 +1463,9 @@ dependencies = [ [[package]] name = "r-efi" -version = "5.2.0" +version = "5.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "74765f6d916ee2faa39bc8e68e4f3ed8949b48cccdac59983d287a7cb71ce9c5" +checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f" [[package]] name = "rand" @@ -1499,9 +1499,9 @@ dependencies = [ [[package]] name = "rayon" -version = "1.10.0" +version = "1.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b418a60154510ca1a002a752ca9714984e21e4241e804d32555251faf8b78ffa" +checksum = "368f01d005bf8fd9b1206fb6fa653e6c4a81ceb1466406b81792d87c5677a58f" dependencies = [ "either", "rayon-core", @@ -1509,9 +1509,9 @@ dependencies = [ [[package]] name = "rayon-core" -version = "1.12.1" +version = "1.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2" +checksum = "22e18b0f0062d30d4230b2e85ff77fdfe4326feb054b9783a3460d8435c8ab91" dependencies = [ "crossbeam-deque", "crossbeam-utils", @@ -1532,23 +1532,23 @@ dependencies = [ [[package]] name = "redox_syscall" -version = "0.5.12" +version = "0.5.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "928fca9cf2aa042393a8325b9ead81d2f0df4cb12e1e24cef072922ccd99c5af" +checksum = "5407465600fb0548f1442edf71dd20683c6ed326200ace4b1ef0763521bb3b77" dependencies = [ - "bitflags 2.9.2", + "bitflags 2.9.3", ] [[package]] name = "regex" -version = "1.11.1" +version = "1.11.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191" +checksum = "23d7fd106d8c02486a8d64e778353d1cffe08ce79ac2e82f540c86d0facf6912" dependencies = [ "aho-corasick", "memchr", - "regex-automata 0.4.9", - "regex-syntax 0.8.5", + "regex-automata 0.4.10", + "regex-syntax 0.8.6", ] [[package]] @@ -1562,13 +1562,13 @@ dependencies = [ [[package]] name = "regex-automata" -version = "0.4.9" +version = "0.4.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "809e8dc61f6de73b46c85f4c96486310fe304c434cfa43669d7b40f711150908" +checksum = "6b9458fa0bfeeac22b5ca447c63aaf45f28439a709ccd244698632f9aa6394d6" dependencies = [ "aho-corasick", "memchr", - "regex-syntax 0.8.5", + "regex-syntax 0.8.6", ] [[package]] @@ -1579,15 +1579,15 @@ checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" [[package]] name = "regex-syntax" -version = "0.8.5" +version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c" +checksum = "caf4aa5b0f434c91fe5c7f1ecb6a5ece2130b02ad2a590589dda5146df959001" [[package]] name = "resolv-conf" -version = "0.7.3" +version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc7c8f7f733062b66dc1c63f9db168ac0b97a9210e247fa90fdc9ad08f51b302" +checksum = "95325155c684b1c89f7765e30bc1c42e4a6da51ca513615660cb8a62ef9a88e3" [[package]] name = "ring" @@ -1620,9 +1620,9 @@ dependencies = [ [[package]] name = "rustc-demangle" -version = "0.1.24" +version = "0.1.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f" +checksum = "56f7d92ca342cea22a06f2121d944b4fd82af56988c270852495420f961d4ace" [[package]] name = "rustc-hash" @@ -1636,7 +1636,7 @@ version = "0.38.44" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fdb5bc1ae2baa591800df16c9ca78619bf65c0488b41b96ccec5d11220d8c154" dependencies = [ - "bitflags 2.9.2", + "bitflags 2.9.3", "errno", "libc", "linux-raw-sys 0.4.15", @@ -1645,15 +1645,15 @@ dependencies = [ [[package]] name = "rustix" -version = "1.0.7" +version = "1.0.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c71e83d6afe7ff64890ec6b71d6a69bb8a610ab78ce364b3352876bb4c801266" +checksum = "11181fbabf243db407ef8df94a6ce0b2f9a733bd8be4ad02b4eda9602296cac8" dependencies = [ - "bitflags 2.9.2", + "bitflags 2.9.3", "errno", "libc", "linux-raw-sys 0.9.4", - "windows-sys 0.59.0", + "windows-sys 0.60.2", ] [[package]] @@ -1696,15 +1696,15 @@ dependencies = [ [[package]] name = "rustls" -version = "0.23.27" +version = "0.23.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "730944ca083c1c233a75c09f199e973ca499344a2b7ba9e755c457e86fb4a321" +checksum = "c0ebcbd2f03de0fc1122ad9bb24b127a5a6cd51d72604a3f3c50ac459762b6cc" dependencies = [ "aws-lc-rs", "log", "once_cell", "rustls-pki-types", - "rustls-webpki 0.103.3", + "rustls-webpki 0.103.4", "subtle", "zeroize", ] @@ -1784,9 +1784,9 @@ dependencies = [ [[package]] name = "rustls-webpki" -version = "0.103.3" +version = "0.103.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e4a72fe2bcf7a6ac6fd7d0b9e5cb68aeb7d4c0a0271730218b3e92d43b4eb435" +checksum = "0a17884ae0c1b773f1ccd2bd4a8c72f16da897310a98b0e84bf349ad5ead92fc" dependencies = [ "aws-lc-rs", "ring 0.17.14", @@ -1796,9 +1796,9 @@ dependencies = [ [[package]] name = "rustversion" -version = "1.0.20" +version = "1.0.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eded382c5f5f786b989652c49544c4877d9f015cc22e145a5ea8ea66c2921cd2" +checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d" [[package]] name = "rustversion-msrv" @@ -1852,7 +1852,7 @@ version = "2.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02" dependencies = [ - "bitflags 2.9.2", + "bitflags 2.9.3", "core-foundation", "core-foundation-sys", "libc", @@ -1891,9 +1891,9 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.142" +version = "1.0.143" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "030fedb782600dcbd6f02d479bf0d817ac3bb40d644745b769d6a96bc3afc5a7" +checksum = "d401abef1d108fbd9cbaebc3e46611f4b1021f714a0597a71f41ee463f5f4a5a" dependencies = [ "itoa", "memchr", @@ -1927,9 +1927,9 @@ checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" [[package]] name = "signal-hook-registry" -version = "1.4.5" +version = "1.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9203b8055f63a2a00e2f593bb0510367fe707d7ff1e5c872de2f537b339e5410" +checksum = "b2a4719bff48cee6b39d12c020eeb490953ad2443b7055bd0b21fca26bd8c28b" dependencies = [ "libc", ] @@ -1942,9 +1942,9 @@ checksum = "7a2ae44ef20feb57a68b23d846850f861394c2e02dc425a50098ae8c90267589" [[package]] name = "smallvec" -version = "1.15.0" +version = "1.15.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8917285742e9f3e1683f0a9c4e6b57960b7314d0b08d30d1ecd426713ee2eee9" +checksum = "67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03" [[package]] name = "socket2" @@ -2030,15 +2030,15 @@ checksum = "1ac9aa371f599d22256307c24a9d748c041e548cbf599f35d890f9d365361790" [[package]] name = "tempfile" -version = "3.19.1" +version = "3.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7437ac7763b9b123ccf33c338a5cc1bac6f69b45a136c19bdd8a65e3916435bf" +checksum = "15b61f8f20e3a6f7e0649d825294eaf317edce30f82cf6026e7e4cb9222a7d1e" dependencies = [ "fastrand", "getrandom 0.3.3", "once_cell", - "rustix 1.0.7", - "windows-sys 0.59.0", + "rustix 1.0.8", + "windows-sys 0.60.2", ] [[package]] @@ -2072,12 +2072,11 @@ dependencies = [ [[package]] name = "thread_local" -version = "1.1.8" +version = "1.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b9ef9bad013ada3808854ceac7b46812a6465ba368859a37e2100283d2d719c" +checksum = "f60246a4944f24f6e018aa17cdeffb7818b76356965d03b07d6a9886e8962185" dependencies = [ "cfg-if", - "once_cell", ] [[package]] @@ -2121,9 +2120,9 @@ dependencies = [ [[package]] name = "tinyvec" -version = "1.9.0" +version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09b3661f17e86524eccd4371ab0429194e0d7c008abb45f7a7495b1719463c71" +checksum = "bfa5fdc3bce6191a1dbc8c02d5c8bffcf557bafa17c124c5264a458f1b0613fa" dependencies = [ "tinyvec_macros", ] @@ -2142,7 +2141,7 @@ checksum = "89e49afdadebb872d3145a5638b59eb0691ea23e46ca484037cfab3b76b95038" dependencies = [ "backtrace", "bytes", - "io-uring 0.7.8", + "io-uring 0.7.10", "libc", "mio", "parking_lot", @@ -2224,7 +2223,7 @@ version = "0.26.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8e727b36a1a0e8b74c376ac2211e40c2c8af09fb4013c60d910495810f008e9b" dependencies = [ - "rustls 0.23.27", + "rustls 0.23.31", "tokio", ] @@ -2281,9 +2280,9 @@ dependencies = [ [[package]] name = "toml" -version = "0.9.2" +version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed0aee96c12fa71097902e0bb061a5e1ebd766a6636bb605ba401c45c1650eac" +checksum = "75129e1dc5000bfbaa9fee9d1b21f974f9fbad9daec557a521ee6e080825f6e8" dependencies = [ "indexmap", "serde", @@ -2305,9 +2304,9 @@ dependencies = [ [[package]] name = "toml_parser" -version = "1.0.1" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97200572db069e74c512a14117b296ba0a80a30123fbbb5aa1f4a348f639ca30" +checksum = "b551886f449aa90d4fe2bdaa9f4a2577ad2dde302c61ecf262d80b116db95c10" dependencies = [ "winnow", ] @@ -2332,9 +2331,9 @@ dependencies = [ [[package]] name = "tracing-attributes" -version = "0.1.28" +version = "0.1.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "395ae124c09f9e6918a2310af6038fba074bcf474ac352496d5910dd59a2226d" +checksum = "81383ab64e72a7a8b8e13130c49e3dab29def6d0c7d76a03087b3cf71c5c6903" dependencies = [ "proc-macro2", "quote", @@ -2343,9 +2342,9 @@ dependencies = [ [[package]] name = "tracing-core" -version = "0.1.33" +version = "0.1.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e672c95779cf947c5311f83787af4fa8fffd12fb27e4993211a84bdfd9610f9c" +checksum = "b9d12581f227e93f094d3af2ae690a574abb8a2b9b7a96e7cfe9647b2b617678" dependencies = [ "once_cell", "valuable", @@ -2486,13 +2485,14 @@ checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" [[package]] name = "url" -version = "2.5.4" +version = "2.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32f8b686cadd1473f4bd0117a5d28d36b1ade384ea9b5069a1c40aefed7fda60" +checksum = "08bc136a29a3d1758e07a9cca267be308aeebf5cfd5a10f3f67ab2097683ef5b" dependencies = [ "form_urlencoded", - "idna 1.0.3", + "idna 1.1.0", "percent-encoding", + "serde", ] [[package]] @@ -2531,9 +2531,9 @@ dependencies = [ [[package]] name = "wasi" -version = "0.11.0+wasi-snapshot-preview1" +version = "0.11.1+wasi-snapshot-preview1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" +checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b" [[package]] name = "wasi" @@ -2643,14 +2643,14 @@ version = "0.26.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "521bc38abb08001b01866da9f51eb7c5d647a19260e00054a8c7fd5f9e57f7a9" dependencies = [ - "webpki-roots 1.0.0", + "webpki-roots 1.0.2", ] [[package]] name = "webpki-roots" -version = "1.0.0" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2853738d1cc4f2da3a225c18ec6c3721abb31961096e9dbf5ab35fa88b19cfdb" +checksum = "7e8983c3ab33d6fb807cfcdad2491c4ea8cbc8ed839181c7dfd9c67c83e261b2" dependencies = [ "rustls-pki-types", ] @@ -2691,11 +2691,11 @@ checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" [[package]] name = "winapi-util" -version = "0.1.9" +version = "0.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf221c93e13a30d793f7645a0e7762c55d169dbb0a49671918a2319d289b10bb" +checksum = "0978bf7171b3d90bac376700cb56d606feb40f251a475a5d6634613564460b22" dependencies = [ - "windows-sys 0.59.0", + "windows-sys 0.60.2", ] [[package]] @@ -2704,6 +2704,12 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" +[[package]] +name = "windows-link" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e6ad25900d524eaabdbbb96d20b4311e1e7ae1699af4fb28c17ae66c80d798a" + [[package]] name = "windows-sys" version = "0.48.0" @@ -2731,6 +2737,15 @@ dependencies = [ "windows-targets 0.52.6", ] +[[package]] +name = "windows-sys" +version = "0.60.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2f500e4d28234f72040990ec9d39e3a6b950f9f22d3dba18416c35882612bcb" +dependencies = [ + "windows-targets 0.53.3", +] + [[package]] name = "windows-targets" version = "0.48.5" @@ -2755,13 +2770,30 @@ dependencies = [ "windows_aarch64_gnullvm 0.52.6", "windows_aarch64_msvc 0.52.6", "windows_i686_gnu 0.52.6", - "windows_i686_gnullvm", + "windows_i686_gnullvm 0.52.6", "windows_i686_msvc 0.52.6", "windows_x86_64_gnu 0.52.6", "windows_x86_64_gnullvm 0.52.6", "windows_x86_64_msvc 0.52.6", ] +[[package]] +name = "windows-targets" +version = "0.53.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d5fe6031c4041849d7c496a8ded650796e7b6ecc19df1a431c1a363342e5dc91" +dependencies = [ + "windows-link", + "windows_aarch64_gnullvm 0.53.0", + "windows_aarch64_msvc 0.53.0", + "windows_i686_gnu 0.53.0", + "windows_i686_gnullvm 0.53.0", + "windows_i686_msvc 0.53.0", + "windows_x86_64_gnu 0.53.0", + "windows_x86_64_gnullvm 0.53.0", + "windows_x86_64_msvc 0.53.0", +] + [[package]] name = "windows_aarch64_gnullvm" version = "0.48.5" @@ -2774,6 +2806,12 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "86b8d5f90ddd19cb4a147a5fa63ca848db3df085e25fee3cc10b39b6eebae764" + [[package]] name = "windows_aarch64_msvc" version = "0.48.5" @@ -2786,6 +2824,12 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" +[[package]] +name = "windows_aarch64_msvc" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c7651a1f62a11b8cbd5e0d42526e55f2c99886c77e007179efff86c2b137e66c" + [[package]] name = "windows_i686_gnu" version = "0.48.5" @@ -2798,12 +2842,24 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" +[[package]] +name = "windows_i686_gnu" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c1dc67659d35f387f5f6c479dc4e28f1d4bb90ddd1a5d3da2e5d97b42d6272c3" + [[package]] name = "windows_i686_gnullvm" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" +[[package]] +name = "windows_i686_gnullvm" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ce6ccbdedbf6d6354471319e781c0dfef054c81fbc7cf83f338a4296c0cae11" + [[package]] name = "windows_i686_msvc" version = "0.48.5" @@ -2816,6 +2872,12 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" +[[package]] +name = "windows_i686_msvc" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "581fee95406bb13382d2f65cd4a908ca7b1e4c2f1917f143ba16efe98a589b5d" + [[package]] name = "windows_x86_64_gnu" version = "0.48.5" @@ -2828,6 +2890,12 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" +[[package]] +name = "windows_x86_64_gnu" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2e55b5ac9ea33f2fc1716d1742db15574fd6fc8dadc51caab1c16a3d3b4190ba" + [[package]] name = "windows_x86_64_gnullvm" version = "0.48.5" @@ -2840,6 +2908,12 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0a6e035dd0599267ce1ee132e51c27dd29437f63325753051e71dd9e42406c57" + [[package]] name = "windows_x86_64_msvc" version = "0.48.5" @@ -2853,10 +2927,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" [[package]] -name = "winnow" -version = "0.7.10" +name = "windows_x86_64_msvc" +version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c06928c8748d81b05c9be96aad92e1b6ff01833332f281e8cfca3be4b35fc9ec" +checksum = "271414315aff87387382ec3d271b52d7ae78726f5d44ac98b4f4030c91880486" + +[[package]] +name = "winnow" +version = "0.7.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "21a0236b59786fed61e2a80582dd500fe61f18b5dca67a4a067d0bc9039339cf" [[package]] name = "winreg" @@ -2874,7 +2954,7 @@ version = "0.39.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6f42320e61fe2cfd34354ecb597f86f413484a798ba44a8ca1165c58d42da6c1" dependencies = [ - "bitflags 2.9.2", + "bitflags 2.9.3", ] [[package]] @@ -2918,18 +2998,18 @@ dependencies = [ [[package]] name = "zerocopy" -version = "0.8.25" +version = "0.8.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1702d9583232ddb9174e01bb7c15a2ab8fb1bc6f227aa1233858c351a3ba0cb" +checksum = "1039dd0d3c310cf05de012d8a39ff557cb0d23087fd44cad61df08fc31907a2f" dependencies = [ "zerocopy-derive", ] [[package]] name = "zerocopy-derive" -version = "0.8.25" +version = "0.8.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28a6e20d751156648aa063f3800b706ee209a32c0b4d9f24be3d980b01be55ef" +checksum = "9ecf5b4cc5364572d7f4c329661bcc82724222973f2cab6f050a4e5c22f75181" dependencies = [ "proc-macro2", "quote", @@ -2976,9 +3056,9 @@ dependencies = [ [[package]] name = "zerovec" -version = "0.11.2" +version = "0.11.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a05eb080e015ba39cc9e23bbe5e7fb04d5fb040350f99f34e338d5fdd294428" +checksum = "e7aa2bd55086f1ab526693ecbe444205da57e25f4489879da80635a46d90e73b" dependencies = [ "yoke", "zerofrom", diff --git a/Cargo.toml b/Cargo.toml index 6d30e065..f3a83a39 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -17,7 +17,7 @@ members = [ [workspace.package] license = "MIT OR Apache-2.0" edition = "2021" -rust-version = "1.80" +rust-version = "1.75" [patch.crates-io] actix-codec = { path = "actix-codec" } diff --git a/actix-codec/CHANGES.md b/actix-codec/CHANGES.md index 58208e64..d8e6f2c3 100644 --- a/actix-codec/CHANGES.md +++ b/actix-codec/CHANGES.md @@ -2,7 +2,7 @@ ## Unreleased -- Minimum supported Rust version (MSRV) is now 1.80. +- Minimum supported Rust version (MSRV) is now 1.75. ## 0.5.2 diff --git a/actix-macros/CHANGES.md b/actix-macros/CHANGES.md index 6311faf2..4a4634ed 100644 --- a/actix-macros/CHANGES.md +++ b/actix-macros/CHANGES.md @@ -2,7 +2,7 @@ ## Unreleased -- Minimum supported Rust version (MSRV) is now 1.80. +- Minimum supported Rust version (MSRV) is now 1.75. ## 0.2.4 diff --git a/actix-macros/tests/trybuild/test-04-system-path.rs b/actix-macros/tests/trybuild/test-04-system-path.rs index 6d0f9951..77479eaf 100644 --- a/actix-macros/tests/trybuild/test-04-system-path.rs +++ b/actix-macros/tests/trybuild/test-04-system-path.rs @@ -1,3 +1,5 @@ +#![allow(unused_imports)] + mod system { pub use actix_rt::System as MySystem; } diff --git a/actix-rt/CHANGES.md b/actix-rt/CHANGES.md index a5eed0b0..65d2b543 100644 --- a/actix-rt/CHANGES.md +++ b/actix-rt/CHANGES.md @@ -2,7 +2,7 @@ ## Unreleased -- Minimum supported Rust version (MSRV) is now 1.80. +- Minimum supported Rust version (MSRV) is now 1.75. ## 2.10.0 diff --git a/actix-server/CHANGES.md b/actix-server/CHANGES.md index bac3c641..c36cf2ee 100644 --- a/actix-server/CHANGES.md +++ b/actix-server/CHANGES.md @@ -5,7 +5,7 @@ ## 2.6.0 - Add `ServerBuilder::shutdown_signal()` method. -- Minimum supported Rust version (MSRV) is now 1.80. +- Minimum supported Rust version (MSRV) is now 1.75. ## 2.5.1 diff --git a/actix-service/CHANGES.md b/actix-service/CHANGES.md index 516b1a90..64f38dbb 100644 --- a/actix-service/CHANGES.md +++ b/actix-service/CHANGES.md @@ -2,7 +2,7 @@ ## Unreleased -- Minimum supported Rust version (MSRV) is now 1.80. +- Minimum supported Rust version (MSRV) is now 1.75. ## 2.0.3 diff --git a/actix-tls/CHANGES.md b/actix-tls/CHANGES.md index b5ed2310..85998914 100644 --- a/actix-tls/CHANGES.md +++ b/actix-tls/CHANGES.md @@ -2,7 +2,7 @@ ## Unreleased -- Minimum supported Rust version (MSRV) is now 1.80. +- Minimum supported Rust version (MSRV) is now 1.75. ## 3.4.0 diff --git a/actix-tracing/CHANGES.md b/actix-tracing/CHANGES.md index a6fb8996..c3fee521 100644 --- a/actix-tracing/CHANGES.md +++ b/actix-tracing/CHANGES.md @@ -2,7 +2,7 @@ ## Unreleased -- Minimum supported Rust version (MSRV) is now 1.80. +- Minimum supported Rust version (MSRV) is now 1.75. ## 0.1.0 diff --git a/actix-utils/CHANGES.md b/actix-utils/CHANGES.md index 0a4d0d7f..8fda9606 100644 --- a/actix-utils/CHANGES.md +++ b/actix-utils/CHANGES.md @@ -2,7 +2,7 @@ ## Unreleased -- Minimum supported Rust version (MSRV) is now 1.80. +- Minimum supported Rust version (MSRV) is now 1.75. ## 3.0.1 diff --git a/bytestring/CHANGES.md b/bytestring/CHANGES.md index 6e3805d7..931221a5 100644 --- a/bytestring/CHANGES.md +++ b/bytestring/CHANGES.md @@ -2,7 +2,7 @@ ## Unreleased -- Minimum supported Rust version (MSRV) is now 1.80. +- Minimum supported Rust version (MSRV) is now 1.75. ## 1.4.0 diff --git a/justfile b/justfile index a1e840c6..3ec78dbd 100644 --- a/justfile +++ b/justfile @@ -23,6 +23,8 @@ 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 diff --git a/local-channel/CHANGES.md b/local-channel/CHANGES.md index 432388c1..91f1f54d 100644 --- a/local-channel/CHANGES.md +++ b/local-channel/CHANGES.md @@ -2,7 +2,7 @@ ## Unreleased -- Minimum supported Rust version (MSRV) is now 1.80. +- Minimum supported Rust version (MSRV) is now 1.75. ## 0.1.5 diff --git a/local-waker/CHANGES.md b/local-waker/CHANGES.md index 6dd7f274..e321d27b 100644 --- a/local-waker/CHANGES.md +++ b/local-waker/CHANGES.md @@ -2,7 +2,7 @@ ## Unreleased -- Minimum supported Rust version (MSRV) is now 1.80. +- Minimum supported Rust version (MSRV) is now 1.75. ## 0.1.4 From 4ee45b24b5b9530234720ccbd4fbed018a0cace3 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 26 Aug 2025 11:24:05 +0100 Subject: [PATCH 326/410] build(deps): bump taiki-e/install-action from 2.58.17 to 2.58.21 (#719) Bumps [taiki-e/install-action](https://github.com/taiki-e/install-action) from 2.58.17 to 2.58.21. - [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.58.17...v2.58.21) --- updated-dependencies: - dependency-name: taiki-e/install-action dependency-version: 2.58.21 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/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 a441b009..3323ea0b 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.58.17 + uses: taiki-e/install-action@v2.58.21 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.58.17 + uses: taiki-e/install-action@v2.58.21 with: tool: cargo-hack,cargo-minimal-versions diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index f36e616c..bae688be 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.58.17 + uses: taiki-e/install-action@v2.58.21 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.58.17 + uses: taiki-e/install-action@v2.58.21 with: tool: just diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml index 6d84841e..860aea43 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.58.17 + uses: taiki-e/install-action@v2.58.21 with: tool: cargo-llvm-cov diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index a4746c3e..a4fe6deb 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.58.17 + uses: taiki-e/install-action@v2.58.21 with: tool: just From c856fcdcd56b2d7310589b8c20cdc5fc48299f40 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 26 Aug 2025 11:24:07 +0100 Subject: [PATCH 327/410] build(deps): bump actions-rust-lang/setup-rust-toolchain (#720) Bumps [actions-rust-lang/setup-rust-toolchain](https://github.com/actions-rust-lang/setup-rust-toolchain) from 1.13.0 to 1.14.0. - [Release notes](https://github.com/actions-rust-lang/setup-rust-toolchain/releases) - [Changelog](https://github.com/actions-rust-lang/setup-rust-toolchain/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions-rust-lang/setup-rust-toolchain/compare/v1.13.0...v1.14.0) --- updated-dependencies: - dependency-name: actions-rust-lang/setup-rust-toolchain dependency-version: 1.14.0 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 | 6 +++--- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/.github/workflows/ci-post-merge.yml b/.github/workflows/ci-post-merge.yml index 3323ea0b..8583851d 100644 --- a/.github/workflows/ci-post-merge.yml +++ b/.github/workflows/ci-post-merge.yml @@ -59,7 +59,7 @@ jobs: echo "RUSTFLAGS=-C target-feature=+crt-static" >> $GITHUB_ENV - name: Install Rust (${{ matrix.version }}) - uses: actions-rust-lang/setup-rust-toolchain@v1.13.0 + uses: actions-rust-lang/setup-rust-toolchain@v1.14.0 with: toolchain: ${{ matrix.version }} @@ -116,7 +116,7 @@ jobs: - uses: actions/checkout@v5 - name: Install Rust (nightly) - uses: actions-rust-lang/setup-rust-toolchain@v1.13.0 + uses: actions-rust-lang/setup-rust-toolchain@v1.14.0 with: toolchain: nightly diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index bae688be..f42df768 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -68,7 +68,7 @@ jobs: echo "RUSTFLAGS=-C target-feature=+crt-static" >> $GITHUB_ENV - name: Install Rust (${{ matrix.version.name }}) - uses: actions-rust-lang/setup-rust-toolchain@v1.13.0 + uses: actions-rust-lang/setup-rust-toolchain@v1.14.0 with: toolchain: ${{ matrix.version.version }} @@ -120,7 +120,7 @@ jobs: - uses: actions/checkout@v5 - name: Install Rust (nightly) - uses: actions-rust-lang/setup-rust-toolchain@v1.13.0 + uses: actions-rust-lang/setup-rust-toolchain@v1.14.0 with: toolchain: nightly diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml index 860aea43..c2b846f2 100644 --- a/.github/workflows/coverage.yml +++ b/.github/workflows/coverage.yml @@ -18,7 +18,7 @@ jobs: - uses: actions/checkout@v5 - name: Install Rust - uses: actions-rust-lang/setup-rust-toolchain@v1.13.0 + uses: actions-rust-lang/setup-rust-toolchain@v1.14.0 with: components: llvm-tools-preview diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index a4fe6deb..951ffd5b 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -18,7 +18,7 @@ jobs: steps: - uses: actions/checkout@v5 - - uses: actions-rust-lang/setup-rust-toolchain@v1.13.0 + - uses: actions-rust-lang/setup-rust-toolchain@v1.14.0 with: toolchain: nightly components: rustfmt @@ -35,7 +35,7 @@ jobs: steps: - uses: actions/checkout@v5 - - uses: actions-rust-lang/setup-rust-toolchain@v1.13.0 + - uses: actions-rust-lang/setup-rust-toolchain@v1.14.0 with: { components: clippy } - uses: giraffate/clippy-action@v1.0.1 @@ -51,7 +51,7 @@ jobs: - uses: actions/checkout@v5 - name: Install Rust (${{ vars.RUST_VERSION_EXTERNAL_TYPES }}) - uses: actions-rust-lang/setup-rust-toolchain@v1.13.0 + uses: actions-rust-lang/setup-rust-toolchain@v1.14.0 with: toolchain: ${{ vars.RUST_VERSION_EXTERNAL_TYPES }} From 160fdc5efc5582596e5cb69bb97e3caa1b02f883 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 26 Aug 2025 16:39:21 +0100 Subject: [PATCH 328/410] build(deps): bump codecov/codecov-action from 5.4.3 to 5.5.0 (#721) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Rob Ede --- .github/workflows/coverage.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml index c2b846f2..5a631f9f 100644 --- a/.github/workflows/coverage.yml +++ b/.github/workflows/coverage.yml @@ -31,7 +31,7 @@ jobs: run: cargo llvm-cov --workspace --all-features --codecov --output-path codecov.json - name: Upload coverage to Codecov - uses: codecov/codecov-action@v5.4.3 + uses: codecov/codecov-action@v5.5.0 with: files: codecov.json fail_ci_if_error: true From b8ff2a47a69084e8b2597b2ff527b0fb4ce184ae Mon Sep 17 00:00:00 2001 From: Rob Ede Date: Fri, 29 Aug 2025 00:57:13 +0100 Subject: [PATCH 329/410] refactor: inline format args --- .clippy.toml | 4 ++++ .cspell.yml | 8 +++++++ .vscode/settings.json | 32 +++++++++++++++++++++++++++ Cargo.toml | 10 ++++++--- actix-codec/tests/test_framed_sink.rs | 2 +- actix-rt/src/arbiter.rs | 2 +- actix-rt/src/system.rs | 2 +- actix-server/src/accept.rs | 11 +++++---- actix-server/src/signals.rs | 6 ++--- actix-server/src/socket.rs | 32 +++++++++++++-------------- actix-server/src/waker_queue.rs | 4 ++-- actix-server/src/worker.rs | 2 +- actix-tls/examples/accept-rustls.rs | 2 +- actix-tls/src/connect/native_tls.rs | 6 ++--- actix-tls/src/connect/openssl.rs | 5 +---- actix-tls/src/connect/rustls_0_20.rs | 3 +-- actix-tls/tests/accept-openssl.rs | 2 +- actix-tls/tests/accept-rustls.rs | 2 +- actix-tls/tests/test_resolvers.rs | 2 +- 19 files changed, 89 insertions(+), 48 deletions(-) create mode 100644 .clippy.toml create mode 100644 .vscode/settings.json diff --git a/.clippy.toml b/.clippy.toml new file mode 100644 index 00000000..91c31177 --- /dev/null +++ b/.clippy.toml @@ -0,0 +1,4 @@ +disallowed-names = [ + "..", # defaults + "e", # prefer `err` +] diff --git a/.cspell.yml b/.cspell.yml index e203ed1a..3aa9eea1 100644 --- a/.cspell.yml +++ b/.cspell.yml @@ -3,8 +3,16 @@ words: - actix - addrs - clippy + - deque + - itertools - mptcp - MSRV - nonblocking - oneshot + - pemfile + - rcgen + - Rustls - rustup + - spki + - uring + - webpki diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 00000000..b1d9e0ae --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,32 @@ +{ + "rust-analyzer.cargo.features": [ + "accept", + "actix-macros", + "connect", + "default", + "macros", + "native-tls", + "openssl", + "rustls", + "rustls-021", + "rustls-0_20", + "rustls-0_20-native-roots", + "rustls-0_20-webpki-roots", + "rustls-0_21", + "rustls-0_21-native-roots", + "rustls-0_21-webpki-roots", + "rustls-0_22", + "rustls-0_22-native-roots", + "rustls-0_22-webpki-roots", + "rustls-0_23", + "rustls-0_23-native-roots", + "rustls-0_23-webpki-roots", + "rustls-webpki-0101", + "serde", + "tokio-rustls-023", + "tokio-rustls-024", + "uri", + "webpki-roots-022", + "webpki-roots-025", + ] +} diff --git a/Cargo.toml b/Cargo.toml index f3a83a39..a1de08cb 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -38,7 +38,11 @@ opt-level = 3 codegen-units = 1 [workspace.lints.rust] -rust_2018_idioms = "deny" +rust-2018-idioms = "deny" nonstandard-style = "deny" -future_incompatible = "deny" -missing_docs = { level = "warn", priority = -1 } +future-incompatible = "deny" +missing-docs = { level = "warn", priority = -1 } + +[workspace.lints.clippy] +uninlined-format-args = "warn" +disallowed-names = "warn" diff --git a/actix-codec/tests/test_framed_sink.rs b/actix-codec/tests/test_framed_sink.rs index 4c911199..280fec3d 100644 --- a/actix-codec/tests/test_framed_sink.rs +++ b/actix-codec/tests/test_framed_sink.rs @@ -57,7 +57,7 @@ impl Write for Bilateral { Ok(data.len()) } Some(Err(err)) => Err(err), - None => panic!("unexpected write; {:?}", src), + None => panic!("unexpected write; {src:?}"), } } diff --git a/actix-rt/src/arbiter.rs b/actix-rt/src/arbiter.rs index 1da76c52..b2d723e6 100644 --- a/actix-rt/src/arbiter.rs +++ b/actix-rt/src/arbiter.rs @@ -115,7 +115,7 @@ impl Arbiter { let system_id = sys.id(); let arb_id = COUNT.fetch_add(1, Ordering::Relaxed); - let name = format!("actix-rt|system:{}|arbiter:{}", system_id, arb_id); + let name = format!("actix-rt|system:{system_id}|arbiter:{arb_id}"); let (tx, rx) = mpsc::unbounded_channel(); let (ready_tx, ready_rx) = std::sync::mpsc::channel::<()>(); diff --git a/actix-rt/src/system.rs b/actix-rt/src/system.rs index 5d8187cd..77b11f4b 100644 --- a/actix-rt/src/system.rs +++ b/actix-rt/src/system.rs @@ -187,7 +187,7 @@ impl SystemRunner { match exit_code { 0 => Ok(()), - nonzero => Err(io::Error::other(format!("Non-zero exit code: {}", nonzero))), + nonzero => Err(io::Error::other(format!("Non-zero exit code: {nonzero}"))), } } diff --git a/actix-server/src/accept.rs b/actix-server/src/accept.rs index 997c9699..921a7b1e 100644 --- a/actix-server/src/accept.rs +++ b/actix-server/src/accept.rs @@ -130,7 +130,7 @@ impl Accept { if let Err(err) = self.poll.poll(&mut events, self.timeout) { match err.kind() { io::ErrorKind::Interrupted => {} - _ => panic!("Poll error: {}", err), + _ => panic!("Poll error: {err}"), } } @@ -165,7 +165,6 @@ impl Accept { // task is done. Take care not to take the guard again inside this loop. let mut guard = self.waker_queue.guard(); - #[allow(clippy::significant_drop_in_scrutinee)] match guard.pop_front() { // Worker notified it became available. Some(WakerInterest::WorkerAvailable(idx)) => { @@ -455,8 +454,8 @@ impl Accept { /// All other errors will incur a timeout before next `accept()` call is attempted. The timeout is /// useful to handle resource exhaustion errors like `ENFILE` and `EMFILE`. Otherwise, it could /// enter into a temporary spin loop. -fn connection_error(e: &io::Error) -> bool { - e.kind() == io::ErrorKind::ConnectionRefused - || e.kind() == io::ErrorKind::ConnectionAborted - || e.kind() == io::ErrorKind::ConnectionReset +fn connection_error(err: &io::Error) -> bool { + err.kind() == io::ErrorKind::ConnectionRefused + || err.kind() == io::ErrorKind::ConnectionAborted + || err.kind() == io::ErrorKind::ConnectionReset } diff --git a/actix-server/src/signals.rs b/actix-server/src/signals.rs index c41d0e33..07090b6c 100644 --- a/actix-server/src/signals.rs +++ b/actix-server/src/signals.rs @@ -92,11 +92,9 @@ impl OsSignals { .filter_map(|(kind, sig)| { unix::signal(*kind) .map(|tokio_sig| (*sig, tokio_sig)) - .map_err(|e| { + .map_err(|err| { tracing::error!( - "can not initialize stream handler for {:?} err: {}", - sig, - e + "can not initialize stream handler for {sig:?} err: {err}", ) }) .ok() diff --git a/actix-server/src/socket.rs b/actix-server/src/socket.rs index 91a73be8..f690ab95 100644 --- a/actix-server/src/socket.rs +++ b/actix-server/src/socket.rs @@ -105,9 +105,9 @@ impl From for MioListener { impl fmt::Debug for MioListener { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { match *self { - MioListener::Tcp(ref lst) => write!(f, "{:?}", lst), + MioListener::Tcp(ref lst) => write!(f, "{lst:?}"), #[cfg(unix)] - MioListener::Uds(ref lst) => write!(f, "{:?}", lst), + MioListener::Uds(ref lst) => write!(f, "{lst:?}"), } } } @@ -115,9 +115,9 @@ impl fmt::Debug for MioListener { impl fmt::Display for MioListener { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { match *self { - MioListener::Tcp(ref lst) => write!(f, "{:?}", lst), + MioListener::Tcp(ref lst) => write!(f, "{lst:?}"), #[cfg(unix)] - MioListener::Uds(ref lst) => write!(f, "{:?}", lst), + MioListener::Uds(ref lst) => write!(f, "{lst:?}"), } } } @@ -133,9 +133,9 @@ impl fmt::Display for SocketAddr { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { match *self { Self::Unknown => write!(f, "Unknown SocketAddr"), - Self::Tcp(ref addr) => write!(f, "{}", addr), + Self::Tcp(ref addr) => write!(f, "{addr}"), #[cfg(unix)] - Self::Uds(ref addr) => write!(f, "{:?}", addr), + Self::Uds(ref addr) => write!(f, "{addr:?}"), } } } @@ -144,9 +144,9 @@ impl fmt::Debug for SocketAddr { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { match *self { Self::Unknown => write!(f, "Unknown SocketAddr"), - Self::Tcp(ref addr) => write!(f, "{:?}", addr), + Self::Tcp(ref addr) => write!(f, "{addr:?}"), #[cfg(unix)] - Self::Uds(ref addr) => write!(f, "{:?}", addr), + Self::Uds(ref addr) => write!(f, "{addr:?}"), } } } @@ -266,14 +266,14 @@ mod tests { #[test] fn socket_addr() { let addr = SocketAddr::Tcp("127.0.0.1:8080".parse().unwrap()); - assert!(format!("{:?}", addr).contains("127.0.0.1:8080")); - assert_eq!(format!("{}", addr), "127.0.0.1:8080"); + assert!(format!("{addr:?}").contains("127.0.0.1:8080")); + assert_eq!(format!("{addr}"), "127.0.0.1:8080"); let addr: StdSocketAddr = "127.0.0.1:0".parse().unwrap(); let lst = create_mio_tcp_listener(addr, 128, &MpTcp::Disabled).unwrap(); let lst = MioListener::Tcp(lst); - assert!(format!("{:?}", lst).contains("TcpListener")); - assert!(format!("{}", lst).contains("127.0.0.1")); + assert!(format!("{lst:?}").contains("TcpListener")); + assert!(format!("{lst}").contains("127.0.0.1")); } #[test] @@ -283,12 +283,12 @@ mod tests { if let Ok(socket) = MioUnixListener::bind("/tmp/sock.xxxxx") { let addr = socket.local_addr().expect("Couldn't get local address"); let a = SocketAddr::Uds(addr); - assert!(format!("{:?}", a).contains("/tmp/sock.xxxxx")); - assert!(format!("{}", a).contains("/tmp/sock.xxxxx")); + assert!(format!("{a:?}").contains("/tmp/sock.xxxxx")); + assert!(format!("{a}").contains("/tmp/sock.xxxxx")); let lst = MioListener::Uds(socket); - assert!(format!("{:?}", lst).contains("/tmp/sock.xxxxx")); - assert!(format!("{}", lst).contains("/tmp/sock.xxxxx")); + assert!(format!("{lst:?}").contains("/tmp/sock.xxxxx")); + assert!(format!("{lst}").contains("/tmp/sock.xxxxx")); } } } diff --git a/actix-server/src/waker_queue.rs b/actix-server/src/waker_queue.rs index a7280901..b6d4e5b0 100644 --- a/actix-server/src/waker_queue.rs +++ b/actix-server/src/waker_queue.rs @@ -52,7 +52,7 @@ impl WakerQueue { waker .wake() - .unwrap_or_else(|e| panic!("can not wake up Accept Poll: {}", e)); + .unwrap_or_else(|err| panic!("can not wake up Accept Poll: {err}")); } /// Get a MutexGuard of the waker queue. @@ -62,7 +62,7 @@ impl WakerQueue { /// Reset the waker queue so it does not grow infinitely. pub(crate) fn reset(queue: &mut VecDeque) { - std::mem::swap(&mut VecDeque::::with_capacity(16), queue); + *queue = VecDeque::::with_capacity(16); } } diff --git a/actix-server/src/worker.rs b/actix-server/src/worker.rs index 92a2c007..dcecda0e 100644 --- a/actix-server/src/worker.rs +++ b/actix-server/src/worker.rs @@ -325,7 +325,7 @@ impl ServerWorker { // no actix system (None, Some(rt_handle)) => { std::thread::Builder::new() - .name(format!("actix-server worker {}", idx)) + .name(format!("actix-server worker {idx}")) .spawn(move || { let (worker_stopped_tx, worker_stopped_rx) = oneshot::channel(); diff --git a/actix-tls/examples/accept-rustls.rs b/actix-tls/examples/accept-rustls.rs index b94a01e7..7033ba1a 100644 --- a/actix-tls/examples/accept-rustls.rs +++ b/actix-tls/examples/accept-rustls.rs @@ -80,7 +80,7 @@ async fn main() -> io::Result<()> { // Set up TLS service factory tls_acceptor .clone() - .map_err(|err| println!("Rustls error: {:?}", err)) + .map_err(|err| println!("Rustls error: {err:?}")) .and_then(move |stream: TlsStream| { let num = count.fetch_add(1, Ordering::Relaxed); info!("[{}] Got TLS connection: {:?}", num, &*stream); diff --git a/actix-tls/src/connect/native_tls.rs b/actix-tls/src/connect/native_tls.rs index 16863ce0..674de842 100644 --- a/actix-tls/src/connect/native_tls.rs +++ b/actix-tls/src/connect/native_tls.rs @@ -81,9 +81,9 @@ where trace!("TLS handshake success: {:?}", stream.hostname()); stream.replace_io(res).1 }) - .map_err(|e| { - trace!("TLS handshake error: {:?}", e); - io::Error::new(io::ErrorKind::Other, format!("{}", e)) + .map_err(|err| { + trace!("TLS handshake error: {err:?}"); + io::Error::other(format!("{err}")) }) }) } diff --git a/actix-tls/src/connect/openssl.rs b/actix-tls/src/connect/openssl.rs index ab2841bb..0b17f9a2 100644 --- a/actix-tls/src/connect/openssl.rs +++ b/actix-tls/src/connect/openssl.rs @@ -141,10 +141,7 @@ where } Err(err) => { trace!("TLS handshake error: {:?}", err); - Poll::Ready(Err(io::Error::new( - io::ErrorKind::Other, - format!("{}", err), - ))) + Poll::Ready(Err(io::Error::other(format!("{err}")))) } } } diff --git a/actix-tls/src/connect/rustls_0_20.rs b/actix-tls/src/connect/rustls_0_20.rs index fc65b686..27d26292 100644 --- a/actix-tls/src/connect/rustls_0_20.rs +++ b/actix-tls/src/connect/rustls_0_20.rs @@ -159,8 +159,7 @@ where fn poll(self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll { match self.get_mut() { - Self::InvalidDns => Poll::Ready(Err(io::Error::new( - io::ErrorKind::Other, + Self::InvalidDns => Poll::Ready(Err(io::Error::other( "Rustls v0.20 can only handle hostname-based connections. Enable the `rustls-0_21` \ feature and use the Rustls v0.21 utilities to gain this feature.", ))), diff --git a/actix-tls/tests/accept-openssl.rs b/actix-tls/tests/accept-openssl.rs index 41fb1d7b..ebac10d1 100644 --- a/actix-tls/tests/accept-openssl.rs +++ b/actix-tls/tests/accept-openssl.rs @@ -126,7 +126,7 @@ async fn accepts_connections() { let tls_acceptor = Acceptor::new(openssl_acceptor); tls_acceptor - .map_err(|err| println!("OpenSSL error: {:?}", err)) + .map_err(|err| println!("OpenSSL error: {err:?}")) .and_then(move |_stream: TlsStream| ok(())) } }); diff --git a/actix-tls/tests/accept-rustls.rs b/actix-tls/tests/accept-rustls.rs index f31606e7..c556050e 100644 --- a/actix-tls/tests/accept-rustls.rs +++ b/actix-tls/tests/accept-rustls.rs @@ -87,7 +87,7 @@ async fn accepts_connections() { let tls_acceptor = Acceptor::new(rustls_server_config(cert.clone(), key.clone())); tls_acceptor - .map_err(|err| println!("Rustls error: {:?}", err)) + .map_err(|err| println!("Rustls error: {err:?}")) .and_then(move |_stream: TlsStream| ok(())) } }); diff --git a/actix-tls/tests/test_resolvers.rs b/actix-tls/tests/test_resolvers.rs index 7543c4e0..b6629b0b 100644 --- a/actix-tls/tests/test_resolvers.rs +++ b/actix-tls/tests/test_resolvers.rs @@ -26,7 +26,7 @@ async fn custom_resolver() { port: u16, ) -> LocalBoxFuture<'a, Result, Box>> { Box::pin(async move { - let local = format!("127.0.0.1:{}", port).parse().unwrap(); + let local = format!("127.0.0.1:{port}").parse().unwrap(); Ok(vec![local]) }) } From fe3151454575efb136e6f1b7ca1958d7796e32d5 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 29 Aug 2025 23:13:00 +0100 Subject: [PATCH 330/410] build(deps): bump tracing-subscriber from 0.3.19 to 0.3.20 (#722) Bumps [tracing-subscriber](https://github.com/tokio-rs/tracing) from 0.3.19 to 0.3.20. - [Release notes](https://github.com/tokio-rs/tracing/releases) - [Commits](https://github.com/tokio-rs/tracing/compare/tracing-subscriber-0.3.19...tracing-subscriber-0.3.20) --- updated-dependencies: - dependency-name: tracing-subscriber dependency-version: 0.3.20 dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Cargo.lock | 46 ++++++++++++---------------------------------- 1 file changed, 12 insertions(+), 34 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 2b79b44a..6a9d70ee 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1131,11 +1131,11 @@ dependencies = [ [[package]] name = "matchers" -version = "0.1.0" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8263075bb86c5a1b1427b5ae862e8889656f126e9f77c484496e8b47cf5c5558" +checksum = "d1525a2a28c7f4fa0fc98bb91ae755d1e2d1505079e05539e35bc876b5d65ae9" dependencies = [ - "regex-automata 0.1.10", + "regex-automata", ] [[package]] @@ -1200,12 +1200,11 @@ dependencies = [ [[package]] name = "nu-ansi-term" -version = "0.46.0" +version = "0.50.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84" +checksum = "d4a28e057d01f97e61255210fcff094d74ed0466038633e95017f5beb68e4399" dependencies = [ - "overload", - "winapi", + "windows-sys 0.52.0", ] [[package]] @@ -1288,12 +1287,6 @@ dependencies = [ "vcpkg", ] -[[package]] -name = "overload" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" - [[package]] name = "parking_lot" version = "0.12.4" @@ -1547,17 +1540,8 @@ checksum = "23d7fd106d8c02486a8d64e778353d1cffe08ce79ac2e82f540c86d0facf6912" dependencies = [ "aho-corasick", "memchr", - "regex-automata 0.4.10", - "regex-syntax 0.8.6", -] - -[[package]] -name = "regex-automata" -version = "0.1.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132" -dependencies = [ - "regex-syntax 0.6.29", + "regex-automata", + "regex-syntax", ] [[package]] @@ -1568,15 +1552,9 @@ checksum = "6b9458fa0bfeeac22b5ca447c63aaf45f28439a709ccd244698632f9aa6394d6" dependencies = [ "aho-corasick", "memchr", - "regex-syntax 0.8.6", + "regex-syntax", ] -[[package]] -name = "regex-syntax" -version = "0.6.29" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" - [[package]] name = "regex-syntax" version = "0.8.6" @@ -2373,14 +2351,14 @@ dependencies = [ [[package]] name = "tracing-subscriber" -version = "0.3.19" +version = "0.3.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8189decb5ac0fa7bc8b96b7cb9b2701d60d48805aca84a238004d665fcc4008" +checksum = "2054a14f5307d601f88daf0553e1cbf472acc4f2c51afab632431cdcd72124d5" dependencies = [ "matchers", "nu-ansi-term", "once_cell", - "regex", + "regex-automata", "sharded-slab", "smallvec", "thread_local", From 3c0702cfcda2ead8e0a58489ea1bdd4ba051e80b Mon Sep 17 00:00:00 2001 From: Rob Ede Date: Sat, 30 Aug 2025 02:25:46 +0100 Subject: [PATCH 331/410] chore(actix-rt): prepare release 2.11.0 --- Cargo.lock | 31 ++++++++++++++----------------- Cargo.toml | 2 ++ actix-rt/CHANGES.md | 4 ++++ actix-rt/Cargo.toml | 10 +++++----- actix-rt/README.md | 4 ++-- actix-rt/src/lib.rs | 26 +++++++++++++++++--------- 6 files changed, 44 insertions(+), 33 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 6a9d70ee..8f0ef6e4 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -34,7 +34,7 @@ dependencies = [ [[package]] name = "actix-rt" -version = "2.10.0" +version = "2.11.0" dependencies = [ "actix-macros", "futures-core", @@ -406,18 +406,18 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.45" +version = "4.5.46" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fc0e74a703892159f5ae7d3aac52c8e6c392f5ae5f359c70b5881d60aaac318" +checksum = "2c5e4fcf9c21d2e544ca1ee9d8552de13019a42aa7dbf32747fa7aaf1df76e57" dependencies = [ "clap_builder", ] [[package]] name = "clap_builder" -version = "4.5.44" +version = "4.5.46" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b3e7f4214277f3c7aa526a59dd3fbe306a370daee1f8b7b8c987069cd8e888a8" +checksum = "fecb53a0e6fcfb055f686001bc2e2592fa527efaf38dbe81a6a9563562e57d41" dependencies = [ "anstyle", "clap_lex", @@ -721,7 +721,7 @@ dependencies = [ "cfg-if", "libc", "r-efi", - "wasi 0.14.2+wasi-0.2.4", + "wasi 0.14.3+wasi-0.2.4", ] [[package]] @@ -1394,9 +1394,9 @@ dependencies = [ [[package]] name = "potential_utf" -version = "0.1.2" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5a7c30837279ca13e7c867e9e40053bc68740f988cb07f7ca6df43cc734b585" +checksum = "84df19adbe5b5a0782edcab45899906947ab039ccf4573713735ee7de1e6b08a" dependencies = [ "zerovec", ] @@ -2515,11 +2515,11 @@ checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b" [[package]] name = "wasi" -version = "0.14.2+wasi-0.2.4" +version = "0.14.3+wasi-0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9683f9a5a998d873c0d21fcbe3c083009670149a8fab228644b8bd36b2c48cb3" +checksum = "6a51ae83037bdd272a9e28ce236db8c07016dd0d50c27038b3f407533c030c95" dependencies = [ - "wit-bindgen-rt", + "wit-bindgen", ] [[package]] @@ -2927,13 +2927,10 @@ dependencies = [ ] [[package]] -name = "wit-bindgen-rt" -version = "0.39.0" +name = "wit-bindgen" +version = "0.45.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f42320e61fe2cfd34354ecb597f86f413484a798ba44a8ca1165c58d42da6c1" -dependencies = [ - "bitflags 2.9.3", -] +checksum = "052283831dbae3d879dc7f51f3d92703a316ca49f91540417d38591826127814" [[package]] name = "writeable" diff --git a/Cargo.toml b/Cargo.toml index a1de08cb..b45f24e9 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -15,6 +15,8 @@ members = [ ] [workspace.package] +homepage = "https://actix.rs" +repository = "https://github.com/actix/actix-net" license = "MIT OR Apache-2.0" edition = "2021" rust-version = "1.75" diff --git a/actix-rt/CHANGES.md b/actix-rt/CHANGES.md index 65d2b543..1ad3dd0f 100644 --- a/actix-rt/CHANGES.md +++ b/actix-rt/CHANGES.md @@ -2,6 +2,10 @@ ## Unreleased +## 2.11.0 + +- Implement `ActixStream` for `tokio::io::BufReader`. +- Deprecate the `pin` re-export. - Minimum supported Rust version (MSRV) is now 1.75. ## 2.10.0 diff --git a/actix-rt/Cargo.toml b/actix-rt/Cargo.toml index ec022119..39902421 100644 --- a/actix-rt/Cargo.toml +++ b/actix-rt/Cargo.toml @@ -1,13 +1,13 @@ [package] name = "actix-rt" -version = "2.10.0" +version = "2.11.0" authors = ["Nikolay Kim ", "Rob Ede "] description = "Tokio-based single-threaded async runtime for the Actix ecosystem" -keywords = ["async", "futures", "io", "runtime"] -homepage = "https://actix.rs" -repository = "https://github.com/actix/actix-net" categories = ["network-programming", "asynchronous"] -license = "MIT OR Apache-2.0" +keywords = ["async", "futures", "io", "runtime"] +homepage.workspace = true +repository.workspace = true +license.workspace = true edition.workspace = true rust-version.workspace = true diff --git a/actix-rt/README.md b/actix-rt/README.md index 6ceed8b5..f1618fe6 100644 --- a/actix-rt/README.md +++ b/actix-rt/README.md @@ -3,11 +3,11 @@ > Tokio-based single-threaded async runtime for the Actix ecosystem. [![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.10.0)](https://docs.rs/actix-rt/2.10.0) +[![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) ![MIT or Apache 2.0 licensed](https://img.shields.io/crates/l/actix-rt.svg)
-[![dependency status](https://deps.rs/crate/actix-rt/2.10.0/status.svg)](https://deps.rs/crate/actix-rt/2.10.0) +[![dependency status](https://deps.rs/crate/actix-rt/2.11.0/status.svg)](https://deps.rs/crate/actix-rt/2.11.0) ![Download](https://img.shields.io/crates/d/actix-rt.svg) [![Chat on Discord](https://img.shields.io/discord/771444961383153695?label=chat&logo=discord)](https://discord.gg/WghFtEH6Hb) diff --git a/actix-rt/src/lib.rs b/actix-rt/src/lib.rs index 9dce19b8..fb795f0d 100644 --- a/actix-rt/src/lib.rs +++ b/actix-rt/src/lib.rs @@ -61,6 +61,7 @@ mod arbiter; mod runtime; mod system; +#[deprecated(since = "2.11.0", note = "Prefer `std::pin::pin!`.")] pub use tokio::pin; use tokio::task::JoinHandle; @@ -87,10 +88,11 @@ pub mod net { use std::{ future::Future, io, + pin::pin, task::{Context, Poll}, }; - use tokio::io::{AsyncRead, AsyncWrite, Interest}; + use tokio::io::{AsyncRead, AsyncWrite, BufReader, Interest}; #[cfg(unix)] pub use tokio::net::{UnixDatagram, UnixListener, UnixStream}; pub use tokio::{ @@ -115,14 +117,12 @@ pub mod net { impl ActixStream for TcpStream { fn poll_read_ready(&self, cx: &mut Context<'_>) -> Poll> { let ready = self.ready(Interest::READABLE); - tokio::pin!(ready); - ready.poll(cx) + pin!(ready).poll(cx) } fn poll_write_ready(&self, cx: &mut Context<'_>) -> Poll> { let ready = self.ready(Interest::WRITABLE); - tokio::pin!(ready); - ready.poll(cx) + pin!(ready).poll(cx) } } @@ -130,14 +130,12 @@ pub mod net { impl ActixStream for UnixStream { fn poll_read_ready(&self, cx: &mut Context<'_>) -> Poll> { let ready = self.ready(Interest::READABLE); - tokio::pin!(ready); - ready.poll(cx) + pin!(ready).poll(cx) } fn poll_write_ready(&self, cx: &mut Context<'_>) -> Poll> { let ready = self.ready(Interest::WRITABLE); - tokio::pin!(ready); - ready.poll(cx) + pin!(ready).poll(cx) } } @@ -150,6 +148,16 @@ pub mod net { (**self).poll_write_ready(cx) } } + + impl ActixStream for BufReader { + fn poll_read_ready(&self, cx: &mut Context<'_>) -> Poll> { + self.get_ref().poll_read_ready(cx) + } + + fn poll_write_ready(&self, cx: &mut Context<'_>) -> Poll> { + self.get_ref().poll_write_ready(cx) + } + } } pub mod time { From 5267bc2c895485e53e75524f53fb2ec9b21ad1d8 Mon Sep 17 00:00:00 2001 From: Rob Ede Date: Sat, 30 Aug 2025 02:31:17 +0100 Subject: [PATCH 332/410] chore(rt): include correct tokio features --- actix-rt/Cargo.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/actix-rt/Cargo.toml b/actix-rt/Cargo.toml index 39902421..1d1ff329 100644 --- a/actix-rt/Cargo.toml +++ b/actix-rt/Cargo.toml @@ -23,7 +23,7 @@ io-uring = ["tokio-uring"] actix-macros = { version = "0.2.3", optional = true } futures-core = { version = "0.3", default-features = false } -tokio = { version = "1.44.2", features = ["rt", "net", "parking_lot", "signal", "sync", "time"] } +tokio = { version = "1.44.2", features = ["rt", "io-util", "net", "parking_lot", "signal", "sync", "time"] } # runtime for `io-uring` feature [target.'cfg(target_os = "linux")'.dependencies] From d1d45f162114e500dcdc9743d053098f9205ee26 Mon Sep 17 00:00:00 2001 From: Rob Ede Date: Sat, 6 Sep 2025 21:15:55 +0100 Subject: [PATCH 333/410] ci: pin time crate in msrv --- justfile | 1 + 1 file changed, 1 insertion(+) diff --git a/justfile b/justfile index 3ec78dbd..7912634c 100644 --- a/justfile +++ b/justfile @@ -30,6 +30,7 @@ downgrade-for-msrv: 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 \ From 63f8e962fab652ccfeefa9821f8059a60df46220 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 6 Sep 2025 20:26:52 +0000 Subject: [PATCH 334/410] build(deps): bump actions-rust-lang/setup-rust-toolchain (#724) Bumps [actions-rust-lang/setup-rust-toolchain](https://github.com/actions-rust-lang/setup-rust-toolchain) from 1.14.0 to 1.14.1. - [Release notes](https://github.com/actions-rust-lang/setup-rust-toolchain/releases) - [Changelog](https://github.com/actions-rust-lang/setup-rust-toolchain/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions-rust-lang/setup-rust-toolchain/compare/v1.14.0...v1.14.1) --- updated-dependencies: - dependency-name: actions-rust-lang/setup-rust-toolchain dependency-version: 1.14.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/ci-post-merge.yml | 4 ++-- .github/workflows/ci.yml | 4 ++-- .github/workflows/coverage.yml | 2 +- .github/workflows/lint.yml | 6 +++--- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/.github/workflows/ci-post-merge.yml b/.github/workflows/ci-post-merge.yml index 8583851d..e0dbc2c5 100644 --- a/.github/workflows/ci-post-merge.yml +++ b/.github/workflows/ci-post-merge.yml @@ -59,7 +59,7 @@ jobs: echo "RUSTFLAGS=-C target-feature=+crt-static" >> $GITHUB_ENV - name: Install Rust (${{ matrix.version }}) - uses: actions-rust-lang/setup-rust-toolchain@v1.14.0 + uses: actions-rust-lang/setup-rust-toolchain@v1.14.1 with: toolchain: ${{ matrix.version }} @@ -116,7 +116,7 @@ jobs: - uses: actions/checkout@v5 - name: Install Rust (nightly) - uses: actions-rust-lang/setup-rust-toolchain@v1.14.0 + uses: actions-rust-lang/setup-rust-toolchain@v1.14.1 with: toolchain: nightly diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index f42df768..c7ed5097 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -68,7 +68,7 @@ jobs: echo "RUSTFLAGS=-C target-feature=+crt-static" >> $GITHUB_ENV - name: Install Rust (${{ matrix.version.name }}) - uses: actions-rust-lang/setup-rust-toolchain@v1.14.0 + uses: actions-rust-lang/setup-rust-toolchain@v1.14.1 with: toolchain: ${{ matrix.version.version }} @@ -120,7 +120,7 @@ jobs: - uses: actions/checkout@v5 - name: Install Rust (nightly) - uses: actions-rust-lang/setup-rust-toolchain@v1.14.0 + uses: actions-rust-lang/setup-rust-toolchain@v1.14.1 with: toolchain: nightly diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml index 5a631f9f..b6251ba7 100644 --- a/.github/workflows/coverage.yml +++ b/.github/workflows/coverage.yml @@ -18,7 +18,7 @@ jobs: - uses: actions/checkout@v5 - name: Install Rust - uses: actions-rust-lang/setup-rust-toolchain@v1.14.0 + uses: actions-rust-lang/setup-rust-toolchain@v1.14.1 with: components: llvm-tools-preview diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 951ffd5b..e7e3e806 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -18,7 +18,7 @@ jobs: steps: - uses: actions/checkout@v5 - - uses: actions-rust-lang/setup-rust-toolchain@v1.14.0 + - uses: actions-rust-lang/setup-rust-toolchain@v1.14.1 with: toolchain: nightly components: rustfmt @@ -35,7 +35,7 @@ jobs: steps: - uses: actions/checkout@v5 - - uses: actions-rust-lang/setup-rust-toolchain@v1.14.0 + - uses: actions-rust-lang/setup-rust-toolchain@v1.14.1 with: { components: clippy } - uses: giraffate/clippy-action@v1.0.1 @@ -51,7 +51,7 @@ jobs: - uses: actions/checkout@v5 - name: Install Rust (${{ vars.RUST_VERSION_EXTERNAL_TYPES }}) - uses: actions-rust-lang/setup-rust-toolchain@v1.14.0 + uses: actions-rust-lang/setup-rust-toolchain@v1.14.1 with: toolchain: ${{ vars.RUST_VERSION_EXTERNAL_TYPES }} From 0e1604e5ba63f5d22056aaa46117129b4b2d24d1 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 6 Sep 2025 20:33:52 +0000 Subject: [PATCH 335/410] build(deps): bump taiki-e/install-action from 2.58.21 to 2.58.30 (#723) Bumps [taiki-e/install-action](https://github.com/taiki-e/install-action) from 2.58.21 to 2.58.30. - [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.58.21...v2.58.30) --- updated-dependencies: - dependency-name: taiki-e/install-action dependency-version: 2.58.30 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/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 e0dbc2c5..5dd1e59a 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.58.21 + uses: taiki-e/install-action@v2.59.1 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.58.21 + uses: taiki-e/install-action@v2.59.1 with: tool: cargo-hack,cargo-minimal-versions diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index c7ed5097..035cdd8d 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.58.21 + uses: taiki-e/install-action@v2.59.1 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.58.21 + uses: taiki-e/install-action@v2.59.1 with: tool: just diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml index b6251ba7..fa6c6889 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.58.21 + uses: taiki-e/install-action@v2.59.1 with: tool: cargo-llvm-cov diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index e7e3e806..b183ad40 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.58.21 + uses: taiki-e/install-action@v2.59.1 with: tool: just From b3406dc7e0756795a449fe7a2496ea9f51768afb Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 9 Sep 2025 04:44:04 +0100 Subject: [PATCH 336/410] build(deps): bump taiki-e/install-action from 2.59.1 to 2.60.0 (#727) Bumps [taiki-e/install-action](https://github.com/taiki-e/install-action) from 2.59.1 to 2.60.0. - [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.59.1...v2.60.0) --- updated-dependencies: - dependency-name: taiki-e/install-action dependency-version: 2.60.0 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 5dd1e59a..3139bf41 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.59.1 + uses: taiki-e/install-action@v2.60.0 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.59.1 + uses: taiki-e/install-action@v2.60.0 with: tool: cargo-hack,cargo-minimal-versions diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 035cdd8d..d1f965da 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.59.1 + uses: taiki-e/install-action@v2.60.0 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.59.1 + uses: taiki-e/install-action@v2.60.0 with: tool: just diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml index fa6c6889..4862e09f 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.59.1 + uses: taiki-e/install-action@v2.60.0 with: tool: cargo-llvm-cov diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index b183ad40..4c5ccfa5 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.59.1 + uses: taiki-e/install-action@v2.60.0 with: tool: just From 23d19cfb90e3d3832667e9afc5d65d9d5402b80d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 9 Sep 2025 05:54:29 +0100 Subject: [PATCH 337/410] build(deps): bump codecov/codecov-action from 5.5.0 to 5.5.1 (#726) Bumps [codecov/codecov-action](https://github.com/codecov/codecov-action) from 5.5.0 to 5.5.1. - [Release notes](https://github.com/codecov/codecov-action/releases) - [Changelog](https://github.com/codecov/codecov-action/blob/main/CHANGELOG.md) - [Commits](https://github.com/codecov/codecov-action/compare/v5.5.0...v5.5.1) --- updated-dependencies: - dependency-name: codecov/codecov-action dependency-version: 5.5.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/coverage.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml index 4862e09f..2f850c56 100644 --- a/.github/workflows/coverage.yml +++ b/.github/workflows/coverage.yml @@ -31,7 +31,7 @@ jobs: run: cargo llvm-cov --workspace --all-features --codecov --output-path codecov.json - name: Upload coverage to Codecov - uses: codecov/codecov-action@v5.5.0 + uses: codecov/codecov-action@v5.5.1 with: files: codecov.json fail_ci_if_error: true From a9d98ca11fb1a15804a9786164966bc29513f55d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 9 Sep 2025 05:54:38 +0100 Subject: [PATCH 338/410] build(deps): bump bitflags from 2.9.3 to 2.9.4 (#725) Bumps [bitflags](https://github.com/bitflags/bitflags) from 2.9.3 to 2.9.4. - [Release notes](https://github.com/bitflags/bitflags/releases) - [Changelog](https://github.com/bitflags/bitflags/blob/main/CHANGELOG.md) - [Commits](https://github.com/bitflags/bitflags/compare/2.9.3...2.9.4) --- updated-dependencies: - dependency-name: bitflags dependency-version: 2.9.4 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 | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 8f0ef6e4..d278e1e7 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -6,7 +6,7 @@ version = 3 name = "actix-codec" version = "0.5.2" dependencies = [ - "bitflags 2.9.3", + "bitflags 2.9.4", "bytes", "criterion", "futures-core", @@ -282,7 +282,7 @@ version = "0.69.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "271383c67ccabffb7381723dea0672a673f292304fcb45c01cc648c7a8d58088" dependencies = [ - "bitflags 2.9.3", + "bitflags 2.9.4", "cexpr", "clang-sys", "itertools 0.12.1", @@ -307,9 +307,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bitflags" -version = "2.9.3" +version = "2.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34efbcccd345379ca2868b2b2c9d3782e9cc58ba87bc7d79d5b53d9c9ae6f25d" +checksum = "2261d10cca569e4643e526d8dc2e62e433cc8aba21ab764233731f8d369bf394" [[package]] name = "bumpalo" @@ -950,7 +950,7 @@ version = "0.7.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "046fa2d4d00aea763528b4950358d0ead425372445dc8ff86312b3c69ff7727b" dependencies = [ - "bitflags 2.9.3", + "bitflags 2.9.4", "cfg-if", "libc", ] @@ -1249,7 +1249,7 @@ version = "0.10.73" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8505734d46c8ab1e19a1dce3aef597ad87dcb4c37e7188231769bd6bd51cebf8" dependencies = [ - "bitflags 2.9.3", + "bitflags 2.9.4", "cfg-if", "foreign-types", "libc", @@ -1529,7 +1529,7 @@ version = "0.5.17" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5407465600fb0548f1442edf71dd20683c6ed326200ace4b1ef0763521bb3b77" dependencies = [ - "bitflags 2.9.3", + "bitflags 2.9.4", ] [[package]] @@ -1614,7 +1614,7 @@ version = "0.38.44" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fdb5bc1ae2baa591800df16c9ca78619bf65c0488b41b96ccec5d11220d8c154" dependencies = [ - "bitflags 2.9.3", + "bitflags 2.9.4", "errno", "libc", "linux-raw-sys 0.4.15", @@ -1627,7 +1627,7 @@ version = "1.0.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "11181fbabf243db407ef8df94a6ce0b2f9a733bd8be4ad02b4eda9602296cac8" dependencies = [ - "bitflags 2.9.3", + "bitflags 2.9.4", "errno", "libc", "linux-raw-sys 0.9.4", @@ -1830,7 +1830,7 @@ version = "2.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02" dependencies = [ - "bitflags 2.9.3", + "bitflags 2.9.4", "core-foundation", "core-foundation-sys", "libc", From da9db224c48af14907914876a34a87b147b66582 Mon Sep 17 00:00:00 2001 From: Paolo Barbolini Date: Mon, 15 Sep 2025 10:11:50 +0200 Subject: [PATCH 339/410] Switch `serde` dependency to `serde_core` (#728) --- Cargo.lock | 20 +++++++++++++++----- bytestring/CHANGES.md | 1 + bytestring/Cargo.toml | 5 ++++- bytestring/src/lib.rs | 4 ++-- 4 files changed, 22 insertions(+), 8 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index d278e1e7..51914543 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -329,7 +329,7 @@ version = "1.4.0" dependencies = [ "ahash", "bytes", - "serde", + "serde_core", "serde_json", "static_assertions", ] @@ -1849,18 +1849,28 @@ dependencies = [ [[package]] name = "serde" -version = "1.0.219" +version = "1.0.221" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f0e2c6ed6606019b4e29e69dbaba95b11854410e5347d525002456dbbb786b6" +checksum = "341877e04a22458705eb4e131a1508483c877dca2792b3781d4e5d8a6019ec43" +dependencies = [ + "serde_core", + "serde_derive", +] + +[[package]] +name = "serde_core" +version = "1.0.221" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c459bc0a14c840cb403fc14b148620de1e0778c96ecd6e0c8c3cacb6d8d00fe" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.219" +version = "1.0.221" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b0276cf7f2c73365f7157c8123c21cd9a50fbbd844757af28ca1f5925fc2a00" +checksum = "d6185cf75117e20e62b1ff867b9518577271e58abe0037c40bb4794969355ab0" dependencies = [ "proc-macro2", "quote", diff --git a/bytestring/CHANGES.md b/bytestring/CHANGES.md index 931221a5..43143e82 100644 --- a/bytestring/CHANGES.md +++ b/bytestring/CHANGES.md @@ -3,6 +3,7 @@ ## Unreleased - Minimum supported Rust version (MSRV) is now 1.75. +- Switch `serde` to `serde_core` ## 1.4.0 diff --git a/bytestring/Cargo.toml b/bytestring/Cargo.toml index a7b92d7c..e1b78b90 100644 --- a/bytestring/Cargo.toml +++ b/bytestring/Cargo.toml @@ -16,12 +16,15 @@ allowed_external_types = ["bytes::*", "serde::*"] [dependencies] bytes = { version = "1.2", default-features = false } -serde = { version = "1", optional = true } +serde_core = { version = "1.0.221", optional = true } [dev-dependencies] ahash = { version = "0.8", default-features = false } serde_json = "1" static_assertions = "1.1" +[features] +serde = ["dep:serde_core"] + [lints] workspace = true diff --git a/bytestring/src/lib.rs b/bytestring/src/lib.rs index d0d05a20..10f5cc4b 100644 --- a/bytestring/src/lib.rs +++ b/bytestring/src/lib.rs @@ -275,7 +275,7 @@ impl fmt::Display for ByteString { mod serde { use alloc::string::String; - use serde::{ + use serde_core::{ de::{Deserialize, Deserializer}, ser::{Serialize, Serializer}, }; @@ -304,7 +304,7 @@ mod serde { #[cfg(test)] mod serde_impl_tests { - use serde::de::DeserializeOwned; + use serde_core::de::DeserializeOwned; use static_assertions::assert_impl_all; use super::*; From d22774f1b70acc12ed668bbd9f6e5775c305f3b1 Mon Sep 17 00:00:00 2001 From: Rob Ede Date: Mon, 15 Sep 2025 09:13:23 +0100 Subject: [PATCH 340/410] chore(bytestring): prepare release 1.5.0 --- .cspell.yml | 2 ++ Cargo.lock | 2 +- bytestring/CHANGES.md | 3 +++ bytestring/Cargo.toml | 10 +++++----- bytestring/README.md | 4 ++-- 5 files changed, 13 insertions(+), 8 deletions(-) diff --git a/.cspell.yml b/.cspell.yml index 3aa9eea1..2221c11e 100644 --- a/.cspell.yml +++ b/.cspell.yml @@ -2,6 +2,7 @@ version: "0.2" words: - actix - addrs + - bytestring - clippy - deque - itertools @@ -13,6 +14,7 @@ words: - rcgen - Rustls - rustup + - serde - spki - uring - webpki diff --git a/Cargo.lock b/Cargo.lock index 51914543..0c521f57 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -325,7 +325,7 @@ checksum = "d71b6127be86fdcfddb610f7182ac57211d4b18a3e9c82eb2d17662f2227ad6a" [[package]] name = "bytestring" -version = "1.4.0" +version = "1.5.0" dependencies = [ "ahash", "bytes", diff --git a/bytestring/CHANGES.md b/bytestring/CHANGES.md index 43143e82..392a7132 100644 --- a/bytestring/CHANGES.md +++ b/bytestring/CHANGES.md @@ -2,6 +2,9 @@ ## Unreleased +## 1.5.0 + +- Migrate `serde` dependency to `serde_core`. - Minimum supported Rust version (MSRV) is now 1.75. - Switch `serde` to `serde_core` diff --git a/bytestring/Cargo.toml b/bytestring/Cargo.toml index e1b78b90..c2b7b78f 100644 --- a/bytestring/Cargo.toml +++ b/bytestring/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "bytestring" -version = "1.4.0" +version = "1.5.0" description = "A UTF-8 encoded read-only string using `Bytes` as storage" authors = ["Nikolay Kim ", "Rob Ede "] keywords = ["string", "bytes", "utf8", "web", "bytestring"] @@ -14,17 +14,17 @@ rust-version.workspace = true [package.metadata.cargo_check_external_types] allowed_external_types = ["bytes::*", "serde::*"] +[features] +serde = ["dep:serde_core"] + [dependencies] bytes = { version = "1.2", default-features = false } -serde_core = { version = "1.0.221", optional = true } +serde_core = { version = "1", optional = true } [dev-dependencies] ahash = { version = "0.8", default-features = false } serde_json = "1" static_assertions = "1.1" -[features] -serde = ["dep:serde_core"] - [lints] workspace = true diff --git a/bytestring/README.md b/bytestring/README.md index a525cd75..589c35c4 100644 --- a/bytestring/README.md +++ b/bytestring/README.md @@ -5,11 +5,11 @@ [![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.4.0)](https://docs.rs/bytestring/1.4.0) +[![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) ![MIT or Apache 2.0 licensed](https://img.shields.io/crates/l/bytestring.svg)
-[![Dependency Status](https://deps.rs/crate/bytestring/1.4.0/status.svg)](https://deps.rs/crate/bytestring/1.4.0) +[![Dependency Status](https://deps.rs/crate/bytestring/1.5.0/status.svg)](https://deps.rs/crate/bytestring/1.5.0) ![Download](https://img.shields.io/crates/d/bytestring.svg) [![Chat on Discord](https://img.shields.io/discord/771444961383153695?label=chat&logo=discord)](https://discord.gg/NWpN5mmg3x) From 8a6c69e45dc155517cabeee7f9652aca3911975a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 15 Sep 2025 18:34:42 +0000 Subject: [PATCH 341/410] build(deps): bump serde_json from 1.0.143 to 1.0.145 (#729) Bumps [serde_json](https://github.com/serde-rs/json) from 1.0.143 to 1.0.145. - [Release notes](https://github.com/serde-rs/json/releases) - [Commits](https://github.com/serde-rs/json/compare/v1.0.143...v1.0.145) --- updated-dependencies: - dependency-name: serde_json dependency-version: 1.0.145 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 | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 0c521f57..5ed91592 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1879,14 +1879,15 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.143" +version = "1.0.145" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d401abef1d108fbd9cbaebc3e46611f4b1021f714a0597a71f41ee463f5f4a5a" +checksum = "402a6f66d8c709116cf22f558eab210f5a50187f702eb4d7e5ef38d9a7f1c79c" dependencies = [ "itoa", "memchr", "ryu", "serde", + "serde_core", ] [[package]] From 19ffbf75b79edeb6af4f8565087a333fec1274d2 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 15 Sep 2025 20:48:04 +0100 Subject: [PATCH 342/410] build(deps): bump taiki-e/install-action from 2.60.0 to 2.61.5 (#731) Bumps [taiki-e/install-action](https://github.com/taiki-e/install-action) from 2.60.0 to 2.61.5. - [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.60.0...v2.61.5) --- updated-dependencies: - dependency-name: taiki-e/install-action dependency-version: 2.61.5 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 3139bf41..e773dd90 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.60.0 + uses: taiki-e/install-action@v2.61.5 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.60.0 + uses: taiki-e/install-action@v2.61.5 with: tool: cargo-hack,cargo-minimal-versions diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index d1f965da..58058f15 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.60.0 + uses: taiki-e/install-action@v2.61.5 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.60.0 + uses: taiki-e/install-action@v2.61.5 with: tool: just diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml index 2f850c56..eb9514d7 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.60.0 + uses: taiki-e/install-action@v2.61.5 with: tool: cargo-llvm-cov diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 4c5ccfa5..fc7dea9d 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.60.0 + uses: taiki-e/install-action@v2.61.5 with: tool: just From d6efadb1e95c7e673e6851ecd67fe18cb5d6f1d6 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 15 Sep 2025 20:48:06 +0100 Subject: [PATCH 343/410] build(deps): bump trybuild from 1.0.110 to 1.0.111 (#732) Bumps [trybuild](https://github.com/dtolnay/trybuild) from 1.0.110 to 1.0.111. - [Release notes](https://github.com/dtolnay/trybuild/releases) - [Commits](https://github.com/dtolnay/trybuild/compare/1.0.110...1.0.111) --- updated-dependencies: - dependency-name: trybuild dependency-version: 1.0.111 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 5ed91592..81f16282 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2426,9 +2426,9 @@ dependencies = [ [[package]] name = "trybuild" -version = "1.0.110" +version = "1.0.111" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32e257d7246e7a9fd015fb0b28b330a8d4142151a33f03e6a497754f4b1f6a8e" +checksum = "0ded9fdb81f30a5708920310bfcd9ea7482ff9cba5f54601f7a19a877d5c2392" dependencies = [ "glob", "serde", From 16083843b65858406407e38ed4149e1fab95988f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 15 Sep 2025 20:48:08 +0100 Subject: [PATCH 344/410] build(deps): bump actions-rust-lang/setup-rust-toolchain (#730) Bumps [actions-rust-lang/setup-rust-toolchain](https://github.com/actions-rust-lang/setup-rust-toolchain) from 1.14.1 to 1.15.0. - [Release notes](https://github.com/actions-rust-lang/setup-rust-toolchain/releases) - [Changelog](https://github.com/actions-rust-lang/setup-rust-toolchain/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions-rust-lang/setup-rust-toolchain/compare/v1.14.1...v1.15.0) --- updated-dependencies: - dependency-name: actions-rust-lang/setup-rust-toolchain dependency-version: 1.15.0 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 | 6 +++--- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/.github/workflows/ci-post-merge.yml b/.github/workflows/ci-post-merge.yml index e773dd90..fae81720 100644 --- a/.github/workflows/ci-post-merge.yml +++ b/.github/workflows/ci-post-merge.yml @@ -59,7 +59,7 @@ jobs: echo "RUSTFLAGS=-C target-feature=+crt-static" >> $GITHUB_ENV - name: Install Rust (${{ matrix.version }}) - uses: actions-rust-lang/setup-rust-toolchain@v1.14.1 + uses: actions-rust-lang/setup-rust-toolchain@v1.15.0 with: toolchain: ${{ matrix.version }} @@ -116,7 +116,7 @@ jobs: - uses: actions/checkout@v5 - name: Install Rust (nightly) - uses: actions-rust-lang/setup-rust-toolchain@v1.14.1 + uses: actions-rust-lang/setup-rust-toolchain@v1.15.0 with: toolchain: nightly diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 58058f15..1ef1073d 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -68,7 +68,7 @@ jobs: echo "RUSTFLAGS=-C target-feature=+crt-static" >> $GITHUB_ENV - name: Install Rust (${{ matrix.version.name }}) - uses: actions-rust-lang/setup-rust-toolchain@v1.14.1 + uses: actions-rust-lang/setup-rust-toolchain@v1.15.0 with: toolchain: ${{ matrix.version.version }} @@ -120,7 +120,7 @@ jobs: - uses: actions/checkout@v5 - name: Install Rust (nightly) - uses: actions-rust-lang/setup-rust-toolchain@v1.14.1 + uses: actions-rust-lang/setup-rust-toolchain@v1.15.0 with: toolchain: nightly diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml index eb9514d7..b037dce6 100644 --- a/.github/workflows/coverage.yml +++ b/.github/workflows/coverage.yml @@ -18,7 +18,7 @@ jobs: - uses: actions/checkout@v5 - name: Install Rust - uses: actions-rust-lang/setup-rust-toolchain@v1.14.1 + uses: actions-rust-lang/setup-rust-toolchain@v1.15.0 with: components: llvm-tools-preview diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index fc7dea9d..fb7e1b02 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -18,7 +18,7 @@ jobs: steps: - uses: actions/checkout@v5 - - uses: actions-rust-lang/setup-rust-toolchain@v1.14.1 + - uses: actions-rust-lang/setup-rust-toolchain@v1.15.0 with: toolchain: nightly components: rustfmt @@ -35,7 +35,7 @@ jobs: steps: - uses: actions/checkout@v5 - - uses: actions-rust-lang/setup-rust-toolchain@v1.14.1 + - uses: actions-rust-lang/setup-rust-toolchain@v1.15.0 with: { components: clippy } - uses: giraffate/clippy-action@v1.0.1 @@ -51,7 +51,7 @@ jobs: - uses: actions/checkout@v5 - name: Install Rust (${{ vars.RUST_VERSION_EXTERNAL_TYPES }}) - uses: actions-rust-lang/setup-rust-toolchain@v1.14.1 + uses: actions-rust-lang/setup-rust-toolchain@v1.15.0 with: toolchain: ${{ vars.RUST_VERSION_EXTERNAL_TYPES }} From 5904bd2997dbb0dde4aac8b4c437a1726759c844 Mon Sep 17 00:00:00 2001 From: Rob Ede Date: Sat, 20 Sep 2025 00:23:39 +0100 Subject: [PATCH 345/410] test: replace trust-dns with hickory --- Cargo.lock | 377 ++++++++++++++++++++++-------- actix-tls/Cargo.toml | 2 +- actix-tls/tests/test_resolvers.rs | 6 +- bytestring/Cargo.toml | 2 +- 4 files changed, 290 insertions(+), 97 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 81f16282..14809121 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -87,6 +87,7 @@ dependencies = [ "bytes", "futures-core", "futures-util", + "hickory-resolver", "http 0.2.12", "http 1.3.1", "impl-more", @@ -110,7 +111,6 @@ dependencies = [ "tokio-rustls 0.26.2", "tokio-util", "tracing", - "trust-dns-resolver", "webpki-roots 0.22.6", "webpki-roots 0.25.4", "webpki-roots 0.26.11", @@ -490,6 +490,21 @@ dependencies = [ "itertools 0.10.5", ] +[[package]] +name = "critical-section" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "790eea4361631c5e7d22598ecd5723ff611904e3344ce8720784c93e3d83d40b" + +[[package]] +name = "crossbeam-channel" +version = "0.5.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "82b8f8f868b36967f9606790d1903570de9ceaf870a7bf9fbbd3016d636a2cb2" +dependencies = [ + "crossbeam-utils", +] + [[package]] name = "crossbeam-deque" version = "0.8.6" @@ -701,6 +716,20 @@ dependencies = [ "slab", ] +[[package]] +name = "generator" +version = "0.8.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "605183a538e3e2a9c1038635cc5c2d194e2ee8fd0d1b66b8349fad7dbacce5a2" +dependencies = [ + "cc", + "cfg-if", + "libc", + "log", + "rustversion", + "windows", +] + [[package]] name = "getrandom" version = "0.2.16" @@ -764,6 +793,52 @@ version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fc0fef456e4baa96da950455cd02c081ca953b141298e41db3fc7e36b1da849c" +[[package]] +name = "hickory-proto" +version = "0.25.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8a6fe56c0038198998a6f217ca4e7ef3a5e51f46163bd6dd60b5c71ca6c6502" +dependencies = [ + "async-trait", + "cfg-if", + "data-encoding", + "enum-as-inner", + "futures-channel", + "futures-io", + "futures-util", + "idna", + "ipnet", + "once_cell", + "rand", + "ring 0.17.14", + "thiserror 2.0.16", + "tinyvec", + "tokio", + "tracing", + "url", +] + +[[package]] +name = "hickory-resolver" +version = "0.25.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc62a9a99b0bfb44d2ab95a7208ac952d31060efc16241c87eaf36406fecf87a" +dependencies = [ + "cfg-if", + "futures-util", + "hickory-proto", + "ipconfig", + "moka", + "once_cell", + "parking_lot", + "rand", + "resolv-conf", + "smallvec", + "thiserror 2.0.16", + "tokio", + "tracing", +] + [[package]] name = "home" version = "0.5.11" @@ -887,16 +962,6 @@ dependencies = [ "zerovec", ] -[[package]] -name = "idna" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d20d6b07bfbc108882d88ed8e37d39636dcc260e15e30c45e6ba089610b917c" -dependencies = [ - "unicode-bidi", - "unicode-normalization", -] - [[package]] name = "idna" version = "1.1.0" @@ -1065,12 +1130,6 @@ dependencies = [ "windows-targets 0.53.3", ] -[[package]] -name = "linked-hash-map" -version = "0.5.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f" - [[package]] name = "linux-raw-sys" version = "0.4.15" @@ -1121,12 +1180,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "13dc2df351e3202783a1fe0d44375f7295ffb4049267b0f3018346dc122a1d94" [[package]] -name = "lru-cache" -version = "0.1.2" +name = "loom" +version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "31e24f1ad8321ca0e8a1e0ac13f23cb668e6f5466c2c57319f6a5cf1cc8e3b1c" +checksum = "419e0dc8046cb947daa77eb95ae174acfbddb7673b4151f56d1eed8e93fbfaca" dependencies = [ - "linked-hash-map", + "cfg-if", + "generator", + "scoped-tls", + "tracing", + "tracing-subscriber", ] [[package]] @@ -1171,6 +1234,25 @@ dependencies = [ "windows-sys 0.59.0", ] +[[package]] +name = "moka" +version = "0.12.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a9321642ca94a4282428e6ea4af8cc2ca4eac48ac7a6a4ea8f33f76d0ce70926" +dependencies = [ + "crossbeam-channel", + "crossbeam-epoch", + "crossbeam-utils", + "loom", + "parking_lot", + "portable-atomic", + "rustc_version", + "smallvec", + "tagptr", + "thiserror 1.0.69", + "uuid", +] + [[package]] name = "native-tls" version = "0.2.14" @@ -1236,6 +1318,10 @@ name = "once_cell" version = "1.21.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d" +dependencies = [ + "critical-section", + "portable-atomic", +] [[package]] name = "oorandom" @@ -1392,6 +1478,12 @@ dependencies = [ "plotters-backend", ] +[[package]] +name = "portable-atomic" +version = "1.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f84267b20a16ea918e43c6a88433c2d54fa145c92a811b5b047ccbe153674483" + [[package]] name = "potential_utf" version = "0.1.3" @@ -1462,20 +1554,19 @@ checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f" [[package]] name = "rand" -version = "0.8.5" +version = "0.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" +checksum = "6db2770f06117d490610c7488547d543617b21bfa07796d7a12f6f1bd53850d1" dependencies = [ - "libc", "rand_chacha", "rand_core", ] [[package]] name = "rand_chacha" -version = "0.3.1" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" +checksum = "d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb" dependencies = [ "ppv-lite86", "rand_core", @@ -1483,11 +1574,11 @@ dependencies = [ [[package]] name = "rand_core" -version = "0.6.4" +version = "0.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" +checksum = "99d9a13982dcf210057a8a78572b2217b667c3beacbf3a0d8b454f6f82837d38" dependencies = [ - "getrandom 0.2.16", + "getrandom 0.3.3", ] [[package]] @@ -1608,6 +1699,15 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" +[[package]] +name = "rustc_version" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92" +dependencies = [ + "semver", +] + [[package]] name = "rustix" version = "0.38.44" @@ -1808,6 +1908,12 @@ dependencies = [ "windows-sys 0.59.0", ] +[[package]] +name = "scoped-tls" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e1cf6437eb19a8f4a6cc0f7dca544973b0b78843adbfeb3683d1a94a0024a294" + [[package]] name = "scopeguard" version = "1.2.0" @@ -1847,6 +1953,12 @@ dependencies = [ "libc", ] +[[package]] +name = "semver" +version = "1.0.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d767eb0aabc880b29956c35734170f26ed551a859dbd361d140cdbeca61ab1e2" + [[package]] name = "serde" version = "1.0.221" @@ -2011,6 +2123,12 @@ dependencies = [ "syn", ] +[[package]] +name = "tagptr" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b2093cf4c8eb1e67749a6762251bc9cd836b6fc171623bd0a9d324d37af2417" + [[package]] name = "target-triple" version = "0.1.4" @@ -2045,7 +2163,16 @@ version = "1.0.69" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52" dependencies = [ - "thiserror-impl", + "thiserror-impl 1.0.69", +] + +[[package]] +name = "thiserror" +version = "2.0.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3467d614147380f2e4e374161426ff399c91084acd2363eaf549172b3d5e60c0" +dependencies = [ + "thiserror-impl 2.0.16", ] [[package]] @@ -2059,6 +2186,17 @@ dependencies = [ "syn", ] +[[package]] +name = "thiserror-impl" +version = "2.0.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c5e1be1c48b9172ee610da68fd9cd2770e7a4056cb3fc98710ee6906f0c7960" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "thread_local" version = "1.1.9" @@ -2378,52 +2516,6 @@ dependencies = [ "tracing-log", ] -[[package]] -name = "trust-dns-proto" -version = "0.23.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3119112651c157f4488931a01e586aa459736e9d6046d3bd9105ffb69352d374" -dependencies = [ - "async-trait", - "cfg-if", - "data-encoding", - "enum-as-inner", - "futures-channel", - "futures-io", - "futures-util", - "idna 0.4.0", - "ipnet", - "once_cell", - "rand", - "smallvec", - "thiserror", - "tinyvec", - "tokio", - "tracing", - "url", -] - -[[package]] -name = "trust-dns-resolver" -version = "0.23.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "10a3e6c3aff1718b3c73e395d1f35202ba2ffa847c6a62eea0db8fb4cfe30be6" -dependencies = [ - "cfg-if", - "futures-util", - "ipconfig", - "lru-cache", - "once_cell", - "parking_lot", - "rand", - "resolv-conf", - "smallvec", - "thiserror", - "tokio", - "tracing", - "trust-dns-proto", -] - [[package]] name = "trybuild" version = "1.0.111" @@ -2439,27 +2531,12 @@ dependencies = [ "toml", ] -[[package]] -name = "unicode-bidi" -version = "0.3.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c1cb5db39152898a79168971543b1cb5020dff7fe43c8dc468b0885f5e29df5" - [[package]] name = "unicode-ident" version = "1.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5a5f39404a5da50712a4c1eecf25e90dd62b613502b7e925fd4e4d19b5c96512" -[[package]] -name = "unicode-normalization" -version = "0.1.24" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5033c97c4262335cded6d6fc3e5c18ab755e1a3dc96376350f3d8e9f009ad956" -dependencies = [ - "tinyvec", -] - [[package]] name = "untrusted" version = "0.7.1" @@ -2479,7 +2556,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "08bc136a29a3d1758e07a9cca267be308aeebf5cfd5a10f3f67ab2097683ef5b" dependencies = [ "form_urlencoded", - "idna 1.1.0", + "idna", "percent-encoding", "serde", ] @@ -2490,6 +2567,17 @@ version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" +[[package]] +name = "uuid" +version = "1.18.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2f87b8aa10b915a06587d0dec516c282ff295b475d94abf425d62b57710070a2" +dependencies = [ + "getrandom 0.3.3", + "js-sys", + "wasm-bindgen", +] + [[package]] name = "valuable" version = "0.1.1" @@ -2693,12 +2781,108 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" +[[package]] +name = "windows" +version = "0.61.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9babd3a767a4c1aef6900409f85f5d53ce2544ccdfaa86dad48c91782c6d6893" +dependencies = [ + "windows-collections", + "windows-core", + "windows-future", + "windows-link", + "windows-numerics", +] + +[[package]] +name = "windows-collections" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3beeceb5e5cfd9eb1d76b381630e82c4241ccd0d27f1a39ed41b2760b255c5e8" +dependencies = [ + "windows-core", +] + +[[package]] +name = "windows-core" +version = "0.61.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0fdd3ddb90610c7638aa2b3a3ab2904fb9e5cdbecc643ddb3647212781c4ae3" +dependencies = [ + "windows-implement", + "windows-interface", + "windows-link", + "windows-result", + "windows-strings", +] + +[[package]] +name = "windows-future" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc6a41e98427b19fe4b73c550f060b59fa592d7d686537eebf9385621bfbad8e" +dependencies = [ + "windows-core", + "windows-link", + "windows-threading", +] + +[[package]] +name = "windows-implement" +version = "0.60.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a47fddd13af08290e67f4acabf4b459f647552718f683a7b415d290ac744a836" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "windows-interface" +version = "0.59.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd9211b69f8dcdfa817bfd14bf1c97c9188afa36f4750130fcdf3f400eca9fa8" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "windows-link" version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5e6ad25900d524eaabdbbb96d20b4311e1e7ae1699af4fb28c17ae66c80d798a" +[[package]] +name = "windows-numerics" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9150af68066c4c5c07ddc0ce30421554771e528bde427614c61038bc2c92c2b1" +dependencies = [ + "windows-core", + "windows-link", +] + +[[package]] +name = "windows-result" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56f42bd332cc6c8eac5af113fc0c1fd6a8fd2aa08a0119358686e5160d0586c6" +dependencies = [ + "windows-link", +] + +[[package]] +name = "windows-strings" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56e6c93f3a0c3b36176cb1327a4958a0353d5d166c2a35cb268ace15e91d3b57" +dependencies = [ + "windows-link", +] + [[package]] name = "windows-sys" version = "0.48.0" @@ -2783,6 +2967,15 @@ dependencies = [ "windows_x86_64_msvc 0.53.0", ] +[[package]] +name = "windows-threading" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b66463ad2e0ea3bbf808b7f1d371311c80e115c0b71d60efc142cafbcfb057a6" +dependencies = [ + "windows-link", +] + [[package]] name = "windows_aarch64_gnullvm" version = "0.48.5" diff --git a/actix-tls/Cargo.toml b/actix-tls/Cargo.toml index 3228dc99..b01281e9 100644 --- a/actix-tls/Cargo.toml +++ b/actix-tls/Cargo.toml @@ -120,12 +120,12 @@ actix-rt = "2.2" actix-server = "2" bytes = "1" futures-util = { version = "0.3.17", default-features = false, features = ["sink"] } +hickory-resolver = "0.25" itertools = "0.14" pretty_env_logger = "0.5" rcgen = "0.13" rustls-pemfile = "2" tokio-rustls-026 = { package = "tokio-rustls", version = "0.26" } -trust-dns-resolver = "0.23" [[example]] name = "accept-rustls" diff --git a/actix-tls/tests/test_resolvers.rs b/actix-tls/tests/test_resolvers.rs index b6629b0b..d2db64fe 100644 --- a/actix-tls/tests/test_resolvers.rs +++ b/actix-tls/tests/test_resolvers.rs @@ -50,12 +50,12 @@ async fn custom_resolver_connect() { Connector::new(resolver) } - use trust_dns_resolver::TokioAsyncResolver; + use hickory_resolver::TokioResolver; let srv = TestServer::start(|| fn_service(|_io: TcpStream| async { Ok::<_, io::Error>(()) })); struct MyResolver { - trust_dns: TokioAsyncResolver, + trust_dns: TokioResolver, } impl Resolve for MyResolver { @@ -78,7 +78,7 @@ async fn custom_resolver_connect() { } let resolver = MyResolver { - trust_dns: TokioAsyncResolver::tokio_from_system_conf().unwrap(), + trust_dns: TokioResolver::builder_tokio().unwrap().build(), }; let factory = connector_factory(Resolver::custom(resolver)); diff --git a/bytestring/Cargo.toml b/bytestring/Cargo.toml index c2b7b78f..bbc64412 100644 --- a/bytestring/Cargo.toml +++ b/bytestring/Cargo.toml @@ -12,7 +12,7 @@ edition.workspace = true rust-version.workspace = true [package.metadata.cargo_check_external_types] -allowed_external_types = ["bytes::*", "serde::*"] +allowed_external_types = ["bytes::*", "serde_core::*"] [features] serde = ["dep:serde_core"] From ca380c4c8c7256cdf6ac608b3a4239bbd86a3f82 Mon Sep 17 00:00:00 2001 From: Yuki Okushi Date: Tue, 23 Sep 2025 10:21:18 +0900 Subject: [PATCH 346/410] fix: fix Trust DNS leftovers (#736) * fix: fix Trust DNS leftovers * chore: update MSRV --- Cargo.toml | 2 +- actix-codec/CHANGES.md | 2 +- actix-macros/CHANGES.md | 2 +- actix-rt/CHANGES.md | 2 ++ actix-server/CHANGES.md | 2 ++ actix-service/CHANGES.md | 2 +- actix-tls/CHANGES.md | 2 +- actix-tls/src/connect/resolve.rs | 10 +++++----- actix-tls/tests/test_resolvers.rs | 6 +++--- actix-tracing/CHANGES.md | 2 +- actix-utils/CHANGES.md | 2 +- bytestring/CHANGES.md | 2 ++ local-channel/CHANGES.md | 2 +- local-waker/CHANGES.md | 2 +- 14 files changed, 23 insertions(+), 17 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index b45f24e9..74792da7 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.75" +rust-version = "1.76" [patch.crates-io] actix-codec = { path = "actix-codec" } diff --git a/actix-codec/CHANGES.md b/actix-codec/CHANGES.md index d8e6f2c3..f50ded24 100644 --- a/actix-codec/CHANGES.md +++ b/actix-codec/CHANGES.md @@ -2,7 +2,7 @@ ## Unreleased -- Minimum supported Rust version (MSRV) is now 1.75. +- Minimum supported Rust version (MSRV) is now 1.76. ## 0.5.2 diff --git a/actix-macros/CHANGES.md b/actix-macros/CHANGES.md index 4a4634ed..3900129e 100644 --- a/actix-macros/CHANGES.md +++ b/actix-macros/CHANGES.md @@ -2,7 +2,7 @@ ## Unreleased -- Minimum supported Rust version (MSRV) is now 1.75. +- Minimum supported Rust version (MSRV) is now 1.76. ## 0.2.4 diff --git a/actix-rt/CHANGES.md b/actix-rt/CHANGES.md index 1ad3dd0f..b651ac7a 100644 --- a/actix-rt/CHANGES.md +++ b/actix-rt/CHANGES.md @@ -2,6 +2,8 @@ ## Unreleased +- Minimum supported Rust version (MSRV) is now 1.76. + ## 2.11.0 - Implement `ActixStream` for `tokio::io::BufReader`. diff --git a/actix-server/CHANGES.md b/actix-server/CHANGES.md index c36cf2ee..729953f0 100644 --- a/actix-server/CHANGES.md +++ b/actix-server/CHANGES.md @@ -2,6 +2,8 @@ ## Unreleased +- Minimum supported Rust version (MSRV) is now 1.76. + ## 2.6.0 - Add `ServerBuilder::shutdown_signal()` method. diff --git a/actix-service/CHANGES.md b/actix-service/CHANGES.md index 64f38dbb..7a31a56f 100644 --- a/actix-service/CHANGES.md +++ b/actix-service/CHANGES.md @@ -2,7 +2,7 @@ ## Unreleased -- Minimum supported Rust version (MSRV) is now 1.75. +- Minimum supported Rust version (MSRV) is now 1.76. ## 2.0.3 diff --git a/actix-tls/CHANGES.md b/actix-tls/CHANGES.md index 85998914..daeb1578 100644 --- a/actix-tls/CHANGES.md +++ b/actix-tls/CHANGES.md @@ -2,7 +2,7 @@ ## Unreleased -- Minimum supported Rust version (MSRV) is now 1.75. +- Minimum supported Rust version (MSRV) is now 1.76. ## 3.4.0 diff --git a/actix-tls/src/connect/resolve.rs b/actix-tls/src/connect/resolve.rs index 33e2c676..9270ba35 100644 --- a/actix-tls/src/connect/resolve.rs +++ b/actix-tls/src/connect/resolve.rs @@ -13,11 +13,11 @@ use futures_core::future::LocalBoxFuture; /// use actix_tls::connect::{Resolve, Resolver}; /// use futures_util::future::LocalBoxFuture; /// -/// // use trust-dns async tokio resolver -/// use trust_dns_resolver::TokioAsyncResolver; +/// // use Hickory DNS tokio resolver +/// use hickory_resolver::TokioResolver; /// /// struct MyResolver { -/// trust_dns: TokioAsyncResolver, +/// hickory_dns: TokioResolver, /// }; /// /// // impl Resolve trait and convert given host address str and port to SocketAddr. @@ -29,7 +29,7 @@ use futures_core::future::LocalBoxFuture; /// ) -> LocalBoxFuture<'a, Result, Box>> { /// Box::pin(async move { /// let res = self -/// .trust_dns +/// .hickory_dns /// .lookup_ip(host) /// .await? /// .iter() @@ -41,7 +41,7 @@ use futures_core::future::LocalBoxFuture; /// } /// /// let my_resolver = MyResolver { -/// trust_dns: TokioAsyncResolver::tokio_from_system_conf().unwrap(), +/// hickory_dns: TokioResolver::builder_tokio().unwrap().build(), /// }; /// /// // wrap custom resolver diff --git a/actix-tls/tests/test_resolvers.rs b/actix-tls/tests/test_resolvers.rs index d2db64fe..7a5beafd 100644 --- a/actix-tls/tests/test_resolvers.rs +++ b/actix-tls/tests/test_resolvers.rs @@ -55,7 +55,7 @@ async fn custom_resolver_connect() { let srv = TestServer::start(|| fn_service(|_io: TcpStream| async { Ok::<_, io::Error>(()) })); struct MyResolver { - trust_dns: TokioResolver, + hickory_dns: TokioResolver, } impl Resolve for MyResolver { @@ -66,7 +66,7 @@ async fn custom_resolver_connect() { ) -> LocalBoxFuture<'a, Result, Box>> { Box::pin(async move { let res = self - .trust_dns + .hickory_dns .lookup_ip(host) .await? .iter() @@ -78,7 +78,7 @@ async fn custom_resolver_connect() { } let resolver = MyResolver { - trust_dns: TokioResolver::builder_tokio().unwrap().build(), + hickory_dns: TokioResolver::builder_tokio().unwrap().build(), }; let factory = connector_factory(Resolver::custom(resolver)); diff --git a/actix-tracing/CHANGES.md b/actix-tracing/CHANGES.md index c3fee521..8f59bb50 100644 --- a/actix-tracing/CHANGES.md +++ b/actix-tracing/CHANGES.md @@ -2,7 +2,7 @@ ## Unreleased -- Minimum supported Rust version (MSRV) is now 1.75. +- Minimum supported Rust version (MSRV) is now 1.76. ## 0.1.0 diff --git a/actix-utils/CHANGES.md b/actix-utils/CHANGES.md index 8fda9606..9cd71ef3 100644 --- a/actix-utils/CHANGES.md +++ b/actix-utils/CHANGES.md @@ -2,7 +2,7 @@ ## Unreleased -- Minimum supported Rust version (MSRV) is now 1.75. +- Minimum supported Rust version (MSRV) is now 1.76. ## 3.0.1 diff --git a/bytestring/CHANGES.md b/bytestring/CHANGES.md index 392a7132..d82400d7 100644 --- a/bytestring/CHANGES.md +++ b/bytestring/CHANGES.md @@ -2,6 +2,8 @@ ## Unreleased +- Minimum supported Rust version (MSRV) is now 1.76. + ## 1.5.0 - Migrate `serde` dependency to `serde_core`. diff --git a/local-channel/CHANGES.md b/local-channel/CHANGES.md index 91f1f54d..fbd52108 100644 --- a/local-channel/CHANGES.md +++ b/local-channel/CHANGES.md @@ -2,7 +2,7 @@ ## Unreleased -- Minimum supported Rust version (MSRV) is now 1.75. +- Minimum supported Rust version (MSRV) is now 1.76. ## 0.1.5 diff --git a/local-waker/CHANGES.md b/local-waker/CHANGES.md index e321d27b..72431a08 100644 --- a/local-waker/CHANGES.md +++ b/local-waker/CHANGES.md @@ -2,7 +2,7 @@ ## Unreleased -- Minimum supported Rust version (MSRV) is now 1.75. +- Minimum supported Rust version (MSRV) is now 1.76. ## 0.1.4 From 25f3affe315a4e33aeb1c23a48567ce124110dd2 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 23 Sep 2025 11:20:31 +0100 Subject: [PATCH 347/410] build(deps): bump taiki-e/install-action from 2.61.5 to 2.62.2 (#735) Bumps [taiki-e/install-action](https://github.com/taiki-e/install-action) from 2.61.5 to 2.62.2. - [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.61.5...v2.62.2) --- updated-dependencies: - dependency-name: taiki-e/install-action dependency-version: 2.62.2 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 fae81720..b1708d96 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.61.5 + uses: taiki-e/install-action@v2.62.4 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.61.5 + uses: taiki-e/install-action@v2.62.4 with: tool: cargo-hack,cargo-minimal-versions diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 1ef1073d..2ba54b87 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.61.5 + uses: taiki-e/install-action@v2.62.4 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.61.5 + uses: taiki-e/install-action@v2.62.4 with: tool: just diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml index b037dce6..f8a2a4b4 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.61.5 + uses: taiki-e/install-action@v2.62.4 with: tool: cargo-llvm-cov diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index fb7e1b02..a6e3b491 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.61.5 + uses: taiki-e/install-action@v2.62.4 with: tool: just From 58377407cb98718f1539ac642791f1a01242c5c9 Mon Sep 17 00:00:00 2001 From: Yuki Okushi Date: Mon, 29 Sep 2025 19:47:53 +0900 Subject: [PATCH 348/410] fix: rename doc_auto_cfg feature (#737) --- actix-tls/src/lib.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/actix-tls/src/lib.rs b/actix-tls/src/lib.rs index 38d1bb05..5a0406c2 100644 --- a/actix-tls/src/lib.rs +++ b/actix-tls/src/lib.rs @@ -2,7 +2,7 @@ #![doc(html_logo_url = "https://actix.rs/img/logo.png")] #![doc(html_favicon_url = "https://actix.rs/favicon.ico")] -#![cfg_attr(docsrs, feature(doc_auto_cfg))] +#![cfg_attr(docsrs, feature(doc_cfg))] #[cfg(feature = "openssl")] #[allow(unused_extern_crates)] From a67b4747b2d23c28093ec06d1db2a1535c55a321 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 14 Oct 2025 21:12:10 +0900 Subject: [PATCH 349/410] build(deps): bump memchr from 2.7.5 to 2.7.6 (#742) Bumps [memchr](https://github.com/BurntSushi/memchr) from 2.7.5 to 2.7.6. - [Commits](https://github.com/BurntSushi/memchr/compare/2.7.5...2.7.6) --- updated-dependencies: - dependency-name: memchr dependency-version: 2.7.6 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 14809121..11336a9f 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1203,9 +1203,9 @@ dependencies = [ [[package]] name = "memchr" -version = "2.7.5" +version = "2.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32a282da65faaf38286cf3be983213fcf1d2e2a58700e808f83f4ea9a4804bc0" +checksum = "f52b00d39961fc5b2736ea853c9cc86238e165017a493d1d5c8eac6bdc4cc273" [[package]] name = "minimal-lexical" From bb857f2192813c7c6243de16af19cf9a1e82a377 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 14 Oct 2025 21:12:27 +0900 Subject: [PATCH 350/410] build(deps): bump taiki-e/install-action from 2.62.4 to 2.62.28 (#748) Bumps [taiki-e/install-action](https://github.com/taiki-e/install-action) from 2.62.4 to 2.62.28. - [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.62.4...v2.62.28) --- updated-dependencies: - dependency-name: taiki-e/install-action dependency-version: 2.62.28 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/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 b1708d96..e5d71c04 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.62.4 + uses: taiki-e/install-action@v2.62.28 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.62.4 + uses: taiki-e/install-action@v2.62.28 with: tool: cargo-hack,cargo-minimal-versions diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 2ba54b87..66170dc5 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.62.4 + uses: taiki-e/install-action@v2.62.28 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.62.4 + uses: taiki-e/install-action@v2.62.28 with: tool: just diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml index f8a2a4b4..631c7c03 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.62.4 + uses: taiki-e/install-action@v2.62.28 with: tool: cargo-llvm-cov diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index a6e3b491..f164ea4d 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.62.4 + uses: taiki-e/install-action@v2.62.28 with: tool: just From 0427eb637377931a016be93dd14db90be7a4abc4 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 14 Oct 2025 12:12:49 +0000 Subject: [PATCH 351/410] build(deps): bump socket2 from 0.6.0 to 0.6.1 (#747) Bumps [socket2](https://github.com/rust-lang/socket2) from 0.6.0 to 0.6.1. - [Release notes](https://github.com/rust-lang/socket2/releases) - [Changelog](https://github.com/rust-lang/socket2/blob/master/CHANGELOG.md) - [Commits](https://github.com/rust-lang/socket2/compare/v0.6.0...v0.6.1) --- updated-dependencies: - dependency-name: socket2 dependency-version: 0.6.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> --- Cargo.lock | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 11336a9f..eb4ede80 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -55,7 +55,7 @@ dependencies = [ "futures-util", "mio", "pretty_env_logger", - "socket2 0.6.0", + "socket2 0.6.1", "static_assertions", "tokio", "tokio-uring", @@ -2069,12 +2069,12 @@ dependencies = [ [[package]] name = "socket2" -version = "0.6.0" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "233504af464074f9d066d7b5416c5f9b894a5862a6506e306f7b816cdd6f1807" +checksum = "17129e116933cf371d018bb80ae557e889637989d8638274fb25622827b03881" dependencies = [ "libc", - "windows-sys 0.59.0", + "windows-sys 0.60.2", ] [[package]] @@ -2275,7 +2275,7 @@ dependencies = [ "pin-project-lite", "signal-hook-registry", "slab", - "socket2 0.6.0", + "socket2 0.6.1", "tokio-macros", "windows-sys 0.59.0", ] From f9f2806206a13adb6c879bd98c6a8720a0dce785 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 14 Oct 2025 21:13:18 +0900 Subject: [PATCH 352/410] build(deps): bump actions-rust-lang/setup-rust-toolchain (#745) Bumps [actions-rust-lang/setup-rust-toolchain](https://github.com/actions-rust-lang/setup-rust-toolchain) from 1.15.0 to 1.15.2. - [Release notes](https://github.com/actions-rust-lang/setup-rust-toolchain/releases) - [Changelog](https://github.com/actions-rust-lang/setup-rust-toolchain/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions-rust-lang/setup-rust-toolchain/compare/v1.15.0...v1.15.2) --- updated-dependencies: - dependency-name: actions-rust-lang/setup-rust-toolchain dependency-version: 1.15.2 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/ci-post-merge.yml | 4 ++-- .github/workflows/ci.yml | 4 ++-- .github/workflows/coverage.yml | 2 +- .github/workflows/lint.yml | 6 +++--- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/.github/workflows/ci-post-merge.yml b/.github/workflows/ci-post-merge.yml index e5d71c04..ed080ba4 100644 --- a/.github/workflows/ci-post-merge.yml +++ b/.github/workflows/ci-post-merge.yml @@ -59,7 +59,7 @@ jobs: echo "RUSTFLAGS=-C target-feature=+crt-static" >> $GITHUB_ENV - name: Install Rust (${{ matrix.version }}) - uses: actions-rust-lang/setup-rust-toolchain@v1.15.0 + uses: actions-rust-lang/setup-rust-toolchain@v1.15.2 with: toolchain: ${{ matrix.version }} @@ -116,7 +116,7 @@ jobs: - uses: actions/checkout@v5 - name: Install Rust (nightly) - uses: actions-rust-lang/setup-rust-toolchain@v1.15.0 + uses: actions-rust-lang/setup-rust-toolchain@v1.15.2 with: toolchain: nightly diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 66170dc5..4b5eb5d7 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -68,7 +68,7 @@ jobs: echo "RUSTFLAGS=-C target-feature=+crt-static" >> $GITHUB_ENV - name: Install Rust (${{ matrix.version.name }}) - uses: actions-rust-lang/setup-rust-toolchain@v1.15.0 + uses: actions-rust-lang/setup-rust-toolchain@v1.15.2 with: toolchain: ${{ matrix.version.version }} @@ -120,7 +120,7 @@ jobs: - uses: actions/checkout@v5 - name: Install Rust (nightly) - uses: actions-rust-lang/setup-rust-toolchain@v1.15.0 + uses: actions-rust-lang/setup-rust-toolchain@v1.15.2 with: toolchain: nightly diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml index 631c7c03..5b4d7cf9 100644 --- a/.github/workflows/coverage.yml +++ b/.github/workflows/coverage.yml @@ -18,7 +18,7 @@ jobs: - uses: actions/checkout@v5 - name: Install Rust - uses: actions-rust-lang/setup-rust-toolchain@v1.15.0 + uses: actions-rust-lang/setup-rust-toolchain@v1.15.2 with: components: llvm-tools-preview diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index f164ea4d..ecfdafb1 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -18,7 +18,7 @@ jobs: steps: - uses: actions/checkout@v5 - - uses: actions-rust-lang/setup-rust-toolchain@v1.15.0 + - uses: actions-rust-lang/setup-rust-toolchain@v1.15.2 with: toolchain: nightly components: rustfmt @@ -35,7 +35,7 @@ jobs: steps: - uses: actions/checkout@v5 - - uses: actions-rust-lang/setup-rust-toolchain@v1.15.0 + - uses: actions-rust-lang/setup-rust-toolchain@v1.15.2 with: { components: clippy } - uses: giraffate/clippy-action@v1.0.1 @@ -51,7 +51,7 @@ jobs: - uses: actions/checkout@v5 - name: Install Rust (${{ vars.RUST_VERSION_EXTERNAL_TYPES }}) - uses: actions-rust-lang/setup-rust-toolchain@v1.15.0 + uses: actions-rust-lang/setup-rust-toolchain@v1.15.2 with: toolchain: ${{ vars.RUST_VERSION_EXTERNAL_TYPES }} From 2b55cbd0f9e8d416d2ed02762dcb9ef2363b1d35 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 14 Oct 2025 21:13:47 +0900 Subject: [PATCH 353/410] build(deps): bump quote from 1.0.40 to 1.0.41 (#741) Bumps [quote](https://github.com/dtolnay/quote) from 1.0.40 to 1.0.41. - [Release notes](https://github.com/dtolnay/quote/releases) - [Commits](https://github.com/dtolnay/quote/compare/1.0.40...1.0.41) --- updated-dependencies: - dependency-name: quote dependency-version: 1.0.41 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 eb4ede80..eac51f0c 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1539,9 +1539,9 @@ dependencies = [ [[package]] name = "quote" -version = "1.0.40" +version = "1.0.41" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1885c039570dc00dcb4ff087a89e185fd56bae234ddc7f056a945bf36467248d" +checksum = "ce25767e7b499d1b604768e7cde645d14cc8584231ea6b295e9c9eb22c02e1d1" dependencies = [ "proc-macro2", ] From fdda66d81345a0931aeead40d28d930a8220ab8a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 14 Oct 2025 12:14:07 +0000 Subject: [PATCH 354/410] build(deps): bump taiki-e/cache-cargo-install-action from 2.3.0 to 2.3.1 (#738) Bumps [taiki-e/cache-cargo-install-action](https://github.com/taiki-e/cache-cargo-install-action) from 2.3.0 to 2.3.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/v2.3.0...v2.3.1) --- updated-dependencies: - dependency-name: taiki-e/cache-cargo-install-action dependency-version: 2.3.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 ecfdafb1..2797887b 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@v2.3.0 + uses: taiki-e/cache-cargo-install-action@v2.3.1 with: tool: cargo-check-external-types From 53a8fb025100a564637bcd4d75dad491319195ad Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 22 Oct 2025 19:59:30 +0900 Subject: [PATCH 355/410] build(deps): bump taiki-e/install-action from 2.62.28 to 2.62.33 (#749) Bumps [taiki-e/install-action](https://github.com/taiki-e/install-action) from 2.62.28 to 2.62.33. - [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.62.28...v2.62.33) --- updated-dependencies: - dependency-name: taiki-e/install-action dependency-version: 2.62.33 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/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 ed080ba4..36151652 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.62.28 + uses: taiki-e/install-action@v2.62.33 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.62.28 + uses: taiki-e/install-action@v2.62.33 with: tool: cargo-hack,cargo-minimal-versions diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 4b5eb5d7..6a9ac512 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.62.28 + uses: taiki-e/install-action@v2.62.33 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.62.28 + uses: taiki-e/install-action@v2.62.33 with: tool: just diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml index 5b4d7cf9..160e57ae 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.62.28 + uses: taiki-e/install-action@v2.62.33 with: tool: cargo-llvm-cov diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 2797887b..a627bf59 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.62.28 + uses: taiki-e/install-action@v2.62.33 with: tool: just From 1642b47c9f9ebd94b872bbce1f4bb95107865516 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 24 Oct 2025 20:56:12 +0900 Subject: [PATCH 356/410] build(deps): bump syn from 2.0.106 to 2.0.107 (#750) Bumps [syn](https://github.com/dtolnay/syn) from 2.0.106 to 2.0.107. - [Release notes](https://github.com/dtolnay/syn/releases) - [Commits](https://github.com/dtolnay/syn/compare/2.0.106...2.0.107) --- updated-dependencies: - dependency-name: syn dependency-version: 2.0.107 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 eac51f0c..ef18b783 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2103,9 +2103,9 @@ checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" [[package]] name = "syn" -version = "2.0.106" +version = "2.0.107" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ede7c438028d4436d71104916910f5bb611972c5cfd7f89b8300a8186e6fada6" +checksum = "2a26dbd934e5451d21ef060c018dae56fc073894c5a7896f882928a76e6d081b" dependencies = [ "proc-macro2", "quote", From 3c49d311cb4e9bc9ccc3970ba3c7e53cc43ada02 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 24 Oct 2025 20:56:32 +0900 Subject: [PATCH 357/410] build(deps): bump mio from 1.0.4 to 1.1.0 (#751) Bumps [mio](https://github.com/tokio-rs/mio) from 1.0.4 to 1.1.0. - [Release notes](https://github.com/tokio-rs/mio/releases) - [Changelog](https://github.com/tokio-rs/mio/blob/master/CHANGELOG.md) - [Commits](https://github.com/tokio-rs/mio/compare/v1.0.4...v1.1.0) --- updated-dependencies: - dependency-name: mio dependency-version: 1.1.0 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> --- Cargo.lock | 37 ++++++++++++++++++++++++++----------- 1 file changed, 26 insertions(+), 11 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index ef18b783..c61ce0dc 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1224,14 +1224,14 @@ dependencies = [ [[package]] name = "mio" -version = "1.0.4" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78bed444cc8a2160f01cbcf811ef18cac863ad68ae8ca62092e8db51d51c761c" +checksum = "69d83b0086dc8ecf3ce9ae2874b2d1290252e2a30720bea58a5c6639b0092873" dependencies = [ "libc", "log", "wasi 0.11.1+wasi-snapshot-preview1", - "windows-sys 0.59.0", + "windows-sys 0.61.2", ] [[package]] @@ -2790,7 +2790,7 @@ dependencies = [ "windows-collections", "windows-core", "windows-future", - "windows-link", + "windows-link 0.1.3", "windows-numerics", ] @@ -2811,7 +2811,7 @@ checksum = "c0fdd3ddb90610c7638aa2b3a3ab2904fb9e5cdbecc643ddb3647212781c4ae3" dependencies = [ "windows-implement", "windows-interface", - "windows-link", + "windows-link 0.1.3", "windows-result", "windows-strings", ] @@ -2823,7 +2823,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fc6a41e98427b19fe4b73c550f060b59fa592d7d686537eebf9385621bfbad8e" dependencies = [ "windows-core", - "windows-link", + "windows-link 0.1.3", "windows-threading", ] @@ -2855,6 +2855,12 @@ version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5e6ad25900d524eaabdbbb96d20b4311e1e7ae1699af4fb28c17ae66c80d798a" +[[package]] +name = "windows-link" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5" + [[package]] name = "windows-numerics" version = "0.2.0" @@ -2862,7 +2868,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9150af68066c4c5c07ddc0ce30421554771e528bde427614c61038bc2c92c2b1" dependencies = [ "windows-core", - "windows-link", + "windows-link 0.1.3", ] [[package]] @@ -2871,7 +2877,7 @@ version = "0.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "56f42bd332cc6c8eac5af113fc0c1fd6a8fd2aa08a0119358686e5160d0586c6" dependencies = [ - "windows-link", + "windows-link 0.1.3", ] [[package]] @@ -2880,7 +2886,7 @@ version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "56e6c93f3a0c3b36176cb1327a4958a0353d5d166c2a35cb268ace15e91d3b57" dependencies = [ - "windows-link", + "windows-link 0.1.3", ] [[package]] @@ -2919,6 +2925,15 @@ dependencies = [ "windows-targets 0.53.3", ] +[[package]] +name = "windows-sys" +version = "0.61.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae137229bcbd6cdf0f7b80a31df61766145077ddf49416a728b02cb3921ff3fc" +dependencies = [ + "windows-link 0.2.1", +] + [[package]] name = "windows-targets" version = "0.48.5" @@ -2956,7 +2971,7 @@ version = "0.53.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d5fe6031c4041849d7c496a8ded650796e7b6ecc19df1a431c1a363342e5dc91" dependencies = [ - "windows-link", + "windows-link 0.1.3", "windows_aarch64_gnullvm 0.53.0", "windows_aarch64_msvc 0.53.0", "windows_i686_gnu 0.53.0", @@ -2973,7 +2988,7 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b66463ad2e0ea3bbf808b7f1d371311c80e115c0b71d60efc142cafbcfb057a6" dependencies = [ - "windows-link", + "windows-link 0.1.3", ] [[package]] From da0aa9b061bf932e2fb5056f74ee706a2fbbeec3 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 24 Oct 2025 11:57:34 +0000 Subject: [PATCH 358/410] build(deps): bump bitflags from 2.9.4 to 2.10.0 (#753) Bumps [bitflags](https://github.com/bitflags/bitflags) from 2.9.4 to 2.10.0. - [Release notes](https://github.com/bitflags/bitflags/releases) - [Changelog](https://github.com/bitflags/bitflags/blob/main/CHANGELOG.md) - [Commits](https://github.com/bitflags/bitflags/compare/2.9.4...2.10.0) --- updated-dependencies: - dependency-name: bitflags dependency-version: 2.10.0 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> --- Cargo.lock | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index c61ce0dc..d9efaa41 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -6,7 +6,7 @@ version = 3 name = "actix-codec" version = "0.5.2" dependencies = [ - "bitflags 2.9.4", + "bitflags 2.10.0", "bytes", "criterion", "futures-core", @@ -282,7 +282,7 @@ version = "0.69.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "271383c67ccabffb7381723dea0672a673f292304fcb45c01cc648c7a8d58088" dependencies = [ - "bitflags 2.9.4", + "bitflags 2.10.0", "cexpr", "clang-sys", "itertools 0.12.1", @@ -307,9 +307,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bitflags" -version = "2.9.4" +version = "2.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2261d10cca569e4643e526d8dc2e62e433cc8aba21ab764233731f8d369bf394" +checksum = "812e12b5285cc515a9c72a5c1d3b6d46a19dac5acfef5265968c166106e31dd3" [[package]] name = "bumpalo" @@ -1015,7 +1015,7 @@ version = "0.7.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "046fa2d4d00aea763528b4950358d0ead425372445dc8ff86312b3c69ff7727b" dependencies = [ - "bitflags 2.9.4", + "bitflags 2.10.0", "cfg-if", "libc", ] @@ -1335,7 +1335,7 @@ version = "0.10.73" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8505734d46c8ab1e19a1dce3aef597ad87dcb4c37e7188231769bd6bd51cebf8" dependencies = [ - "bitflags 2.9.4", + "bitflags 2.10.0", "cfg-if", "foreign-types", "libc", @@ -1620,7 +1620,7 @@ version = "0.5.17" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5407465600fb0548f1442edf71dd20683c6ed326200ace4b1ef0763521bb3b77" dependencies = [ - "bitflags 2.9.4", + "bitflags 2.10.0", ] [[package]] @@ -1714,7 +1714,7 @@ version = "0.38.44" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fdb5bc1ae2baa591800df16c9ca78619bf65c0488b41b96ccec5d11220d8c154" dependencies = [ - "bitflags 2.9.4", + "bitflags 2.10.0", "errno", "libc", "linux-raw-sys 0.4.15", @@ -1727,7 +1727,7 @@ version = "1.0.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "11181fbabf243db407ef8df94a6ce0b2f9a733bd8be4ad02b4eda9602296cac8" dependencies = [ - "bitflags 2.9.4", + "bitflags 2.10.0", "errno", "libc", "linux-raw-sys 0.9.4", @@ -1936,7 +1936,7 @@ version = "2.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02" dependencies = [ - "bitflags 2.9.4", + "bitflags 2.10.0", "core-foundation", "core-foundation-sys", "libc", From 9121dd081995cee28b546002bfbcf69dd49f5e79 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 24 Oct 2025 20:58:31 +0900 Subject: [PATCH 359/410] build(deps): bump trybuild from 1.0.111 to 1.0.112 (#752) Bumps [trybuild](https://github.com/dtolnay/trybuild) from 1.0.111 to 1.0.112. - [Release notes](https://github.com/dtolnay/trybuild/releases) - [Commits](https://github.com/dtolnay/trybuild/compare/1.0.111...1.0.112) --- updated-dependencies: - dependency-name: trybuild dependency-version: 1.0.112 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 d9efaa41..03208c84 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2518,9 +2518,9 @@ dependencies = [ [[package]] name = "trybuild" -version = "1.0.111" +version = "1.0.112" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ded9fdb81f30a5708920310bfcd9ea7482ff9cba5f54601f7a19a877d5c2392" +checksum = "4d66678374d835fe847e0dc8348fde2ceb5be4a7ec204437d8367f0d8df266a5" dependencies = [ "glob", "serde", From 4bdf1c3702b44cb7adbe7f97e1441366660c53c6 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 25 Oct 2025 17:16:07 +0900 Subject: [PATCH 360/410] build(deps): bump tokio from 1.47.1 to 1.48.0 (#754) Bumps [tokio](https://github.com/tokio-rs/tokio) from 1.47.1 to 1.48.0. - [Release notes](https://github.com/tokio-rs/tokio/releases) - [Commits](https://github.com/tokio-rs/tokio/compare/tokio-1.47.1...tokio-1.48.0) --- updated-dependencies: - dependency-name: tokio dependency-version: 1.48.0 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> --- Cargo.lock | 86 ++++-------------------------------------------------- 1 file changed, 6 insertions(+), 80 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 03208c84..4779c594 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -139,21 +139,6 @@ dependencies = [ "static_assertions", ] -[[package]] -name = "addr2line" -version = "0.24.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dfbe277e56a376000877090da837660b4427aad530e3028d44e0bffe4f89a1c1" -dependencies = [ - "gimli", -] - -[[package]] -name = "adler2" -version = "2.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "320119579fcad9c21884f5c4861d16174d0e06250625266f50fe6898340abefa" - [[package]] name = "ahash" version = "0.8.12" @@ -249,21 +234,6 @@ dependencies = [ "fs_extra", ] -[[package]] -name = "backtrace" -version = "0.3.75" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6806a6321ec58106fea15becdad98371e28d92ccbc7c8f1b3b6dd724fe8f1002" -dependencies = [ - "addr2line", - "cfg-if", - "libc", - "miniz_oxide", - "object", - "rustc-demangle", - "windows-targets 0.52.6", -] - [[package]] name = "base64" version = "0.21.7" @@ -753,12 +723,6 @@ dependencies = [ "wasi 0.14.3+wasi-0.2.4", ] -[[package]] -name = "gimli" -version = "0.31.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f" - [[package]] name = "glob" version = "0.3.3" @@ -1009,17 +973,6 @@ dependencies = [ "libc", ] -[[package]] -name = "io-uring" -version = "0.7.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "046fa2d4d00aea763528b4950358d0ead425372445dc8ff86312b3c69ff7727b" -dependencies = [ - "bitflags 2.10.0", - "cfg-if", - "libc", -] - [[package]] name = "ipconfig" version = "0.3.2" @@ -1213,15 +1166,6 @@ version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" -[[package]] -name = "miniz_oxide" -version = "0.8.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fa76a2c86f704bdb222d66965fb3d63269ce38518b83cb0575fca855ebb6316" -dependencies = [ - "adler2", -] - [[package]] name = "mio" version = "1.1.0" @@ -1304,15 +1248,6 @@ dependencies = [ "autocfg", ] -[[package]] -name = "object" -version = "0.36.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62948e14d923ea95ea2c7c86c71013138b66525b86bdc08d2dcc262bdb497b87" -dependencies = [ - "memchr", -] - [[package]] name = "once_cell" version = "1.21.3" @@ -1687,12 +1622,6 @@ dependencies = [ "windows-sys 0.52.0", ] -[[package]] -name = "rustc-demangle" -version = "0.1.26" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56f7d92ca342cea22a06f2121d944b4fd82af56988c270852495420f961d4ace" - [[package]] name = "rustc-hash" version = "1.1.0" @@ -2262,29 +2191,26 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.47.1" +version = "1.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89e49afdadebb872d3145a5638b59eb0691ea23e46ca484037cfab3b76b95038" +checksum = "ff360e02eab121e0bc37a2d3b4d4dc622e6eda3a8e5253d5435ecf5bd4c68408" dependencies = [ - "backtrace", "bytes", - "io-uring 0.7.10", "libc", "mio", "parking_lot", "pin-project-lite", "signal-hook-registry", - "slab", "socket2 0.6.1", "tokio-macros", - "windows-sys 0.59.0", + "windows-sys 0.61.2", ] [[package]] name = "tokio-macros" -version = "2.5.0" +version = "2.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e06d43f1345a3bcd39f6a56dbb7dcab2ba47e68e8ac134855e7e2bdbaf8cab8" +checksum = "af407857209536a95c8e56f8231ef2c2e2aff839b22e07a1ffcbc617e9db9fa5" dependencies = [ "proc-macro2", "quote", @@ -2385,7 +2311,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "748482e3e13584a34664a710168ad5068e8cb1d968aa4ffa887e83ca6dd27967" dependencies = [ "futures-util", - "io-uring 0.6.4", + "io-uring", "libc", "slab", "socket2 0.4.10", From 0b09ccf30ddc519172e8f41cbbb7e71d1d1694c7 Mon Sep 17 00:00:00 2001 From: kpcyrd Date: Mon, 27 Oct 2025 23:09:58 +0100 Subject: [PATCH 361/410] Update to rustls-native-certs 0.8 (#743) * Update to rustls-native-certs 0.8 * Add rustls-native-certs 0.8 change to rustls_0_22.rs * Update rustls-native-certs versions in docs --------- Co-authored-by: Yuki Okushi --- Cargo.lock | 42 +++++++++++++++++++++------- actix-tls/Cargo.toml | 6 ++-- actix-tls/src/connect/rustls_0_22.rs | 9 ++++-- actix-tls/src/connect/rustls_0_23.rs | 9 ++++-- 4 files changed, 49 insertions(+), 17 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 4779c594..9dc6a6a1 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -98,7 +98,7 @@ dependencies = [ "rcgen", "rustls 0.21.12", "rustls-native-certs 0.6.3", - "rustls-native-certs 0.7.3", + "rustls-native-certs 0.8.1", "rustls-pemfile 2.2.0", "rustls-pki-types", "rustls-webpki 0.101.7", @@ -418,6 +418,16 @@ dependencies = [ "libc", ] +[[package]] +name = "core-foundation" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b2a6cd9ae233e7f62ba4e9353e81a88df7fc8a5987b8d445b4d90c879bd156f6" +dependencies = [ + "core-foundation-sys", + "libc", +] + [[package]] name = "core-foundation-sys" version = "0.8.7" @@ -1209,7 +1219,7 @@ dependencies = [ "openssl-probe", "openssl-sys", "schannel", - "security-framework", + "security-framework 2.11.1", "security-framework-sys", "tempfile", ] @@ -1725,20 +1735,19 @@ dependencies = [ "openssl-probe", "rustls-pemfile 1.0.4", "schannel", - "security-framework", + "security-framework 2.11.1", ] [[package]] name = "rustls-native-certs" -version = "0.7.3" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5bfb394eeed242e909609f56089eecfe5fda225042e8b171791b9c95f5931e5" +checksum = "7fcff2dd52b58a8d98a70243663a0d234c4e2b79235637849d15913394a247d3" dependencies = [ "openssl-probe", - "rustls-pemfile 2.2.0", "rustls-pki-types", "schannel", - "security-framework", + "security-framework 3.5.1", ] [[package]] @@ -1866,7 +1875,20 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02" dependencies = [ "bitflags 2.10.0", - "core-foundation", + "core-foundation 0.9.4", + "core-foundation-sys", + "libc", + "security-framework-sys", +] + +[[package]] +name = "security-framework" +version = "3.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b3297343eaf830f66ede390ea39da1d462b6b0c1b000f420d0a83f898bbbe6ef" +dependencies = [ + "bitflags 2.10.0", + "core-foundation 0.10.1", "core-foundation-sys", "libc", "security-framework-sys", @@ -1874,9 +1896,9 @@ dependencies = [ [[package]] name = "security-framework-sys" -version = "2.14.0" +version = "2.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49db231d56a190491cb4aeda9527f1ad45345af50b0851622a7adb8c03b01c32" +checksum = "cc1f0cbffaac4852523ce30d8bd3c5cdc873501d96ff467ca09b6767bb8cd5c0" dependencies = [ "core-foundation-sys", "libc", diff --git a/actix-tls/Cargo.toml b/actix-tls/Cargo.toml index b01281e9..fa818fa6 100644 --- a/actix-tls/Cargo.toml +++ b/actix-tls/Cargo.toml @@ -51,12 +51,12 @@ rustls-0_21-native-roots = ["tokio-rustls-024", "dep:rustls-native-certs-06"] # use rustls v0.22 impls rustls-0_22 = ["dep:tokio-rustls-025", "dep:rustls-pki-types-1"] rustls-0_22-webpki-roots = ["rustls-0_22", "dep:webpki-roots-026"] -rustls-0_22-native-roots = ["rustls-0_22", "dep:rustls-native-certs-07"] +rustls-0_22-native-roots = ["rustls-0_22", "dep:rustls-native-certs-08"] # use rustls v0.23 impls rustls-0_23 = ["dep:tokio-rustls-026", "dep:rustls-pki-types-1"] rustls-0_23-webpki-roots = ["rustls-0_23", "dep:webpki-roots-026"] -rustls-0_23-native-roots = ["rustls-0_23", "dep:rustls-native-certs-07"] +rustls-0_23-native-roots = ["rustls-0_23", "dep:rustls-native-certs-08"] # use native-tls impls native-tls = ["dep:tokio-native-tls"] @@ -105,7 +105,7 @@ webpki-roots-026 = { package = "webpki-roots", version = "0.26", optional = true # native root certificates for rustls impls rustls-native-certs-06 = { package = "rustls-native-certs", version = "0.6", optional = true } -rustls-native-certs-07 = { package = "rustls-native-certs", version = "0.7", optional = true } +rustls-native-certs-08 = { package = "rustls-native-certs", version = "0.8", optional = true } # native-tls tokio-native-tls = { version = "0.3", optional = true } diff --git a/actix-tls/src/connect/rustls_0_22.rs b/actix-tls/src/connect/rustls_0_22.rs index 7db1c7d8..de6c28e4 100644 --- a/actix-tls/src/connect/rustls_0_22.rs +++ b/actix-tls/src/connect/rustls_0_22.rs @@ -35,12 +35,17 @@ pub mod reexports { /// /// See [`rustls_native_certs::load_native_certs()`] for more info on behavior and errors. /// -/// [`rustls_native_certs::load_native_certs()`]: rustls_native_certs_07::load_native_certs() +/// [`rustls_native_certs::load_native_certs()`]: rustls_native_certs_08::load_native_certs() #[cfg(feature = "rustls-0_22-native-roots")] pub fn native_roots_cert_store() -> io::Result { let mut root_certs = tokio_rustls::rustls::RootCertStore::empty(); - for cert in rustls_native_certs_07::load_native_certs()? { + let certs = rustls_native_certs_08::load_native_certs(); + if let Some(err) = certs.errors.into_iter().next() { + return Err(io::Error::other(err)); + } + + for cert in certs.certs { root_certs.add(cert).unwrap(); } diff --git a/actix-tls/src/connect/rustls_0_23.rs b/actix-tls/src/connect/rustls_0_23.rs index 4ea9aba3..da776468 100644 --- a/actix-tls/src/connect/rustls_0_23.rs +++ b/actix-tls/src/connect/rustls_0_23.rs @@ -35,12 +35,17 @@ pub mod reexports { /// /// See [`rustls_native_certs::load_native_certs()`] for more info on behavior and errors. /// -/// [`rustls_native_certs::load_native_certs()`]: rustls_native_certs_07::load_native_certs() +/// [`rustls_native_certs::load_native_certs()`]: rustls_native_certs_08::load_native_certs() #[cfg(feature = "rustls-0_23-native-roots")] pub fn native_roots_cert_store() -> io::Result { let mut root_certs = tokio_rustls::rustls::RootCertStore::empty(); - for cert in rustls_native_certs_07::load_native_certs()? { + let certs = rustls_native_certs_08::load_native_certs(); + if let Some(err) = certs.errors.into_iter().next() { + return Err(io::Error::other(err)); + } + + for cert in certs.certs { root_certs.add(cert).unwrap(); } From 2d4220ab06d48d26d5eeb3c46e8851bae02a6b95 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 28 Oct 2025 07:10:28 +0900 Subject: [PATCH 362/410] build(deps): bump taiki-e/install-action from 2.62.33 to 2.62.39 (#755) Bumps [taiki-e/install-action](https://github.com/taiki-e/install-action) from 2.62.33 to 2.62.39. - [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.62.33...v2.62.39) --- updated-dependencies: - dependency-name: taiki-e/install-action dependency-version: 2.62.39 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/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 36151652..3f55b6ff 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.62.33 + uses: taiki-e/install-action@v2.62.39 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.62.33 + uses: taiki-e/install-action@v2.62.39 with: tool: cargo-hack,cargo-minimal-versions diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 6a9ac512..55336873 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.62.33 + uses: taiki-e/install-action@v2.62.39 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.62.33 + uses: taiki-e/install-action@v2.62.39 with: tool: just diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml index 160e57ae..2ca5dfb3 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.62.33 + uses: taiki-e/install-action@v2.62.39 with: tool: cargo-llvm-cov diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index a627bf59..8053c634 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.62.33 + uses: taiki-e/install-action@v2.62.39 with: tool: just From f5f7263fe90eec54f640397b476a2686e4629e2d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 27 Oct 2025 22:10:44 +0000 Subject: [PATCH 363/410] build(deps): bump syn from 2.0.107 to 2.0.108 (#756) Bumps [syn](https://github.com/dtolnay/syn) from 2.0.107 to 2.0.108. - [Release notes](https://github.com/dtolnay/syn/releases) - [Commits](https://github.com/dtolnay/syn/compare/2.0.107...2.0.108) --- updated-dependencies: - dependency-name: syn dependency-version: 2.0.108 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 9dc6a6a1..9a1541f7 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2054,9 +2054,9 @@ checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" [[package]] name = "syn" -version = "2.0.107" +version = "2.0.108" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a26dbd934e5451d21ef060c018dae56fc073894c5a7896f882928a76e6d081b" +checksum = "da58917d35242480a05c2897064da0a80589a2a0476c9a3f2fdc83b53502e917" dependencies = [ "proc-macro2", "quote", From 4e64583a3ab70615efc0238ffb17bd4687be8a60 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 1 Nov 2025 19:36:05 +0900 Subject: [PATCH 364/410] build(deps): bump proc-macro2 from 1.0.101 to 1.0.103 (#757) Bumps [proc-macro2](https://github.com/dtolnay/proc-macro2) from 1.0.101 to 1.0.103. - [Release notes](https://github.com/dtolnay/proc-macro2/releases) - [Commits](https://github.com/dtolnay/proc-macro2/compare/1.0.101...1.0.103) --- updated-dependencies: - dependency-name: proc-macro2 dependency-version: 1.0.103 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 9a1541f7..4d402f2c 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1475,9 +1475,9 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.101" +version = "1.0.103" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89ae43fd86e4158d6db51ad8e2b80f313af9cc74f5c0e03ccb87de09998732de" +checksum = "5ee95bc4ef87b8d5ba32e8b7714ccc834865276eab0aed5c9958d00ec45f49e8" dependencies = [ "unicode-ident", ] From 124f19b3989abb69917ec803a4b7cdee817ed68d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 1 Nov 2025 19:36:19 +0900 Subject: [PATCH 365/410] build(deps): bump trybuild from 1.0.112 to 1.0.113 (#758) Bumps [trybuild](https://github.com/dtolnay/trybuild) from 1.0.112 to 1.0.113. - [Release notes](https://github.com/dtolnay/trybuild/releases) - [Commits](https://github.com/dtolnay/trybuild/compare/1.0.112...1.0.113) --- updated-dependencies: - dependency-name: trybuild dependency-version: 1.0.113 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 | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 4d402f2c..078fe723 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2082,9 +2082,9 @@ checksum = "7b2093cf4c8eb1e67749a6762251bc9cd836b6fc171623bd0a9d324d37af2417" [[package]] name = "target-triple" -version = "0.1.4" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ac9aa371f599d22256307c24a9d748c041e548cbf599f35d890f9d365361790" +checksum = "591ef38edfb78ca4771ee32cf494cb8771944bee237a9b91fc9c1424ac4b777b" [[package]] name = "tempfile" @@ -2466,9 +2466,9 @@ dependencies = [ [[package]] name = "trybuild" -version = "1.0.112" +version = "1.0.113" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4d66678374d835fe847e0dc8348fde2ceb5be4a7ec204437d8367f0d8df266a5" +checksum = "559b6a626c0815c942ac98d434746138b4f89ddd6a1b8cbb168c6845fb3376c5" dependencies = [ "glob", "serde", From 203b3469896926f4da11723fe7884cd0f8525745 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 4 Nov 2025 10:24:29 +0000 Subject: [PATCH 366/410] build(deps): bump tokio-util from 0.7.16 to 0.7.17 (#760) Bumps [tokio-util](https://github.com/tokio-rs/tokio) from 0.7.16 to 0.7.17. - [Release notes](https://github.com/tokio-rs/tokio/releases) - [Commits](https://github.com/tokio-rs/tokio/compare/tokio-util-0.7.16...tokio-util-0.7.17) --- updated-dependencies: - dependency-name: tokio-util dependency-version: 0.7.17 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 078fe723..d835ef0e 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2342,9 +2342,9 @@ dependencies = [ [[package]] name = "tokio-util" -version = "0.7.16" +version = "0.7.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "14307c986784f72ef81c89db7d9e28d6ac26d16213b109ea501696195e6e3ce5" +checksum = "2efa149fe76073d6e8fd97ef4f4eca7b67f599660115591483572e406e165594" dependencies = [ "bytes", "futures-core", From 4f210acffa1017958bd40e379c424493658f5bff Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 4 Nov 2025 10:38:29 +0000 Subject: [PATCH 367/410] build(deps): bump taiki-e/install-action from 2.62.39 to 2.62.45 (#759) Bumps [taiki-e/install-action](https://github.com/taiki-e/install-action) from 2.62.39 to 2.62.45. - [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.62.39...v2.62.45) --- updated-dependencies: - dependency-name: taiki-e/install-action dependency-version: 2.62.45 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/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 3f55b6ff..3e7c090a 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.62.39 + uses: taiki-e/install-action@v2.62.45 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.62.39 + uses: taiki-e/install-action@v2.62.45 with: tool: cargo-hack,cargo-minimal-versions diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 55336873..686b161a 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.62.39 + uses: taiki-e/install-action@v2.62.45 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.62.39 + uses: taiki-e/install-action@v2.62.45 with: tool: just diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml index 2ca5dfb3..5acfbcc0 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.62.39 + uses: taiki-e/install-action@v2.62.45 with: tool: cargo-llvm-cov diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 8053c634..331ff917 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.62.39 + uses: taiki-e/install-action@v2.62.45 with: tool: just From 28cee8ce7384c802ff01aa11ab91da2c1b5c7d64 Mon Sep 17 00:00:00 2001 From: Yuki Okushi Date: Wed, 5 Nov 2025 20:13:56 +0900 Subject: [PATCH 368/410] chore: rename branch to main (#762) --- .github/workflows/ci-post-merge.yml | 2 +- .github/workflows/ci.yml | 2 +- .github/workflows/coverage.yml | 2 +- actix-server/Cargo.toml | 2 +- actix-tracing/Cargo.toml | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/ci-post-merge.yml b/.github/workflows/ci-post-merge.yml index 3e7c090a..40625250 100644 --- a/.github/workflows/ci-post-merge.yml +++ b/.github/workflows/ci-post-merge.yml @@ -2,7 +2,7 @@ name: CI (post-merge) on: push: - branches: [master] + branches: [main] permissions: contents: read diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 686b161a..b9236cb4 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -3,7 +3,7 @@ name: CI on: pull_request: {} merge_group: { types: [checks_requested] } - push: { branches: [master] } + push: { branches: [main] } permissions: contents: read diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml index 5acfbcc0..9bcc020f 100644 --- a/.github/workflows/coverage.yml +++ b/.github/workflows/coverage.yml @@ -2,7 +2,7 @@ name: Coverage on: push: - branches: [master] + branches: [main] permissions: contents: read diff --git a/actix-server/Cargo.toml b/actix-server/Cargo.toml index fe8c10c3..3fb037dc 100644 --- a/actix-server/Cargo.toml +++ b/actix-server/Cargo.toml @@ -10,7 +10,7 @@ description = "General purpose TCP server built for the Actix ecosystem" keywords = ["network", "tcp", "server", "framework", "async"] categories = ["network-programming", "asynchronous"] homepage = "https://actix.rs" -repository = "https://github.com/actix/actix-net/tree/master/actix-server" +repository = "https://github.com/actix/actix-net/tree/main/actix-server" license = "MIT OR Apache-2.0" edition.workspace = true rust-version.workspace = true diff --git a/actix-tracing/Cargo.toml b/actix-tracing/Cargo.toml index 8e4e0db2..21413cd3 100644 --- a/actix-tracing/Cargo.toml +++ b/actix-tracing/Cargo.toml @@ -5,7 +5,7 @@ authors = ["Rajasekharan Vengalil "] description = "Support for tokio tracing with Actix services" keywords = ["network", "framework", "tracing"] homepage = "https://actix.rs" -repository = "https://github.com/actix/actix-net/tree/master/actix-tracing" +repository = "https://github.com/actix/actix-net/tree/main/actix-tracing" documentation = "https://docs.rs/actix-tracing" categories = ["network-programming", "asynchronous"] license = "MIT OR Apache-2.0" From dde50648b22678ad9f46481423e0f65cc1c2c7ed Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 6 Nov 2025 04:33:57 +0000 Subject: [PATCH 369/410] build(deps): bump taiki-e/install-action from 2.62.45 to 2.62.46 (#761) 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 40625250..bae85ad2 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.62.45 + uses: taiki-e/install-action@v2.62.46 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.62.45 + uses: taiki-e/install-action@v2.62.46 with: tool: cargo-hack,cargo-minimal-versions diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index b9236cb4..b564b7fe 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.62.45 + uses: taiki-e/install-action@v2.62.46 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.62.45 + uses: taiki-e/install-action@v2.62.46 with: tool: just diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml index 9bcc020f..c1fa89f8 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.62.45 + uses: taiki-e/install-action@v2.62.46 with: tool: cargo-llvm-cov diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 331ff917..f20ebd46 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.62.45 + uses: taiki-e/install-action@v2.62.46 with: tool: just From 3143a2cb735a092ec75e5bebe25835f5316f9459 Mon Sep 17 00:00:00 2001 From: Rob Ede Date: Mon, 10 Nov 2025 06:44:23 +0000 Subject: [PATCH 370/410] chore(actix-tls): prepare release 3.5.0 --- Cargo.lock | 2 +- actix-tls/CHANGES.md | 3 +++ actix-tls/Cargo.toml | 2 +- actix-tls/README.md | 4 ++-- 4 files changed, 7 insertions(+), 4 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index d835ef0e..fb2d311e 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -77,7 +77,7 @@ dependencies = [ [[package]] name = "actix-tls" -version = "3.4.0" +version = "3.5.0" dependencies = [ "actix-codec", "actix-rt", diff --git a/actix-tls/CHANGES.md b/actix-tls/CHANGES.md index daeb1578..4f0bc4e8 100644 --- a/actix-tls/CHANGES.md +++ b/actix-tls/CHANGES.md @@ -2,6 +2,9 @@ ## Unreleased +## 3.5.0 + +- Update `rustls-native-certs` (`0.7`) dependency to `0.8`. - Minimum supported Rust version (MSRV) is now 1.76. ## 3.4.0 diff --git a/actix-tls/Cargo.toml b/actix-tls/Cargo.toml index fa818fa6..00d5d44b 100644 --- a/actix-tls/Cargo.toml +++ b/actix-tls/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "actix-tls" -version = "3.4.0" +version = "3.5.0" authors = ["Nikolay Kim ", "Rob Ede "] description = "TLS acceptor and connector services for Actix ecosystem" keywords = ["network", "tls", "ssl", "async", "transport"] diff --git a/actix-tls/README.md b/actix-tls/README.md index 554f2615..081c3e7f 100644 --- a/actix-tls/README.md +++ b/actix-tls/README.md @@ -5,11 +5,11 @@ [![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.4.0)](https://docs.rs/actix-tls/3.4.0) +[![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) ![MIT or Apache 2.0 licensed](https://img.shields.io/crates/l/actix-tls.svg)
-[![Dependency Status](https://deps.rs/crate/actix-tls/3.4.0/status.svg)](https://deps.rs/crate/actix-tls/3.4.0) +[![Dependency Status](https://deps.rs/crate/actix-tls/3.5.0/status.svg)](https://deps.rs/crate/actix-tls/3.5.0) ![Download](https://img.shields.io/crates/d/actix-tls.svg) [![Chat on Discord](https://img.shields.io/discord/771444961383153695?label=chat&logo=discord)](https://discord.gg/NWpN5mmg3x) From 64d1d85255b99e73437625947c2b530ecb8bc129 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 10 Nov 2025 22:05:44 +0000 Subject: [PATCH 371/410] build(deps): bump syn from 2.0.108 to 2.0.110 (#765) Bumps [syn](https://github.com/dtolnay/syn) from 2.0.108 to 2.0.110. - [Release notes](https://github.com/dtolnay/syn/releases) - [Commits](https://github.com/dtolnay/syn/compare/2.0.108...2.0.110) --- updated-dependencies: - dependency-name: syn dependency-version: 2.0.110 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 fb2d311e..dc738f52 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2054,9 +2054,9 @@ checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" [[package]] name = "syn" -version = "2.0.108" +version = "2.0.110" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da58917d35242480a05c2897064da0a80589a2a0476c9a3f2fdc83b53502e917" +checksum = "a99801b5bd34ede4cf3fc688c5919368fea4e4814a4664359503e6015b280aea" dependencies = [ "proc-macro2", "quote", From 0b6122504b301245732d96f47125d508f6b34cfb Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 10 Nov 2025 22:06:55 +0000 Subject: [PATCH 372/410] build(deps): bump trybuild from 1.0.113 to 1.0.114 (#766) Bumps [trybuild](https://github.com/dtolnay/trybuild) from 1.0.113 to 1.0.114. - [Release notes](https://github.com/dtolnay/trybuild/releases) - [Commits](https://github.com/dtolnay/trybuild/compare/1.0.113...1.0.114) --- updated-dependencies: - dependency-name: trybuild dependency-version: 1.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 dc738f52..e30db711 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2466,9 +2466,9 @@ dependencies = [ [[package]] name = "trybuild" -version = "1.0.113" +version = "1.0.114" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "559b6a626c0815c942ac98d434746138b4f89ddd6a1b8cbb168c6845fb3376c5" +checksum = "3e17e807bff86d2a06b52bca4276746584a78375055b6e45843925ce2802b335" dependencies = [ "glob", "serde", From 5b7907d797e8a9336939c9a2ae11505650d40a61 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 10 Nov 2025 22:07:11 +0000 Subject: [PATCH 373/410] build(deps): bump taiki-e/install-action from 2.62.46 to 2.62.49 (#763) Bumps [taiki-e/install-action](https://github.com/taiki-e/install-action) from 2.62.46 to 2.62.49. - [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.62.46...v2.62.49) --- updated-dependencies: - dependency-name: taiki-e/install-action dependency-version: 2.62.49 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/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 bae85ad2..5283a71c 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.62.46 + uses: taiki-e/install-action@v2.62.49 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.62.46 + uses: taiki-e/install-action@v2.62.49 with: tool: cargo-hack,cargo-minimal-versions diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index b564b7fe..2d77c909 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.62.46 + uses: taiki-e/install-action@v2.62.49 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.62.46 + uses: taiki-e/install-action@v2.62.49 with: tool: just diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml index c1fa89f8..2a75e827 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.62.46 + uses: taiki-e/install-action@v2.62.49 with: tool: cargo-llvm-cov diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index f20ebd46..99e21494 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.62.46 + uses: taiki-e/install-action@v2.62.49 with: tool: just From c1bf0ec8dcb8b42ae35667ffed5573bdecfbd468 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 10 Nov 2025 22:13:31 +0000 Subject: [PATCH 374/410] build(deps): bump quote from 1.0.41 to 1.0.42 (#764) Bumps [quote](https://github.com/dtolnay/quote) from 1.0.41 to 1.0.42. - [Release notes](https://github.com/dtolnay/quote/releases) - [Commits](https://github.com/dtolnay/quote/compare/1.0.41...1.0.42) --- updated-dependencies: - dependency-name: quote dependency-version: 1.0.42 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 e30db711..8a705d42 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1484,9 +1484,9 @@ dependencies = [ [[package]] name = "quote" -version = "1.0.41" +version = "1.0.42" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce25767e7b499d1b604768e7cde645d14cc8584231ea6b295e9c9eb22c02e1d1" +checksum = "a338cc41d27e6cc6dce6cefc13a0729dfbb81c262b1f519331575dd80ef3067f" dependencies = [ "proc-macro2", ] From 17a7718585fc934b4fe93f44604edce0feaa14b8 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 26 Nov 2025 16:40:49 +0000 Subject: [PATCH 375/410] build(deps): bump bytes from 1.10.1 to 1.11.0 (#770) Bumps [bytes](https://github.com/tokio-rs/bytes) from 1.10.1 to 1.11.0. - [Release notes](https://github.com/tokio-rs/bytes/releases) - [Changelog](https://github.com/tokio-rs/bytes/blob/master/CHANGELOG.md) - [Commits](https://github.com/tokio-rs/bytes/compare/v1.10.1...v1.11.0) --- updated-dependencies: - dependency-name: bytes dependency-version: 1.11.0 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> --- Cargo.lock | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 8a705d42..8036929c 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -289,9 +289,9 @@ checksum = "46c5e41b57b8bba42a04676d81cb89e9ee8e859a1a66f80a5a72e1cb76b34d43" [[package]] name = "bytes" -version = "1.10.1" +version = "1.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d71b6127be86fdcfddb610f7182ac57211d4b18a3e9c82eb2d17662f2227ad6a" +checksum = "b35204fbdc0b3f4446b89fc1ac2cf84a8a68971995d0bf2e925ec7cd960f9cb3" [[package]] name = "bytestring" From b73cf76974870b03163e3a85bc6e4f56765f8ad9 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 26 Nov 2025 16:40:58 +0000 Subject: [PATCH 376/410] build(deps): bump syn from 2.0.110 to 2.0.111 (#769) Bumps [syn](https://github.com/dtolnay/syn) from 2.0.110 to 2.0.111. - [Release notes](https://github.com/dtolnay/syn/releases) - [Commits](https://github.com/dtolnay/syn/compare/2.0.110...2.0.111) --- updated-dependencies: - dependency-name: syn dependency-version: 2.0.111 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 8036929c..399c12c0 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2054,9 +2054,9 @@ checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" [[package]] name = "syn" -version = "2.0.110" +version = "2.0.111" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a99801b5bd34ede4cf3fc688c5919368fea4e4814a4664359503e6015b280aea" +checksum = "390cc9a294ab71bdb1aa2e99d13be9c753cd2d7bd6560c77118597410c4d2e87" dependencies = [ "proc-macro2", "quote", From f64d5495ae4da56d7c2e60fb58525a0bf30235c7 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 26 Nov 2025 16:41:15 +0000 Subject: [PATCH 377/410] build(deps): bump actions/checkout from 5 to 6 (#768) Bumps [actions/checkout](https://github.com/actions/checkout) from 5 to 6. - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/checkout/compare/v5...v6) --- updated-dependencies: - dependency-name: actions/checkout dependency-version: '6' dependency-type: direct:production update-type: version-update:semver-major ... 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 | 6 +++--- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/.github/workflows/ci-post-merge.yml b/.github/workflows/ci-post-merge.yml index 5283a71c..18c772b2 100644 --- a/.github/workflows/ci-post-merge.yml +++ b/.github/workflows/ci-post-merge.yml @@ -35,7 +35,7 @@ jobs: if: matrix.target.os == 'macos-latest' run: sudo ifconfig lo0 alias 127.0.0.3 - - uses: actions/checkout@v5 + - uses: actions/checkout@v6 - name: Free Disk Space if: matrix.target.os == 'ubuntu-latest' @@ -113,7 +113,7 @@ jobs: name: minimal versions runs-on: ubuntu-latest steps: - - uses: actions/checkout@v5 + - uses: actions/checkout@v6 - name: Install Rust (nightly) uses: actions-rust-lang/setup-rust-toolchain@v1.15.2 diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 2d77c909..718ca8c0 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -44,7 +44,7 @@ jobs: if: matrix.target.os == 'macos-latest' run: sudo ifconfig lo0 alias 127.0.0.3 - - uses: actions/checkout@v5 + - uses: actions/checkout@v6 - name: Free Disk Space if: matrix.target.os == 'ubuntu-latest' @@ -117,7 +117,7 @@ jobs: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v5 + - uses: actions/checkout@v6 - name: Install Rust (nightly) uses: actions-rust-lang/setup-rust-toolchain@v1.15.2 diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml index 2a75e827..0e6c6ca0 100644 --- a/.github/workflows/coverage.yml +++ b/.github/workflows/coverage.yml @@ -15,7 +15,7 @@ jobs: coverage: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v5 + - uses: actions/checkout@v6 - name: Install Rust uses: actions-rust-lang/setup-rust-toolchain@v1.15.2 diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 99e21494..d9017063 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -16,7 +16,7 @@ jobs: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v5 + - uses: actions/checkout@v6 - uses: actions-rust-lang/setup-rust-toolchain@v1.15.2 with: @@ -33,7 +33,7 @@ jobs: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v5 + - uses: actions/checkout@v6 - uses: actions-rust-lang/setup-rust-toolchain@v1.15.2 with: { components: clippy } @@ -48,7 +48,7 @@ jobs: if: false # rustdoc mismatch currently runs-on: ubuntu-latest steps: - - uses: actions/checkout@v5 + - uses: actions/checkout@v6 - name: Install Rust (${{ vars.RUST_VERSION_EXTERNAL_TYPES }}) uses: actions-rust-lang/setup-rust-toolchain@v1.15.2 From 18aeb3e0ed4689a490278738bb7f9a3a7e2d68ec Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 26 Nov 2025 16:41:26 +0000 Subject: [PATCH 378/410] build(deps): bump taiki-e/install-action from 2.62.49 to 2.62.57 (#767) Bumps [taiki-e/install-action](https://github.com/taiki-e/install-action) from 2.62.49 to 2.62.57. - [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.62.49...v2.62.57) --- updated-dependencies: - dependency-name: taiki-e/install-action dependency-version: 2.62.57 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/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 18c772b2..d63128cd 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.62.49 + uses: taiki-e/install-action@v2.62.57 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.62.49 + uses: taiki-e/install-action@v2.62.57 with: tool: cargo-hack,cargo-minimal-versions diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 718ca8c0..a6c0b9ca 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.62.49 + uses: taiki-e/install-action@v2.62.57 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.62.49 + uses: taiki-e/install-action@v2.62.57 with: tool: just diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml index 0e6c6ca0..f4784c37 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.62.49 + uses: taiki-e/install-action@v2.62.57 with: tool: cargo-llvm-cov diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index d9017063..d4701f8c 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.62.49 + uses: taiki-e/install-action@v2.62.57 with: tool: just From bdb56a838d0109bc907cf43204721d4098781863 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 13 Dec 2025 12:54:39 +0000 Subject: [PATCH 379/410] build(deps): bump mio from 1.1.0 to 1.1.1 (#774) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Cargo.lock | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 399c12c0..d22807dc 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1079,9 +1079,9 @@ checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55" [[package]] name = "libc" -version = "0.2.175" +version = "0.2.178" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a82ae493e598baaea5209805c49bbf2ea7de956d50d7da0da1164f9c6d28543" +checksum = "37c93d8daa9d8a012fd8ab92f088405fb202ea0b6ab73ee2482ae66af4f42091" [[package]] name = "libloading" @@ -1178,9 +1178,9 @@ checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" [[package]] name = "mio" -version = "1.1.0" +version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69d83b0086dc8ecf3ce9ae2874b2d1290252e2a30720bea58a5c6639b0092873" +checksum = "a69bcab0ad47271a0234d9422b131806bf3968021e5dc9328caf2d4cd58557fc" dependencies = [ "libc", "log", From c6ebc4e2b7f63d92f403401193bfc94014a6188e Mon Sep 17 00:00:00 2001 From: Yuki Okushi Date: Mon, 12 Jan 2026 15:40:43 +0900 Subject: [PATCH 380/410] codec: use tokio assert_ready macro (#788) --- actix-codec/tests/test_framed_sink.rs | 20 -------------------- 1 file changed, 20 deletions(-) diff --git a/actix-codec/tests/test_framed_sink.rs b/actix-codec/tests/test_framed_sink.rs index 280fec3d..063fbfa3 100644 --- a/actix-codec/tests/test_framed_sink.rs +++ b/actix-codec/tests/test_framed_sink.rs @@ -23,26 +23,6 @@ macro_rules! bilateral { }}; } -macro_rules! assert_ready { - ($e:expr) => {{ - use core::task::Poll::*; - match $e { - Ready(v) => v, - Pending => panic!("pending"), - } - }}; - ($e:expr, $($msg:tt),+) => {{ - use core::task::Poll::*; - match $e { - Ready(v) => v, - Pending => { - let msg = format_args!($($msg),+); - panic!("pending; {}", msg) - } - } - }}; -} - #[derive(Debug)] pub struct Bilateral { pub calls: VecDeque>>, From 4ce044ef1c4587c032c4193999612d567ec1230d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 12 Jan 2026 16:00:55 +0900 Subject: [PATCH 381/410] build(deps): bump codecov/codecov-action from 5.5.1 to 5.5.2 (#776) Bumps [codecov/codecov-action](https://github.com/codecov/codecov-action) from 5.5.1 to 5.5.2. - [Release notes](https://github.com/codecov/codecov-action/releases) - [Changelog](https://github.com/codecov/codecov-action/blob/main/CHANGELOG.md) - [Commits](https://github.com/codecov/codecov-action/compare/v5.5.1...v5.5.2) --- updated-dependencies: - dependency-name: codecov/codecov-action dependency-version: 5.5.2 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/coverage.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml index f4784c37..894a83fa 100644 --- a/.github/workflows/coverage.yml +++ b/.github/workflows/coverage.yml @@ -31,7 +31,7 @@ jobs: run: cargo llvm-cov --workspace --all-features --codecov --output-path codecov.json - name: Upload coverage to Codecov - uses: codecov/codecov-action@v5.5.1 + uses: codecov/codecov-action@v5.5.2 with: files: codecov.json fail_ci_if_error: true From 91803c41f82606e46a245c9ffe2afde16f07cccc Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 12 Jan 2026 07:19:06 +0000 Subject: [PATCH 382/410] build(deps): bump tracing from 0.1.41 to 0.1.44 (#779) Bumps [tracing](https://github.com/tokio-rs/tracing) from 0.1.41 to 0.1.44. - [Release notes](https://github.com/tokio-rs/tracing/releases) - [Commits](https://github.com/tokio-rs/tracing/compare/tracing-0.1.41...tracing-0.1.44) --- updated-dependencies: - dependency-name: tracing dependency-version: 0.1.44 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 | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index d22807dc..eebf19a1 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2394,9 +2394,9 @@ checksum = "fcc842091f2def52017664b53082ecbbeb5c7731092bad69d2c63050401dfd64" [[package]] name = "tracing" -version = "0.1.41" +version = "0.1.44" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "784e0ac535deb450455cbfa28a6f0df145ea1bb7ae51b821cf5e7927fdcfbdd0" +checksum = "63e71662fa4b2a2c3a26f570f037eb95bb1f85397f3cd8076caed2f026a6d100" dependencies = [ "log", "pin-project-lite", @@ -2406,9 +2406,9 @@ dependencies = [ [[package]] name = "tracing-attributes" -version = "0.1.30" +version = "0.1.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81383ab64e72a7a8b8e13130c49e3dab29def6d0c7d76a03087b3cf71c5c6903" +checksum = "7490cfa5ec963746568740651ac6781f701c9c5ea257c58e057f3ba8cf69e8da" dependencies = [ "proc-macro2", "quote", @@ -2417,9 +2417,9 @@ dependencies = [ [[package]] name = "tracing-core" -version = "0.1.34" +version = "0.1.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9d12581f227e93f094d3af2ae690a574abb8a2b9b7a96e7cfe9647b2b617678" +checksum = "db97caf9d906fbde555dd62fa95ddba9eecfd14cb388e4f491a66d74cd5fb79a" dependencies = [ "once_cell", "valuable", From f280f6dc479e1068fc17d99c350812560fba35c8 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 12 Jan 2026 07:19:43 +0000 Subject: [PATCH 383/410] build(deps): bump proc-macro2 from 1.0.103 to 1.0.104 (#781) Bumps [proc-macro2](https://github.com/dtolnay/proc-macro2) from 1.0.103 to 1.0.104. - [Release notes](https://github.com/dtolnay/proc-macro2/releases) - [Commits](https://github.com/dtolnay/proc-macro2/compare/1.0.103...1.0.104) --- updated-dependencies: - dependency-name: proc-macro2 dependency-version: 1.0.104 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 eebf19a1..c91d1866 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1475,9 +1475,9 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.103" +version = "1.0.104" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ee95bc4ef87b8d5ba32e8b7714ccc834865276eab0aed5c9958d00ec45f49e8" +checksum = "9695f8df41bb4f3d222c95a67532365f569318332d03d5f3f67f37b20e6ebdf0" dependencies = [ "unicode-ident", ] From 63d8e78dd678b28f1ef17979f0a3eb216ffe055e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 12 Jan 2026 07:26:15 +0000 Subject: [PATCH 384/410] build(deps): bump serde_json from 1.0.145 to 1.0.148 (#782) Bumps [serde_json](https://github.com/serde-rs/json) from 1.0.145 to 1.0.148. - [Release notes](https://github.com/serde-rs/json/releases) - [Commits](https://github.com/serde-rs/json/compare/v1.0.145...v1.0.148) --- updated-dependencies: - dependency-name: serde_json dependency-version: 1.0.148 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> Co-authored-by: Yuki Okushi --- Cargo.lock | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index c91d1866..e4f4a52b 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1822,12 +1822,6 @@ version = "0.100.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b6ceb60223ee771fb5dfe462e29e5ee92bca9a7b9c555584f4d361045dae0e12" -[[package]] -name = "ryu" -version = "1.0.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f" - [[package]] name = "same-file" version = "1.0.6" @@ -1942,15 +1936,15 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.145" +version = "1.0.148" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "402a6f66d8c709116cf22f558eab210f5a50187f702eb4d7e5ef38d9a7f1c79c" +checksum = "3084b546a1dd6289475996f182a22aba973866ea8e8b02c51d9f46b1336a22da" dependencies = [ "itoa", "memchr", - "ryu", "serde", "serde_core", + "zmij", ] [[package]] @@ -3217,3 +3211,9 @@ dependencies = [ "quote", "syn", ] + +[[package]] +name = "zmij" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0f4a4e8e9dc5c62d159f04fcdbe07f4c3fb710415aab4754bf11505501e3251d" From af865c5dbfb1afe7929765af087a2c80b5e90e5e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 12 Jan 2026 07:32:26 +0000 Subject: [PATCH 385/410] build(deps): bump tokio from 1.48.0 to 1.49.0 (#786) Bumps [tokio](https://github.com/tokio-rs/tokio) from 1.48.0 to 1.49.0. - [Release notes](https://github.com/tokio-rs/tokio/releases) - [Commits](https://github.com/tokio-rs/tokio/compare/tokio-1.48.0...tokio-1.49.0) --- updated-dependencies: - dependency-name: tokio dependency-version: 1.49.0 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> Co-authored-by: Yuki Okushi --- Cargo.lock | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index e4f4a52b..a70c2cdf 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2207,9 +2207,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.48.0" +version = "1.49.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff360e02eab121e0bc37a2d3b4d4dc622e6eda3a8e5253d5435ecf5bd4c68408" +checksum = "72a2903cd7736441aac9df9d7688bd0ce48edccaadf181c3b90be801e81d3d86" dependencies = [ "bytes", "libc", From 283a24d55556154e22400ebe4ff8f16190cb182d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 12 Jan 2026 07:32:30 +0000 Subject: [PATCH 386/410] build(deps): bump taiki-e/cache-cargo-install-action from 2.3.1 to 3.0.0 (#785) Bumps [taiki-e/cache-cargo-install-action](https://github.com/taiki-e/cache-cargo-install-action) from 2.3.1 to 3.0.0. - [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/v2.3.1...v3.0.0) --- updated-dependencies: - dependency-name: taiki-e/cache-cargo-install-action dependency-version: 3.0.0 dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Yuki Okushi --- .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 d4701f8c..a37346bc 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@v2.3.1 + uses: taiki-e/cache-cargo-install-action@v3.0.0 with: tool: cargo-check-external-types From 26bf2ddeb19d2ca8458eca494956b291c8d051e7 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 12 Jan 2026 07:34:18 +0000 Subject: [PATCH 387/410] build(deps): bump taiki-e/install-action from 2.62.57 to 2.65.13 (#784) Bumps [taiki-e/install-action](https://github.com/taiki-e/install-action) from 2.62.57 to 2.65.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.62.57...v2.65.13) --- updated-dependencies: - dependency-name: taiki-e/install-action dependency-version: 2.65.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> Co-authored-by: Yuki Okushi --- .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 d63128cd..ee64cf64 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.62.57 + uses: taiki-e/install-action@v2.65.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.62.57 + uses: taiki-e/install-action@v2.65.13 with: tool: cargo-hack,cargo-minimal-versions diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index a6c0b9ca..5e54585f 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.62.57 + uses: taiki-e/install-action@v2.65.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.62.57 + uses: taiki-e/install-action@v2.65.13 with: tool: just diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml index 894a83fa..d4f0c818 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.62.57 + uses: taiki-e/install-action@v2.65.13 with: tool: cargo-llvm-cov diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index a37346bc..0b401e05 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.62.57 + uses: taiki-e/install-action@v2.65.13 with: tool: just From a7ce4e5fead234fda7d03d83ffb45c98e4c05558 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 12 Jan 2026 07:38:12 +0000 Subject: [PATCH 388/410] build(deps): bump tokio-util from 0.7.17 to 0.7.18 (#787) Bumps [tokio-util](https://github.com/tokio-rs/tokio) from 0.7.17 to 0.7.18. - [Release notes](https://github.com/tokio-rs/tokio/releases) - [Commits](https://github.com/tokio-rs/tokio/compare/tokio-util-0.7.17...tokio-util-0.7.18) --- updated-dependencies: - dependency-name: tokio-util dependency-version: 0.7.18 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> Co-authored-by: Yuki Okushi --- Cargo.lock | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index a70c2cdf..25830628 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2336,9 +2336,9 @@ dependencies = [ [[package]] name = "tokio-util" -version = "0.7.17" +version = "0.7.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2efa149fe76073d6e8fd97ef4f4eca7b67f599660115591483572e406e165594" +checksum = "9ae9cec805b01e8fc3fd2fe289f89149a9b66dd16786abd8b19cfa7b48cb0098" dependencies = [ "bytes", "futures-core", From 111f298fceab4e21f634750f1c3ad658d412755b Mon Sep 17 00:00:00 2001 From: Yuki Okushi Date: Sun, 1 Feb 2026 14:01:09 +0900 Subject: [PATCH 389/410] 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 390/410] 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 391/410] 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 392/410] 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 393/410] 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 394/410] 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 395/410] 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 396/410] 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 397/410] 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 398/410] 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; From 4d9bc51555ccb34dac38f3bdcc823282d9293f71 Mon Sep 17 00:00:00 2001 From: Nur Date: Mon, 2 Feb 2026 04:02:17 +0600 Subject: [PATCH 399/410] local-waker (perf): Avoid `Waker::clone` on 2nd registration (#783) * local-waker (perf): Avoid `Waker::clone` on 2nd registration * local-waker: Add safety docs * Add safety note on `take` --------- Co-authored-by: Yuki Okushi --- local-waker/src/lib.rs | 25 ++++++++++++++++++++----- 1 file changed, 20 insertions(+), 5 deletions(-) diff --git a/local-waker/src/lib.rs b/local-waker/src/lib.rs index 6a6a5558..b131df84 100644 --- a/local-waker/src/lib.rs +++ b/local-waker/src/lib.rs @@ -6,7 +6,7 @@ #![deny(rust_2018_idioms, nonstandard_style)] #![warn(future_incompatible, missing_docs)] -use core::{cell::Cell, fmt, marker::PhantomData, task::Waker}; +use core::{cell::UnsafeCell, fmt, marker::PhantomData, task::Waker}; /// A synchronization primitive for task wakeup. /// @@ -27,7 +27,7 @@ use core::{cell::Cell, fmt, marker::PhantomData, task::Waker}; /// [`wake`]: LocalWaker::wake #[derive(Default)] pub struct LocalWaker { - pub(crate) waker: Cell>, + pub(crate) waker: UnsafeCell>, // mark LocalWaker as a !Send type. _phantom: PhantomData<*const ()>, } @@ -43,8 +43,21 @@ impl LocalWaker { /// Returns `true` if waker was registered before. #[inline] pub fn register(&self, waker: &Waker) -> bool { - let last_waker = self.waker.replace(Some(waker.clone())); - last_waker.is_some() + let mut registered = false; + + // SAFETY: `LocalWaker` is `!Send`, threfore this cannot be called from a separate thread. + // And this is an unique access before the assignment below. + if let Some(prev) = unsafe { &*self.waker.get() } { + if waker.will_wake(prev) { + return true; + } + registered = true; + } + + // SAFETY: This can cause data races if called from a separate thread, + // but `LocalWaker` is `!Send` + `!Sync` so this won't happen. + unsafe { *self.waker.get() = Some(waker.clone()) } + registered } /// Calls `wake` on the last `Waker` passed to `register`. @@ -62,7 +75,9 @@ impl LocalWaker { /// If a waker has not been registered, this returns `None`. #[inline] pub fn take(&self) -> Option { - self.waker.take() + // SAFETY: This can cause data races if called from a separate thread, + // but `LocalWaker` is `!Send` + `!Sync` so this won't happen. + unsafe { (*self.waker.get()).take() } } } From ccfcf027b05aff0edc619ea1d0bf7a07046d845a Mon Sep 17 00:00:00 2001 From: Yuki Okushi Date: Mon, 2 Feb 2026 16:30:36 +0900 Subject: [PATCH 400/410] docs(tls): mark ready change as breaking (#801) --- actix-tls/CHANGES.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/actix-tls/CHANGES.md b/actix-tls/CHANGES.md index 6b1bdbbe..6374e0ec 100644 --- a/actix-tls/CHANGES.md +++ b/actix-tls/CHANGES.md @@ -3,7 +3,7 @@ ## Unreleased - Minimum supported Rust version (MSRV) is now 1.88. -- internal: Use `core::future::{ready, Ready}` instead of actix-utils' +- breaking: Use `core::future::{ready, Ready}` instead of actix-utils' ## 3.5.0 From 5f55ec12006e9600384c7802a68d880500da88ce Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 3 Feb 2026 16:33:38 +0900 Subject: [PATCH 401/410] build(deps): bump taiki-e/install-action from 2.67.13 to 2.67.18 (#802) Bumps [taiki-e/install-action](https://github.com/taiki-e/install-action) from 2.67.13 to 2.67.18. - [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.67.13...v2.67.18) --- updated-dependencies: - dependency-name: taiki-e/install-action dependency-version: 2.67.18 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/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 02610dfc..b6c36682 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.67.13 + uses: taiki-e/install-action@v2.67.18 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.67.13 + uses: taiki-e/install-action@v2.67.18 with: tool: cargo-hack,cargo-minimal-versions diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index e418306d..b0fdfd2e 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.67.13 + uses: taiki-e/install-action@v2.67.18 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.67.13 + uses: taiki-e/install-action@v2.67.18 with: tool: just diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml index 2f10ace4..6738a9d7 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.67.13 + uses: taiki-e/install-action@v2.67.18 with: tool: cargo-llvm-cov diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 23f14979..c9e415a6 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.67.13 + uses: taiki-e/install-action@v2.67.18 with: tool: just From f76fe0221dadc74bd9ae797ac343a9fc6963ff3c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 3 Feb 2026 16:33:54 +0900 Subject: [PATCH 402/410] build(deps): bump quote from 1.0.42 to 1.0.44 (#803) Bumps [quote](https://github.com/dtolnay/quote) from 1.0.42 to 1.0.44. - [Release notes](https://github.com/dtolnay/quote/releases) - [Commits](https://github.com/dtolnay/quote/compare/1.0.42...1.0.44) --- updated-dependencies: - dependency-name: quote dependency-version: 1.0.44 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 | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 5951d194..d06718c2 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1,6 +1,6 @@ # This file is automatically @generated by Cargo. # It is not intended for manual editing. -version = 3 +version = 4 [[package]] name = "actix-codec" @@ -1462,9 +1462,9 @@ dependencies = [ [[package]] name = "quote" -version = "1.0.42" +version = "1.0.44" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a338cc41d27e6cc6dce6cefc13a0729dfbb81c262b1f519331575dd80ef3067f" +checksum = "21b2ebcf727b7760c461f091f9f0f539b77b8e87f2fd88131e7f1b433b3cece4" dependencies = [ "proc-macro2", ] From de84c887798eee58b20645d7145405dd5d3bc838 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 3 Feb 2026 16:34:08 +0900 Subject: [PATCH 403/410] build(deps): bump trybuild from 1.0.114 to 1.0.115 (#804) Bumps [trybuild](https://github.com/dtolnay/trybuild) from 1.0.114 to 1.0.115. - [Release notes](https://github.com/dtolnay/trybuild/releases) - [Commits](https://github.com/dtolnay/trybuild/compare/1.0.114...1.0.115) --- updated-dependencies: - dependency-name: trybuild dependency-version: 1.0.115 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 d06718c2..230de5cd 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2436,9 +2436,9 @@ dependencies = [ [[package]] name = "trybuild" -version = "1.0.114" +version = "1.0.115" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e17e807bff86d2a06b52bca4276746584a78375055b6e45843925ce2802b335" +checksum = "5f614c21bd3a61bad9501d75cbb7686f00386c806d7f456778432c25cf86948a" dependencies = [ "glob", "serde", From 2a87e21044f553f1c92b93f622a88b7b50386b11 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 3 Feb 2026 16:35:51 +0900 Subject: [PATCH 404/410] build(deps): bump slab from 0.4.11 to 0.4.12 (#807) Bumps [slab](https://github.com/tokio-rs/slab) from 0.4.11 to 0.4.12. - [Release notes](https://github.com/tokio-rs/slab/releases) - [Changelog](https://github.com/tokio-rs/slab/blob/master/CHANGELOG.md) - [Commits](https://github.com/tokio-rs/slab/compare/v0.4.11...v0.4.12) --- updated-dependencies: - dependency-name: slab dependency-version: 0.4.12 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 230de5cd..c6057087 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1960,9 +1960,9 @@ dependencies = [ [[package]] name = "slab" -version = "0.4.11" +version = "0.4.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a2ae44ef20feb57a68b23d846850f861394c2e02dc425a50098ae8c90267589" +checksum = "0c790de23124f9ab44544d7ac05d60440adc586479ce501c1d6d7da3cd8c9cf5" [[package]] name = "smallvec" From 85cfc02287b8ff2cc82c74b96a575ce84e029be1 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 3 Feb 2026 16:36:06 +0900 Subject: [PATCH 405/410] build(deps): bump proc-macro2 from 1.0.105 to 1.0.106 (#806) Bumps [proc-macro2](https://github.com/dtolnay/proc-macro2) from 1.0.105 to 1.0.106. - [Release notes](https://github.com/dtolnay/proc-macro2/releases) - [Commits](https://github.com/dtolnay/proc-macro2/compare/1.0.105...1.0.106) --- updated-dependencies: - dependency-name: proc-macro2 dependency-version: 1.0.106 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 c6057087..2f4e9944 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1453,9 +1453,9 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.105" +version = "1.0.106" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "535d180e0ecab6268a3e718bb9fd44db66bbbc256257165fc699dadf70d16fe7" +checksum = "8fd00f0bb2e90d81d1044c2b32617f68fcb9fa3bb7640c23e9c748e53fb30934" dependencies = [ "unicode-ident", ] From 13e17e77b857ed7cc29d3e1aa57d9935dcea8f15 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 3 Feb 2026 07:36:22 +0000 Subject: [PATCH 406/410] build(deps): bump socket2 from 0.6.1 to 0.6.2 (#805) Bumps [socket2](https://github.com/rust-lang/socket2) from 0.6.1 to 0.6.2. - [Release notes](https://github.com/rust-lang/socket2/releases) - [Changelog](https://github.com/rust-lang/socket2/blob/master/CHANGELOG.md) - [Commits](https://github.com/rust-lang/socket2/compare/v0.6.1...v0.6.2) --- updated-dependencies: - dependency-name: socket2 dependency-version: 0.6.2 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 | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 2f4e9944..37efc1d3 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -55,7 +55,7 @@ dependencies = [ "futures-util", "mio", "pretty_env_logger", - "socket2 0.6.1", + "socket2 0.6.2", "static_assertions", "tokio", "tokio-uring", @@ -1992,9 +1992,9 @@ dependencies = [ [[package]] name = "socket2" -version = "0.6.1" +version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17129e116933cf371d018bb80ae557e889637989d8638274fb25622827b03881" +checksum = "86f4aa3ad99f2088c990dfa82d367e19cb29268ed67c574d10d0a4bfe71f07e0" dependencies = [ "libc", "windows-sys 0.60.2", @@ -2195,7 +2195,7 @@ dependencies = [ "parking_lot", "pin-project-lite", "signal-hook-registry", - "socket2 0.6.1", + "socket2 0.6.2", "tokio-macros", "windows-sys 0.61.2", ] From 4ab39c9341bcbb0f3c9f5baf7d560acc6a2e1fd5 Mon Sep 17 00:00:00 2001 From: Yuki Okushi Date: Wed, 4 Feb 2026 06:06:32 +0900 Subject: [PATCH 407/410] feat(rt): implement `stop_future`/`into_parts` (#808) --- actix-rt/CHANGES.md | 1 + actix-rt/src/lib.rs | 2 +- actix-rt/src/system.rs | 97 +++++++++++++++++++++++++++++++++++++---- actix-rt/tests/tests.rs | 28 ++++++++++++ 4 files changed, 119 insertions(+), 9 deletions(-) diff --git a/actix-rt/CHANGES.md b/actix-rt/CHANGES.md index 6ba3532b..5bbb230f 100644 --- a/actix-rt/CHANGES.md +++ b/actix-rt/CHANGES.md @@ -3,6 +3,7 @@ ## Unreleased - Minimum supported Rust version (MSRV) is now 1.88. +- Add `SystemRunner::stop_future` and `SystemRunner::into_parts` for awaiting system stop inside `block_on`. ## 2.11.0 diff --git a/actix-rt/src/lib.rs b/actix-rt/src/lib.rs index fb795f0d..ec2176d3 100644 --- a/actix-rt/src/lib.rs +++ b/actix-rt/src/lib.rs @@ -68,7 +68,7 @@ use tokio::task::JoinHandle; pub use self::{ arbiter::{Arbiter, ArbiterHandle}, runtime::Runtime, - system::{System, SystemRunner}, + system::{System, SystemRunner, SystemStop}, }; pub mod signal { diff --git a/actix-rt/src/system.rs b/actix-rt/src/system.rs index 77b11f4b..6375cb0e 100644 --- a/actix-rt/src/system.rs +++ b/actix-rt/src/system.rs @@ -9,7 +9,7 @@ use std::{ }; use futures_core::ready; -use tokio::sync::{mpsc, oneshot}; +use tokio::sync::{mpsc, watch}; use crate::{arbiter::ArbiterHandle, Arbiter}; @@ -50,7 +50,7 @@ impl System { where F: FnOnce() -> tokio::runtime::Runtime, { - let (stop_tx, stop_rx) = oneshot::channel(); + let (stop_tx, stop_rx) = watch::channel(None); let (sys_tx, sys_rx) = mpsc::unbounded_channel(); let rt = crate::runtime::Runtime::from(runtime_factory()); @@ -176,7 +176,7 @@ impl System { #[derive(Debug)] pub struct SystemRunner { rt: crate::runtime::Runtime, - stop_rx: oneshot::Receiver, + stop_rx: watch::Receiver>, } #[cfg(not(feature = "io-uring"))] @@ -196,7 +196,7 @@ impl SystemRunner { let SystemRunner { rt, stop_rx, .. } = self; // run loop - rt.block_on(stop_rx).map_err(io::Error::other) + rt.block_on(wait_for_stop(stop_rx)) } /// Retrieves a reference to the underlying [Actix runtime](crate::Runtime) associated with this @@ -233,6 +233,43 @@ impl SystemRunner { &self.rt } + /// Returns a future that resolves with the system's exit code when it is stopped. + /// + /// This can be used to react to a system stop signal while running a future with + /// [`SystemRunner::block_on`], such as when coordinating shutdown with `tokio::select!`. + /// + /// # Examples + /// ```no_run + /// use std::process::ExitCode; + /// use actix_rt::System; + /// + /// let sys = System::new(); + /// let stop = sys.stop_future(); + /// + /// let exit = sys.block_on(async move { + /// actix_rt::spawn(async { + /// System::current().stop_with_code(0); + /// }); + /// + /// let code = stop.await.unwrap_or(1); + /// ExitCode::from(code as u8) + /// }); + /// + /// # drop(exit); + /// ``` + pub fn stop_future(&self) -> SystemStop { + SystemStop::new(self.stop_rx.clone()) + } + + /// Splits this runner into its runtime and a future that resolves when the system stops. + /// + /// After calling this method, [`SystemRunner::run`] and [`SystemRunner::run_with_code`] can no + /// longer be used. + pub fn into_parts(self) -> (crate::runtime::Runtime, SystemStop) { + let SystemRunner { rt, stop_rx } = self; + (rt, SystemStop::new(stop_rx)) + } + /// Runs the provided future, blocking the current thread until the future completes. #[track_caller] #[inline] @@ -259,11 +296,21 @@ impl SystemRunner { unimplemented!("SystemRunner::run_with_code is not implemented for io-uring feature yet"); } + /// Returns a future that resolves with the system's exit code when it is stopped. + pub fn stop_future(&self) -> SystemStop { + unimplemented!("SystemRunner::stop_future is not implemented for io-uring feature yet"); + } + + /// Splits this runner into its runtime and a future that resolves when the system stops. + pub fn into_parts(self) -> (crate::runtime::Runtime, SystemStop) { + unimplemented!("SystemRunner::into_parts is not implemented for io-uring feature yet"); + } + /// Runs the provided future, blocking the current thread until the future completes. #[inline] pub fn block_on(&self, fut: F) -> F::Output { tokio_uring::start(async move { - let (stop_tx, stop_rx) = oneshot::channel(); + let (stop_tx, stop_rx) = watch::channel(None); let (sys_tx, sys_rx) = mpsc::unbounded_channel(); let sys_arbiter = Arbiter::in_new_system(); @@ -285,6 +332,40 @@ impl SystemRunner { } } +/// Future that resolves with the exit code when a [`System`] is stopped. +#[must_use = "SystemStop does nothing unless polled or awaited."] +pub struct SystemStop { + inner: Pin> + 'static>>, +} + +impl SystemStop { + #[cfg_attr(feature = "io-uring", allow(dead_code))] + fn new(stop_rx: watch::Receiver>) -> Self { + Self { + inner: Box::pin(wait_for_stop(stop_rx)), + } + } +} + +impl Future for SystemStop { + type Output = io::Result; + + fn poll(mut self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll { + self.inner.as_mut().poll(cx) + } +} + +#[cfg_attr(feature = "io-uring", allow(dead_code))] +async fn wait_for_stop(mut stop_rx: watch::Receiver>) -> io::Result { + loop { + if let Some(code) = *stop_rx.borrow() { + return Ok(code); + } + + stop_rx.changed().await.map_err(io::Error::other)?; + } +} + #[derive(Debug)] pub(crate) enum SystemCommand { Exit(i32), @@ -296,7 +377,7 @@ pub(crate) enum SystemCommand { /// [Arbiter]s and is able to distribute a system-wide stop command. #[derive(Debug)] pub(crate) struct SystemController { - stop_tx: Option>, + stop_tx: Option>>, cmd_rx: mpsc::UnboundedReceiver, arbiters: HashMap, } @@ -304,7 +385,7 @@ pub(crate) struct SystemController { impl SystemController { pub(crate) fn new( cmd_rx: mpsc::UnboundedReceiver, - stop_tx: oneshot::Sender, + stop_tx: watch::Sender>, ) -> Self { SystemController { cmd_rx, @@ -335,7 +416,7 @@ impl Future for SystemController { // stop event loop // will only fire once if let Some(stop_tx) = self.stop_tx.take() { - let _ = stop_tx.send(code); + let _ = stop_tx.send(Some(code)); } } diff --git a/actix-rt/tests/tests.rs b/actix-rt/tests/tests.rs index ae4c6812..f5493b4d 100644 --- a/actix-rt/tests/tests.rs +++ b/actix-rt/tests/tests.rs @@ -34,6 +34,34 @@ fn run_with_code() { assert_eq!(exit_code, 42); } +#[cfg(not(feature = "io-uring"))] +#[test] +fn stop_future_resolves() { + let sys = System::new(); + let stop = sys.stop_future(); + + let exit_code = sys.block_on(async move { + System::current().stop_with_code(7); + stop.await.expect("stop future should resolve") + }); + + assert_eq!(exit_code, 7); +} + +#[cfg(not(feature = "io-uring"))] +#[test] +fn into_parts_stop_future_resolves() { + let sys = System::new(); + let (rt, stop) = sys.into_parts(); + + let exit_code = rt.block_on(async move { + System::current().stop_with_code(9); + stop.await.expect("stop future should resolve") + }); + + assert_eq!(exit_code, 9); +} + #[test] fn join_another_arbiter() { let time = Duration::from_secs(1); From d86a3eec3128fb3b140e36cb0ae59f40c1e22a0d Mon Sep 17 00:00:00 2001 From: Yuki Okushi Date: Wed, 4 Feb 2026 17:46:31 +0900 Subject: [PATCH 408/410] chore(*): update deps (#810) --- Cargo.lock | 909 +++++++++++++++++------------------------------------ 1 file changed, 286 insertions(+), 623 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 37efc1d3..23d4ebeb 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -89,7 +89,7 @@ dependencies = [ "futures-util", "hickory-resolver", "http 0.2.12", - "http 1.3.1", + "http 1.4.0", "impl-more", "itertools 0.14.0", "openssl", @@ -98,7 +98,7 @@ dependencies = [ "rcgen", "rustls 0.21.12", "rustls-native-certs 0.6.3", - "rustls-native-certs 0.8.1", + "rustls-native-certs 0.8.3", "rustls-pemfile 2.2.0", "rustls-pki-types", "rustls-webpki 0.101.7", @@ -108,7 +108,7 @@ dependencies = [ "tokio-rustls 0.23.4", "tokio-rustls 0.24.1", "tokio-rustls 0.25.0", - "tokio-rustls 0.26.2", + "tokio-rustls 0.26.4", "tokio-util", "tracing", "webpki-roots 0.22.6", @@ -153,9 +153,9 @@ dependencies = [ [[package]] name = "aho-corasick" -version = "1.1.3" +version = "1.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916" +checksum = "ddd31a130427c27518df266943a5308ed92d4b226cc639f5a8f1002816174301" dependencies = [ "memchr", ] @@ -168,9 +168,9 @@ checksum = "4b46cbb362ab8752921c97e041f5e366ee6297bd428a31275b9fcf1e380f7299" [[package]] name = "anstyle" -version = "1.0.11" +version = "1.0.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "862ed96ca487e809f1c8e5a8447f6ee2cf102f846893800b20cebdf541fc6bbd" +checksum = "5192cca8006f1fd4f7237516f40fa183bb07f8fbdfedaa0036de5ea9b0b45e78" [[package]] name = "async-trait" @@ -191,9 +191,9 @@ checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8" [[package]] name = "aws-lc-rs" -version = "1.13.3" +version = "1.15.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c953fe1ba023e6b7730c0d4b031d06f267f23a46167dcbd40316644b10a17ba" +checksum = "7b7b6141e96a8c160799cc2d5adecd5cbbe5054cb8c7c4af53da0f83bb7ad256" dependencies = [ "aws-lc-sys", "zeroize", @@ -201,11 +201,10 @@ dependencies = [ [[package]] name = "aws-lc-sys" -version = "0.30.0" +version = "0.37.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dbfd150b5dbdb988bcc8fb1fe787eb6b7ee6180ca24da683b61ea5405f3d43ff" +checksum = "5c34dda4df7017c8db52132f0f8a2e0f8161649d15723ed63fc00c82d0f2081a" dependencies = [ - "bindgen", "cc", "cmake", "dunce", @@ -224,29 +223,6 @@ version = "0.22.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" -[[package]] -name = "bindgen" -version = "0.69.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "271383c67ccabffb7381723dea0672a673f292304fcb45c01cc648c7a8d58088" -dependencies = [ - "bitflags 2.10.0", - "cexpr", - "clang-sys", - "itertools 0.12.1", - "lazy_static", - "lazycell", - "log", - "prettyplease", - "proc-macro2", - "quote", - "regex", - "rustc-hash", - "shlex", - "syn", - "which", -] - [[package]] name = "bitflags" version = "1.3.2" @@ -261,15 +237,15 @@ checksum = "812e12b5285cc515a9c72a5c1d3b6d46a19dac5acfef5265968c166106e31dd3" [[package]] name = "bumpalo" -version = "3.19.0" +version = "3.19.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46c5e41b57b8bba42a04676d81cb89e9ee8e859a1a66f80a5a72e1cb76b34d43" +checksum = "5dd9dc738b7a8311c7ade152424974d8115f2cdad61e8dab8dac9f2362298510" [[package]] name = "bytes" -version = "1.11.0" +version = "1.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b35204fbdc0b3f4446b89fc1ac2cf84a8a68971995d0bf2e925ec7cd960f9cb3" +checksum = "1e748733b7cbc798e1434b6ac524f0c1ff2ab456fe201501e6497c8417a4fc33" [[package]] name = "bytestring" @@ -290,29 +266,21 @@ checksum = "37b2a672a2cb129a2e41c10b1224bb368f9f37a2b16b612598138befd7b37eb5" [[package]] name = "cc" -version = "1.2.34" +version = "1.2.55" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42bc4aea80032b7bf409b0bc7ccad88853858911b7713a8062fdc0623867bedc" +checksum = "47b26a0954ae34af09b50f0de26458fa95369a0d478d8236d3f93082b219bd29" dependencies = [ + "find-msvc-tools", "jobserver", "libc", "shlex", ] -[[package]] -name = "cexpr" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6fac387a98bb7c37292057cffc56d62ecb629900026402633ae9160df93a8766" -dependencies = [ - "nom", -] - [[package]] name = "cfg-if" -version = "1.0.3" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2fd1289c04a9ea8cb22300a459a72a385d7c73d3259e2ed7dcb2af674838cfa9" +checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801" [[package]] name = "ciborium" @@ -341,31 +309,20 @@ dependencies = [ "half", ] -[[package]] -name = "clang-sys" -version = "1.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b023947811758c97c59bf9d1c188fd619ad4718dcaa767947df1cadb14f39f4" -dependencies = [ - "glob", - "libc", - "libloading", -] - [[package]] name = "clap" -version = "4.5.46" +version = "4.5.57" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c5e4fcf9c21d2e544ca1ee9d8552de13019a42aa7dbf32747fa7aaf1df76e57" +checksum = "6899ea499e3fb9305a65d5ebf6e3d2248c5fab291f300ad0a704fbe142eae31a" dependencies = [ "clap_builder", ] [[package]] name = "clap_builder" -version = "4.5.46" +version = "4.5.57" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fecb53a0e6fcfb055f686001bc2e2592fa527efaf38dbe81a6a9563562e57d41" +checksum = "7b12c8b680195a62a8364d16b8447b01b6c2c8f9aaf68bee653be34d4245e238" dependencies = [ "anstyle", "clap_lex", @@ -373,15 +330,15 @@ dependencies = [ [[package]] name = "clap_lex" -version = "0.7.5" +version = "0.7.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b94f61472cee1439c0b966b47e3aca9ae07e45d070759512cd390ea2bebc6675" +checksum = "c3e64b0cc0439b12df2fa678eae89a1c56a529fd067a9115f7827f1fffd22b32" [[package]] name = "cmake" -version = "0.1.54" +version = "0.1.57" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7caa3f9de89ddbe2c607f4101924c5abec803763ae9534e4f4d7d8f84aa81f0" +checksum = "75443c44cd6b379beb8c5b45d85d0773baf31cce901fe7bb252f4eff3008ef7d" dependencies = [ "cc", ] @@ -496,15 +453,15 @@ checksum = "460fbee9c2c2f33933d720630a6a0bac33ba7053db5344fac858d4b8952d77d5" [[package]] name = "data-encoding" -version = "2.9.0" +version = "2.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a2330da5de22e8a3cb63252ce2abb30116bf5265e89c0e01bc17015ce30a476" +checksum = "d7a1e2f27636f116493b8b860f5546edb47c8d8f8ea73e1d2a20be88e28d1fea" [[package]] name = "deranged" -version = "0.4.0" +version = "0.5.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c9e6a11ca8224451684bc0d7d5a7adbf8f2fd6887261a1cfc3c0432f9d4068e" +checksum = "ececcb659e7ba858fb4f10388c250a7252eb0a27373f1a72b8748afdd248e587" dependencies = [ "powerfmt", ] @@ -565,12 +522,12 @@ checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" [[package]] name = "errno" -version = "0.3.13" +version = "0.3.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "778e2ac28f6c47af28e4907f13ffd1e1ddbd400980a9abd7c8df189bf578a5ad" +checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb" dependencies = [ "libc", - "windows-sys 0.60.2", + "windows-sys 0.61.2", ] [[package]] @@ -579,6 +536,12 @@ version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be" +[[package]] +name = "find-msvc-tools" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5baebc0774151f905a1a2cc41989300b1e6fbb29aff0ceffa1064fdd3088d582" + [[package]] name = "fnv" version = "1.0.7" @@ -675,40 +638,26 @@ dependencies = [ ] [[package]] -name = "generator" -version = "0.8.7" +name = "getrandom" +version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "605183a538e3e2a9c1038635cc5c2d194e2ee8fd0d1b66b8349fad7dbacce5a2" +checksum = "ff2abc00be7fca6ebc474524697ae276ad847ad0a6b3faa4bcb027e9a4614ad0" dependencies = [ - "cc", "cfg-if", "libc", - "log", - "rustversion", - "windows", + "wasi", ] [[package]] name = "getrandom" -version = "0.2.16" +version = "0.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "335ff9f135e4384c8150d6f27c6daed433577f86b4750418338c01a1a2528592" -dependencies = [ - "cfg-if", - "libc", - "wasi 0.11.1+wasi-snapshot-preview1", -] - -[[package]] -name = "getrandom" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26145e563e54f2cadc477553f1ec5ee650b00862f0a58bcd12cbdc5f0ea2d2f4" +checksum = "899def5c37c4fd7b2664648c28120ecec138e4d395b459e5ca34f9cce2dd77fd" dependencies = [ "cfg-if", "libc", "r-efi", - "wasi 0.14.3+wasi-0.2.4", + "wasip2", ] [[package]] @@ -719,19 +668,20 @@ checksum = "0cc23270f6e1808e30a928bdc84dea0b9b4136a8bc82338574f23baf47bbd280" [[package]] name = "half" -version = "2.6.0" +version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "459196ed295495a68f7d7fe1d84f6c4b7ff0e21fe3017b2f283c6fac3ad803c9" +checksum = "6ea2d84b969582b4b1864a92dc5d27cd2b77b622a8d79306834f1be5ba20d84b" dependencies = [ "cfg-if", "crunchy", + "zerocopy", ] [[package]] name = "hashbrown" -version = "0.15.5" +version = "0.16.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9229cfe53dfd69f0609a49f65461bd93001ea1ef889cd5529dd176593f5338a1" +checksum = "841d1cc9bed7f9236f321df977030373f4a4163ae1a7dbfe1a51a2c1a51d9100" [[package]] name = "heck" @@ -763,7 +713,7 @@ dependencies = [ "once_cell", "rand", "ring 0.17.14", - "thiserror 2.0.16", + "thiserror", "tinyvec", "tokio", "tracing", @@ -786,20 +736,11 @@ dependencies = [ "rand", "resolv-conf", "smallvec", - "thiserror 2.0.16", + "thiserror", "tokio", "tracing", ] -[[package]] -name = "home" -version = "0.5.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "589533453244b0995c858700322199b2becb13b627df2851f64a2775d024abcf" -dependencies = [ - "windows-sys 0.59.0", -] - [[package]] name = "http" version = "0.2.12" @@ -813,26 +754,25 @@ dependencies = [ [[package]] name = "http" -version = "1.3.1" +version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4a85d31aea989eead29a3aaf9e1115a180df8282431156e533de47660892565" +checksum = "e3ba2a386d7f85a81f119ad7498ebe444d2e22c2af0b86b069416ace48b3311a" dependencies = [ "bytes", - "fnv", "itoa", ] [[package]] name = "humantime" -version = "2.2.0" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b112acc8b3adf4b107a8ec20977da0273a8c386765a3ec0229bd500a1443f9f" +checksum = "135b12329e5e3ce057a9f972339ea52bc954fe1e9358ef27f95e89716fbc5424" [[package]] name = "icu_collections" -version = "2.0.0" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "200072f5d0e3614556f94a9930d5dc3e0662a652823904c3a75dc3b0af7fee47" +checksum = "4c6b649701667bbe825c3b7e6388cb521c23d88644678e83c0c4d0a621a34b43" dependencies = [ "displaydoc", "potential_utf", @@ -843,9 +783,9 @@ dependencies = [ [[package]] name = "icu_locale_core" -version = "2.0.0" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0cde2700ccaed3872079a65fb1a78f6c0a36c91570f28755dda67bc8f7d9f00a" +checksum = "edba7861004dd3714265b4db54a3c390e880ab658fec5f7db895fae2046b5bb6" dependencies = [ "displaydoc", "litemap", @@ -856,11 +796,10 @@ dependencies = [ [[package]] name = "icu_normalizer" -version = "2.0.0" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "436880e8e18df4d7bbc06d58432329d6458cc84531f7ac5f024e93deadb37979" +checksum = "5f6c8828b67bf8908d82127b2054ea1b4427ff0230ee9141c54251934ab1b599" dependencies = [ - "displaydoc", "icu_collections", "icu_normalizer_data", "icu_properties", @@ -871,42 +810,38 @@ dependencies = [ [[package]] name = "icu_normalizer_data" -version = "2.0.0" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00210d6893afc98edb752b664b8890f0ef174c8adbb8d0be9710fa66fbbf72d3" +checksum = "7aedcccd01fc5fe81e6b489c15b247b8b0690feb23304303a9e560f37efc560a" [[package]] name = "icu_properties" -version = "2.0.1" +version = "2.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "016c619c1eeb94efb86809b015c58f479963de65bdb6253345c1a1276f22e32b" +checksum = "020bfc02fe870ec3a66d93e677ccca0562506e5872c650f893269e08615d74ec" dependencies = [ - "displaydoc", "icu_collections", "icu_locale_core", "icu_properties_data", "icu_provider", - "potential_utf", "zerotrie", "zerovec", ] [[package]] name = "icu_properties_data" -version = "2.0.1" +version = "2.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "298459143998310acd25ffe6810ed544932242d3f07083eee1084d83a71bd632" +checksum = "616c294cf8d725c6afcd8f55abc17c56464ef6211f9ed59cccffe534129c77af" [[package]] name = "icu_provider" -version = "2.0.0" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03c80da27b5f4187909049ee2d72f276f0d9f99a42c306bd0131ecfe04d8e5af" +checksum = "85962cf0ce02e1e0a629cc34e7ca3e373ce20dda4c4d7294bbd0bf1fdb59e614" dependencies = [ "displaydoc", "icu_locale_core", - "stable_deref_trait", - "tinystr", "writeable", "yoke", "zerofrom", @@ -943,9 +878,9 @@ checksum = "e8a5a9a0ff0086c7a148acb942baaabeadf9504d10400b5a05645853729b9cd2" [[package]] name = "indexmap" -version = "2.11.0" +version = "2.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2481980430f9f78649238835720ddccc57e52df14ffce1c6f37391d61b563e9" +checksum = "7714e70437a7dc3ac8eb7e6f8df75fd8eb422675fc7678aff7364301092b1017" dependencies = [ "equivalent", "hashbrown", @@ -981,13 +916,13 @@ checksum = "469fb0b9cefa57e3ef31275ee7cacb78f2fdca44e4765491884a2b119d4eb130" [[package]] name = "is-terminal" -version = "0.4.16" +version = "0.4.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e04d7f318608d35d4b61ddd75cbdaee86b023ebe2bd5a66ee0915f0bf93095a9" +checksum = "3640c1c38b8e4e43584d8df18be5fc6b0aa314ce6ebf51b53313d4306cca8e46" dependencies = [ "hermit-abi", "libc", - "windows-sys 0.59.0", + "windows-sys 0.61.2", ] [[package]] @@ -999,15 +934,6 @@ dependencies = [ "either", ] -[[package]] -name = "itertools" -version = "0.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba291022dbbd398a455acf126c1e341954079855bc60dfdda641363bd6922569" -dependencies = [ - "either", -] - [[package]] name = "itertools" version = "0.14.0" @@ -1019,9 +945,9 @@ dependencies = [ [[package]] name = "itoa" -version = "1.0.15" +version = "1.0.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c" +checksum = "92ecc6618181def0457392ccd0ee51198e065e016d1d527a7ac1b6dc7c1f09d2" [[package]] name = "jobserver" @@ -1029,15 +955,15 @@ version = "0.1.34" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9afb3de4395d6b3e67a780b6de64b51c978ecf11cb9a462c66be7d4ca9039d33" dependencies = [ - "getrandom 0.3.3", + "getrandom 0.3.4", "libc", ] [[package]] name = "js-sys" -version = "0.3.77" +version = "0.3.85" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1cfaf33c695fc6e08064efbc1f72ec937429614f25eef83af942d0e227c3a28f" +checksum = "8c942ebf8e95485ca0d52d97da7c5a2c387d0e7f0ba4c35e93bfcaee045955b3" dependencies = [ "once_cell", "wasm-bindgen", @@ -1049,45 +975,23 @@ version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" -[[package]] -name = "lazycell" -version = "1.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55" - [[package]] name = "libc" -version = "0.2.178" +version = "0.2.180" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37c93d8daa9d8a012fd8ab92f088405fb202ea0b6ab73ee2482ae66af4f42091" - -[[package]] -name = "libloading" -version = "0.8.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07033963ba89ebaf1584d767badaa2e8fcec21aedea6b8c0346d487d49c28667" -dependencies = [ - "cfg-if", - "windows-targets 0.53.3", -] +checksum = "bcc35a38544a891a5f7c865aca548a982ccb3b8650a5b06d0fd33a10283c56fc" [[package]] name = "linux-raw-sys" -version = "0.4.15" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d26c52dbd32dccf2d10cac7725f8eae5296885fb5703b261f7d0a0739ec807ab" - -[[package]] -name = "linux-raw-sys" -version = "0.9.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd945864f07fe9f5371a27ad7b52a172b4b499999f1d97574c9fa68373937e12" +checksum = "df1d3c3b53da64cf5760482273a98e575c651a67eec7f77df96b5b642de8f039" [[package]] name = "litemap" -version = "0.8.0" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "241eaef5fd12c88705a01fc1066c48c4b36e0dd4377dcdc7ec3942cea7a69956" +checksum = "6373607a59f0be73a39b6fe456b8192fcc3585f602af20751600e974dd455e77" [[package]] name = "local-channel" @@ -1106,32 +1010,18 @@ version = "0.1.4" [[package]] name = "lock_api" -version = "0.4.13" +version = "0.4.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96936507f153605bddfcda068dd804796c84324ed2510809e5b2a624c81da765" +checksum = "224399e74b87b5f3557511d98dff8b14089b3dadafcab6bb93eab67d3aace965" dependencies = [ - "autocfg", "scopeguard", ] [[package]] name = "log" -version = "0.4.27" +version = "0.4.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13dc2df351e3202783a1fe0d44375f7295ffb4049267b0f3018346dc122a1d94" - -[[package]] -name = "loom" -version = "0.7.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "419e0dc8046cb947daa77eb95ae174acfbddb7673b4151f56d1eed8e93fbfaca" -dependencies = [ - "cfg-if", - "generator", - "scoped-tls", - "tracing", - "tracing-subscriber", -] +checksum = "5e5032e24019045c762d3c0f28f5b6b8bbf38563a65908389bf7978758920897" [[package]] name = "matchers" @@ -1148,12 +1038,6 @@ version = "2.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f52b00d39961fc5b2736ea853c9cc86238e165017a493d1d5c8eac6bdc4cc273" -[[package]] -name = "minimal-lexical" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" - [[package]] name = "mio" version = "1.1.1" @@ -1162,26 +1046,24 @@ checksum = "a69bcab0ad47271a0234d9422b131806bf3968021e5dc9328caf2d4cd58557fc" dependencies = [ "libc", "log", - "wasi 0.11.1+wasi-snapshot-preview1", + "wasi", "windows-sys 0.61.2", ] [[package]] name = "moka" -version = "0.12.10" +version = "0.12.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9321642ca94a4282428e6ea4af8cc2ca4eac48ac7a6a4ea8f33f76d0ce70926" +checksum = "b4ac832c50ced444ef6be0767a008b02c106a909ba79d1d830501e94b96f6b7e" dependencies = [ "crossbeam-channel", "crossbeam-epoch", "crossbeam-utils", - "loom", + "equivalent", "parking_lot", "portable-atomic", - "rustc_version", "smallvec", "tagptr", - "thiserror 1.0.69", "uuid", ] @@ -1194,7 +1076,7 @@ dependencies = [ "libc", "log", "openssl", - "openssl-probe", + "openssl-probe 0.1.6", "openssl-sys", "schannel", "security-framework 2.11.1", @@ -1202,30 +1084,20 @@ dependencies = [ "tempfile", ] -[[package]] -name = "nom" -version = "7.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a" -dependencies = [ - "memchr", - "minimal-lexical", -] - [[package]] name = "nu-ansi-term" -version = "0.50.1" +version = "0.50.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4a28e057d01f97e61255210fcff094d74ed0466038633e95017f5beb68e4399" +checksum = "7957b9740744892f114936ab4a57b3f487491bbeafaf8083688b16841a4240e5" dependencies = [ - "windows-sys 0.52.0", + "windows-sys 0.61.2", ] [[package]] name = "num-conv" -version = "0.1.0" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9" +checksum = "cf97ec579c3c42f953ef76dbf8d55ac91fb219dde70e49aa4a6b7d74e9919050" [[package]] name = "num-traits" @@ -1254,9 +1126,9 @@ checksum = "d6790f58c7ff633d8771f42965289203411a5e5c68388703c06e14f24770b41e" [[package]] name = "openssl" -version = "0.10.73" +version = "0.10.75" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8505734d46c8ab1e19a1dce3aef597ad87dcb4c37e7188231769bd6bd51cebf8" +checksum = "08838db121398ad17ab8531ce9de97b244589089e290a384c900cb9ff7434328" dependencies = [ "bitflags 2.10.0", "cfg-if", @@ -1285,10 +1157,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d05e27ee213611ffe7d6348b942e8f942b37114c00cc03cec254295a4a17852e" [[package]] -name = "openssl-sys" -version = "0.9.109" +name = "openssl-probe" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90096e2e47630d78b7d1c20952dc621f957103f8bc2c8359ec81290d75238571" +checksum = "7c87def4c32ab89d880effc9e097653c8da5d6ef28e6b539d313baaacfbafcbe" + +[[package]] +name = "openssl-sys" +version = "0.9.111" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "82cab2d520aa75e3c58898289429321eb788c3106963d0dc886ec7a5f4adc321" dependencies = [ "cc", "libc", @@ -1298,9 +1176,9 @@ dependencies = [ [[package]] name = "parking_lot" -version = "0.12.4" +version = "0.12.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70d58bf43669b5795d1576d0641cfb6fbb2057bf629506267a92807158584a13" +checksum = "93857453250e3077bd71ff98b6a65ea6621a19bb0f559a85248955ac12c45a1a" dependencies = [ "lock_api", "parking_lot_core", @@ -1308,25 +1186,25 @@ dependencies = [ [[package]] name = "parking_lot_core" -version = "0.9.11" +version = "0.9.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc838d2a56b5b1a6c25f55575dfc605fabb63bb2365f6c2353ef9159aa69e4a5" +checksum = "2621685985a2ebf1c516881c026032ac7deafcda1a2c9b7850dc81e3dfcb64c1" dependencies = [ "cfg-if", "libc", "redox_syscall", "smallvec", - "windows-targets 0.52.6", + "windows-link", ] [[package]] name = "pem" -version = "3.0.5" +version = "3.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38af38e8470ac9dee3ce1bae1af9c1671fffc44ddfd8bd1d0a3445bf349a8ef3" +checksum = "1d30c53c26bc5b31a98cd02d20f25a7c8567146caf63ed593a9d87b2775291be" dependencies = [ "base64 0.22.1", - "serde", + "serde_core", ] [[package]] @@ -1403,15 +1281,15 @@ dependencies = [ [[package]] name = "portable-atomic" -version = "1.11.1" +version = "1.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f84267b20a16ea918e43c6a88433c2d54fa145c92a811b5b047ccbe153674483" +checksum = "c33a9471896f1c69cecef8d20cbe2f7accd12527ce60845ff44c153bb2a21b49" [[package]] name = "potential_utf" -version = "0.1.3" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "84df19adbe5b5a0782edcab45899906947ab039ccf4573713735ee7de1e6b08a" +checksum = "b73949432f5e2a09657003c25bca5e19a0e9c84f8058ca374f49e0ebe605af77" dependencies = [ "zerovec", ] @@ -1441,16 +1319,6 @@ dependencies = [ "log", ] -[[package]] -name = "prettyplease" -version = "0.2.37" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "479ca8adacdd7ce8f1fb39ce9ecccbfe93a3f1344b3d0d97f20bc0196208f62b" -dependencies = [ - "proc-macro2", - "syn", -] - [[package]] name = "proc-macro2" version = "1.0.106" @@ -1497,11 +1365,11 @@ dependencies = [ [[package]] name = "rand_core" -version = "0.9.3" +version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "99d9a13982dcf210057a8a78572b2217b667c3beacbf3a0d8b454f6f82837d38" +checksum = "76afc826de14238e6e8c374ddcc1fa19e374fd8dd986b0d2af0d02377261d83c" dependencies = [ - "getrandom 0.3.3", + "getrandom 0.3.4", ] [[package]] @@ -1539,18 +1407,18 @@ dependencies = [ [[package]] name = "redox_syscall" -version = "0.5.17" +version = "0.5.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5407465600fb0548f1442edf71dd20683c6ed326200ace4b1ef0763521bb3b77" +checksum = "ed2bf2547551a7053d6fdfafda3f938979645c44812fbfcda098faae3f1a362d" dependencies = [ "bitflags 2.10.0", ] [[package]] name = "regex" -version = "1.11.2" +version = "1.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23d7fd106d8c02486a8d64e778353d1cffe08ce79ac2e82f540c86d0facf6912" +checksum = "e10754a14b9137dd7b1e3e5b0493cc9171fdd105e0ab477f51b72e7f3ac0e276" dependencies = [ "aho-corasick", "memchr", @@ -1560,9 +1428,9 @@ dependencies = [ [[package]] name = "regex-automata" -version = "0.4.10" +version = "0.4.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b9458fa0bfeeac22b5ca447c63aaf45f28439a709ccd244698632f9aa6394d6" +checksum = "6e1dd4122fc1595e8162618945476892eefca7b88c52820e74af6262213cae8f" dependencies = [ "aho-corasick", "memchr", @@ -1571,15 +1439,15 @@ dependencies = [ [[package]] name = "regex-syntax" -version = "0.8.6" +version = "0.8.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "caf4aa5b0f434c91fe5c7f1ecb6a5ece2130b02ad2a590589dda5146df959001" +checksum = "a96887878f22d7bad8a3b6dc5b7440e0ada9a245242924394987b21cf2210a4c" [[package]] name = "resolv-conf" -version = "0.7.4" +version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95325155c684b1c89f7765e30bc1c42e4a6da51ca513615660cb8a62ef9a88e3" +checksum = "1e061d1b48cb8d38042de4ae0a7a6401009d6143dc80d2e2d6f31f0bdd6470c7" [[package]] name = "ring" @@ -1604,51 +1472,23 @@ checksum = "a4689e6c2294d81e88dc6261c768b63bc4fcdb852be6d1352498b114f61383b7" dependencies = [ "cc", "cfg-if", - "getrandom 0.2.16", + "getrandom 0.2.17", "libc", "untrusted 0.9.0", "windows-sys 0.52.0", ] -[[package]] -name = "rustc-hash" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" - -[[package]] -name = "rustc_version" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92" -dependencies = [ - "semver", -] - [[package]] name = "rustix" -version = "0.38.44" +version = "1.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fdb5bc1ae2baa591800df16c9ca78619bf65c0488b41b96ccec5d11220d8c154" +checksum = "146c9e247ccc180c1f61615433868c99f3de3ae256a30a43b49f67c2d9171f34" dependencies = [ "bitflags 2.10.0", "errno", "libc", - "linux-raw-sys 0.4.15", - "windows-sys 0.59.0", -] - -[[package]] -name = "rustix" -version = "1.0.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11181fbabf243db407ef8df94a6ce0b2f9a733bd8be4ad02b4eda9602296cac8" -dependencies = [ - "bitflags 2.10.0", - "errno", - "libc", - "linux-raw-sys 0.9.4", - "windows-sys 0.60.2", + "linux-raw-sys", + "windows-sys 0.61.2", ] [[package]] @@ -1691,15 +1531,15 @@ dependencies = [ [[package]] name = "rustls" -version = "0.23.31" +version = "0.23.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0ebcbd2f03de0fc1122ad9bb24b127a5a6cd51d72604a3f3c50ac459762b6cc" +checksum = "c665f33d38cea657d9614f766881e4d510e0eda4239891eea56b4cadcf01801b" dependencies = [ "aws-lc-rs", "log", "once_cell", "rustls-pki-types", - "rustls-webpki 0.103.4", + "rustls-webpki 0.103.9", "subtle", "zeroize", ] @@ -1710,7 +1550,7 @@ version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a9aace74cb666635c918e9c12bc0d348266037aa8eb599b5cba565709a8dff00" dependencies = [ - "openssl-probe", + "openssl-probe 0.1.6", "rustls-pemfile 1.0.4", "schannel", "security-framework 2.11.1", @@ -1718,11 +1558,11 @@ dependencies = [ [[package]] name = "rustls-native-certs" -version = "0.8.1" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7fcff2dd52b58a8d98a70243663a0d234c4e2b79235637849d15913394a247d3" +checksum = "612460d5f7bea540c490b2b6395d8e34a953e52b491accd6c86c8164c5932a63" dependencies = [ - "openssl-probe", + "openssl-probe 0.2.1", "rustls-pki-types", "schannel", "security-framework 3.5.1", @@ -1748,9 +1588,9 @@ dependencies = [ [[package]] name = "rustls-pki-types" -version = "1.12.0" +version = "1.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "229a4a4c221013e7e1f1a043678c5cc39fe5171437c88fb47151a21e6f5b5c79" +checksum = "be040f8b0a225e40375822a563fa9524378b9d63112f53e19ffff34df5d33fdd" dependencies = [ "zeroize", ] @@ -1778,9 +1618,9 @@ dependencies = [ [[package]] name = "rustls-webpki" -version = "0.103.4" +version = "0.103.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0a17884ae0c1b773f1ccd2bd4a8c72f16da897310a98b0e84bf349ad5ead92fc" +checksum = "d7df23109aa6c1567d1c575b9952556388da57401e4ace1d15f79eedad0d8f53" dependencies = [ "aws-lc-rs", "ring 0.17.14", @@ -1811,19 +1651,13 @@ dependencies = [ [[package]] name = "schannel" -version = "0.1.27" +version = "0.1.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f29ebaa345f945cec9fbbc532eb307f0fdad8161f281b6369539c8d84876b3d" +checksum = "891d81b926048e76efe18581bf793546b4c0eaf8448d72be8de2bbee5fd166e1" dependencies = [ - "windows-sys 0.59.0", + "windows-sys 0.61.2", ] -[[package]] -name = "scoped-tls" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e1cf6437eb19a8f4a6cc0f7dca544973b0b78843adbfeb3683d1a94a0024a294" - [[package]] name = "scopeguard" version = "1.2.0" @@ -1876,17 +1710,11 @@ dependencies = [ "libc", ] -[[package]] -name = "semver" -version = "1.0.27" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d767eb0aabc880b29956c35734170f26ed551a859dbd361d140cdbeca61ab1e2" - [[package]] name = "serde" -version = "1.0.221" +version = "1.0.228" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "341877e04a22458705eb4e131a1508483c877dca2792b3781d4e5d8a6019ec43" +checksum = "9a8e94ea7f378bd32cbbd37198a4a91436180c5bb472411e48b5ec2e2124ae9e" dependencies = [ "serde_core", "serde_derive", @@ -1894,18 +1722,18 @@ dependencies = [ [[package]] name = "serde_core" -version = "1.0.221" +version = "1.0.228" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c459bc0a14c840cb403fc14b148620de1e0778c96ecd6e0c8c3cacb6d8d00fe" +checksum = "41d385c7d4ca58e59fc732af25c3983b67ac852c1a25000afe1175de458b67ad" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.221" +version = "1.0.228" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6185cf75117e20e62b1ff867b9518577271e58abe0037c40bb4794969355ab0" +checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79" dependencies = [ "proc-macro2", "quote", @@ -1927,11 +1755,11 @@ dependencies = [ [[package]] name = "serde_spanned" -version = "1.0.0" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "40734c41988f7306bb04f0ecf60ec0f3f1caa34290e4e8ea471dcd3346483b83" +checksum = "f8bbf91e5a4d6315eee45e704372590b30e260ee83af6639d64557f51b067776" dependencies = [ - "serde", + "serde_core", ] [[package]] @@ -1951,10 +1779,11 @@ checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" [[package]] name = "signal-hook-registry" -version = "1.4.6" +version = "1.4.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2a4719bff48cee6b39d12c020eeb490953ad2443b7055bd0b21fca26bd8c28b" +checksum = "c4db69cba1110affc0e9f7bcd48bbf87b3f4fc7c61fc9155afd4c469eb3d6c1b" dependencies = [ + "errno", "libc", ] @@ -2008,9 +1837,9 @@ checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d" [[package]] name = "stable_deref_trait" -version = "1.2.0" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" +checksum = "6ce2be8dc25455e1f91df71bfa12ad37d7af1092ae736f3a6cd0e37bc7810596" [[package]] name = "static_assertions" @@ -2060,15 +1889,15 @@ checksum = "591ef38edfb78ca4771ee32cf494cb8771944bee237a9b91fc9c1424ac4b777b" [[package]] name = "tempfile" -version = "3.21.0" +version = "3.24.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "15b61f8f20e3a6f7e0649d825294eaf317edce30f82cf6026e7e4cb9222a7d1e" +checksum = "655da9c7eb6305c55742045d5a8d2037996d61d8de95806335c7c86ce0f82e9c" dependencies = [ "fastrand", - "getrandom 0.3.3", + "getrandom 0.3.4", "once_cell", - "rustix 1.0.8", - "windows-sys 0.60.2", + "rustix", + "windows-sys 0.61.2", ] [[package]] @@ -2082,38 +1911,18 @@ dependencies = [ [[package]] name = "thiserror" -version = "1.0.69" +version = "2.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52" +checksum = "4288b5bcbc7920c07a1149a35cf9590a2aa808e0bc1eafaade0b80947865fbc4" dependencies = [ - "thiserror-impl 1.0.69", -] - -[[package]] -name = "thiserror" -version = "2.0.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3467d614147380f2e4e374161426ff399c91084acd2363eaf549172b3d5e60c0" -dependencies = [ - "thiserror-impl 2.0.16", + "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.69" +version = "2.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "thiserror-impl" -version = "2.0.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c5e1be1c48b9172ee610da68fd9cd2770e7a4056cb3fc98710ee6906f0c7960" +checksum = "ebc4ee7f67670e9b64d05fa4253e753e016c6c95ff35b89b7941d6b856dec1d5" dependencies = [ "proc-macro2", "quote", @@ -2131,28 +1940,28 @@ dependencies = [ [[package]] name = "time" -version = "0.3.41" +version = "0.3.46" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a7619e19bc266e0f9c5e6686659d394bc57973859340060a69221e57dbc0c40" +checksum = "9da98b7d9b7dad93488a84b8248efc35352b0b2657397d4167e7ad67e5d535e5" dependencies = [ "deranged", "num-conv", "powerfmt", - "serde", + "serde_core", "time-core", ] [[package]] name = "time-core" -version = "0.1.4" +version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c9e9a38711f559d9e3ce1cdb06dd7c5b8ea546bc90052da6d06bb76da74bb07c" +checksum = "7694e1cfe791f8d31026952abf09c69ca6f6fa4e1a1229e18988f06a04a12dca" [[package]] name = "tinystr" -version = "0.8.1" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d4f6d1145dcb577acf783d4e601bc1d76a13337bb54e6233add580b07344c8b" +checksum = "42d3e9c45c09de15d06dd8acf5f4e0e399e85927b7f00711024eb7ae10fa4869" dependencies = [ "displaydoc", "zerovec", @@ -2266,19 +2075,19 @@ dependencies = [ [[package]] name = "tokio-rustls" -version = "0.26.2" +version = "0.26.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e727b36a1a0e8b74c376ac2211e40c2c8af09fb4013c60d910495810f008e9b" +checksum = "1729aa945f29d91ba541258c8df89027d5792d85a8841fb65e8bf0f4ede4ef61" dependencies = [ - "rustls 0.23.31", + "rustls 0.23.36", "tokio", ] [[package]] name = "tokio-stream" -version = "0.1.17" +version = "0.1.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eca58d7bba4a75707817a2c44174253f9236b2d5fbd055602e9d5c07c139a047" +checksum = "32da49809aab5c3bc678af03902d4ccddea2a87d028d86392a4b1560c6906c70" dependencies = [ "futures-core", "pin-project-lite", @@ -2325,12 +2134,12 @@ dependencies = [ [[package]] name = "toml" -version = "0.9.5" +version = "0.9.11+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75129e1dc5000bfbaa9fee9d1b21f974f9fbad9daec557a521ee6e080825f6e8" +checksum = "f3afc9a848309fe1aaffaed6e1546a7a14de1f935dc9d89d32afd9a44bab7c46" dependencies = [ "indexmap", - "serde", + "serde_core", "serde_spanned", "toml_datetime", "toml_parser", @@ -2340,27 +2149,27 @@ dependencies = [ [[package]] name = "toml_datetime" -version = "0.7.0" +version = "0.7.5+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bade1c3e902f58d73d3f294cd7f20391c1cb2fbcb643b73566bc773971df91e3" +checksum = "92e1cfed4a3038bc5a127e35a2d360f145e1f4b971b551a2ba5fd7aedf7e1347" dependencies = [ - "serde", + "serde_core", ] [[package]] name = "toml_parser" -version = "1.0.2" +version = "1.0.6+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b551886f449aa90d4fe2bdaa9f4a2577ad2dde302c61ecf262d80b116db95c10" +checksum = "a3198b4b0a8e11f09dd03e133c0280504d0801269e9afa46362ffde1cbeebf44" dependencies = [ "winnow", ] [[package]] name = "toml_writer" -version = "1.0.2" +version = "1.0.6+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fcc842091f2def52017664b53082ecbbeb5c7731092bad69d2c63050401dfd64" +checksum = "ab16f14aed21ee8bfd8ec22513f7287cd4a91aa92e44edfe2c17ddd004e92607" [[package]] name = "tracing" @@ -2451,9 +2260,9 @@ dependencies = [ [[package]] name = "unicode-ident" -version = "1.0.18" +version = "1.0.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a5f39404a5da50712a4c1eecf25e90dd62b613502b7e925fd4e4d19b5c96512" +checksum = "9312f7c4f6ff9069b165498234ce8be658059c6728633667c526e27dc2cf1df5" [[package]] name = "untrusted" @@ -2469,9 +2278,9 @@ checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" [[package]] name = "url" -version = "2.5.7" +version = "2.5.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08bc136a29a3d1758e07a9cca267be308aeebf5cfd5a10f3f67ab2097683ef5b" +checksum = "ff67a8a4397373c3ef660812acab3268222035010ab8680ec4215f38ba3d0eed" dependencies = [ "form_urlencoded", "idna", @@ -2487,11 +2296,11 @@ checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" [[package]] name = "uuid" -version = "1.18.1" +version = "1.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f87b8aa10b915a06587d0dec516c282ff295b475d94abf425d62b57710070a2" +checksum = "ee48d38b119b0cd71fe4141b30f5ba9c7c5d9f4e7a3a8b4a674e4b6ef789976f" dependencies = [ - "getrandom 0.3.3", + "getrandom 0.3.4", "js-sys", "wasm-bindgen", ] @@ -2531,45 +2340,32 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b" [[package]] -name = "wasi" -version = "0.14.3+wasi-0.2.4" +name = "wasip2" +version = "1.0.2+wasi-0.2.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a51ae83037bdd272a9e28ce236db8c07016dd0d50c27038b3f407533c030c95" +checksum = "9517f9239f02c069db75e65f174b3da828fe5f5b945c4dd26bd25d89c03ebcf5" dependencies = [ "wit-bindgen", ] [[package]] name = "wasm-bindgen" -version = "0.2.100" +version = "0.2.108" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1edc8929d7499fc4e8f0be2262a241556cfc54a0bea223790e71446f2aab1ef5" +checksum = "64024a30ec1e37399cf85a7ffefebdb72205ca1c972291c51512360d90bd8566" dependencies = [ "cfg-if", "once_cell", "rustversion", "wasm-bindgen-macro", -] - -[[package]] -name = "wasm-bindgen-backend" -version = "0.2.100" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f0a0651a5c2bc21487bde11ee802ccaf4c51935d0d3d42a6101f98161700bc6" -dependencies = [ - "bumpalo", - "log", - "proc-macro2", - "quote", - "syn", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-macro" -version = "0.2.100" +version = "0.2.108" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7fe63fc6d09ed3792bd0897b314f53de8e16568c2b3f7982f468c0bf9bd0b407" +checksum = "008b239d9c740232e71bd39e8ef6429d27097518b6b30bdf9086833bd5b6d608" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -2577,31 +2373,31 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.100" +version = "0.2.108" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ae87ea40c9f689fc23f209965b6fb8a99ad69aeeb0231408be24920604395de" +checksum = "5256bae2d58f54820e6490f9839c49780dff84c65aeab9e772f15d5f0e913a55" dependencies = [ + "bumpalo", "proc-macro2", "quote", "syn", - "wasm-bindgen-backend", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.100" +version = "0.2.108" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a05d73b933a847d6cccdda8f838a22ff101ad9bf93e33684f39c1f5f0eece3d" +checksum = "1f01b580c9ac74c8d8f0c0e4afb04eeef2acf145458e52c03845ee9cd23e3d12" dependencies = [ "unicode-ident", ] [[package]] name = "web-sys" -version = "0.3.77" +version = "0.3.85" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33b6dd2ef9186f1f2072e409e99cd22a975331a6b3591b12c764e0e55c60d5d2" +checksum = "312e32e551d92129218ea9a2452120f4aabc03529ef03e4d0d82fb2780608598" dependencies = [ "js-sys", "wasm-bindgen", @@ -2638,35 +2434,23 @@ version = "0.26.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "521bc38abb08001b01866da9f51eb7c5d647a19260e00054a8c7fd5f9e57f7a9" dependencies = [ - "webpki-roots 1.0.2", + "webpki-roots 1.0.6", ] [[package]] name = "webpki-roots" -version = "1.0.2" +version = "1.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e8983c3ab33d6fb807cfcdad2491c4ea8cbc8ed839181c7dfd9c67c83e261b2" +checksum = "22cfaf3c063993ff62e73cb4311efde4db1efb31ab78a3e5c457939ad5cc0bed" dependencies = [ "rustls-pki-types", ] -[[package]] -name = "which" -version = "4.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87ba24419a2078cd2b0f2ede2691b6c66d8e47836da3b6db8265ebad47afbfc7" -dependencies = [ - "either", - "home", - "once_cell", - "rustix 0.38.44", -] - [[package]] name = "widestring" -version = "1.2.0" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd7cf3379ca1aac9eea11fba24fd7e315d621f8dfe35c8d7d2be8b793726e07d" +checksum = "72069c3113ab32ab29e5584db3c6ec55d416895e60715417b5b883a357c3e471" [[package]] name = "winapi" @@ -2686,11 +2470,11 @@ checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" [[package]] name = "winapi-util" -version = "0.1.10" +version = "0.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0978bf7171b3d90bac376700cb56d606feb40f251a475a5d6634613564460b22" +checksum = "c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22" dependencies = [ - "windows-sys 0.60.2", + "windows-sys 0.61.2", ] [[package]] @@ -2699,114 +2483,12 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" -[[package]] -name = "windows" -version = "0.61.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9babd3a767a4c1aef6900409f85f5d53ce2544ccdfaa86dad48c91782c6d6893" -dependencies = [ - "windows-collections", - "windows-core", - "windows-future", - "windows-link 0.1.3", - "windows-numerics", -] - -[[package]] -name = "windows-collections" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3beeceb5e5cfd9eb1d76b381630e82c4241ccd0d27f1a39ed41b2760b255c5e8" -dependencies = [ - "windows-core", -] - -[[package]] -name = "windows-core" -version = "0.61.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0fdd3ddb90610c7638aa2b3a3ab2904fb9e5cdbecc643ddb3647212781c4ae3" -dependencies = [ - "windows-implement", - "windows-interface", - "windows-link 0.1.3", - "windows-result", - "windows-strings", -] - -[[package]] -name = "windows-future" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc6a41e98427b19fe4b73c550f060b59fa592d7d686537eebf9385621bfbad8e" -dependencies = [ - "windows-core", - "windows-link 0.1.3", - "windows-threading", -] - -[[package]] -name = "windows-implement" -version = "0.60.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a47fddd13af08290e67f4acabf4b459f647552718f683a7b415d290ac744a836" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "windows-interface" -version = "0.59.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd9211b69f8dcdfa817bfd14bf1c97c9188afa36f4750130fcdf3f400eca9fa8" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "windows-link" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e6ad25900d524eaabdbbb96d20b4311e1e7ae1699af4fb28c17ae66c80d798a" - [[package]] name = "windows-link" version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5" -[[package]] -name = "windows-numerics" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9150af68066c4c5c07ddc0ce30421554771e528bde427614c61038bc2c92c2b1" -dependencies = [ - "windows-core", - "windows-link 0.1.3", -] - -[[package]] -name = "windows-result" -version = "0.3.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56f42bd332cc6c8eac5af113fc0c1fd6a8fd2aa08a0119358686e5160d0586c6" -dependencies = [ - "windows-link 0.1.3", -] - -[[package]] -name = "windows-strings" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56e6c93f3a0c3b36176cb1327a4958a0353d5d166c2a35cb268ace15e91d3b57" -dependencies = [ - "windows-link 0.1.3", -] - [[package]] name = "windows-sys" version = "0.48.0" @@ -2825,22 +2507,13 @@ dependencies = [ "windows-targets 0.52.6", ] -[[package]] -name = "windows-sys" -version = "0.59.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" -dependencies = [ - "windows-targets 0.52.6", -] - [[package]] name = "windows-sys" version = "0.60.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f2f500e4d28234f72040990ec9d39e3a6b950f9f22d3dba18416c35882612bcb" dependencies = [ - "windows-targets 0.53.3", + "windows-targets 0.53.5", ] [[package]] @@ -2849,7 +2522,7 @@ version = "0.61.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ae137229bcbd6cdf0f7b80a31df61766145077ddf49416a728b02cb3921ff3fc" dependencies = [ - "windows-link 0.2.1", + "windows-link", ] [[package]] @@ -2885,28 +2558,19 @@ dependencies = [ [[package]] name = "windows-targets" -version = "0.53.3" +version = "0.53.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d5fe6031c4041849d7c496a8ded650796e7b6ecc19df1a431c1a363342e5dc91" +checksum = "4945f9f551b88e0d65f3db0bc25c33b8acea4d9e41163edf90dcd0b19f9069f3" dependencies = [ - "windows-link 0.1.3", - "windows_aarch64_gnullvm 0.53.0", - "windows_aarch64_msvc 0.53.0", - "windows_i686_gnu 0.53.0", - "windows_i686_gnullvm 0.53.0", - "windows_i686_msvc 0.53.0", - "windows_x86_64_gnu 0.53.0", - "windows_x86_64_gnullvm 0.53.0", - "windows_x86_64_msvc 0.53.0", -] - -[[package]] -name = "windows-threading" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b66463ad2e0ea3bbf808b7f1d371311c80e115c0b71d60efc142cafbcfb057a6" -dependencies = [ - "windows-link 0.1.3", + "windows-link", + "windows_aarch64_gnullvm 0.53.1", + "windows_aarch64_msvc 0.53.1", + "windows_i686_gnu 0.53.1", + "windows_i686_gnullvm 0.53.1", + "windows_i686_msvc 0.53.1", + "windows_x86_64_gnu 0.53.1", + "windows_x86_64_gnullvm 0.53.1", + "windows_x86_64_msvc 0.53.1", ] [[package]] @@ -2923,9 +2587,9 @@ checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" [[package]] name = "windows_aarch64_gnullvm" -version = "0.53.0" +version = "0.53.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "86b8d5f90ddd19cb4a147a5fa63ca848db3df085e25fee3cc10b39b6eebae764" +checksum = "a9d8416fa8b42f5c947f8482c43e7d89e73a173cead56d044f6a56104a6d1b53" [[package]] name = "windows_aarch64_msvc" @@ -2941,9 +2605,9 @@ checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" [[package]] name = "windows_aarch64_msvc" -version = "0.53.0" +version = "0.53.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c7651a1f62a11b8cbd5e0d42526e55f2c99886c77e007179efff86c2b137e66c" +checksum = "b9d782e804c2f632e395708e99a94275910eb9100b2114651e04744e9b125006" [[package]] name = "windows_i686_gnu" @@ -2959,9 +2623,9 @@ checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" [[package]] name = "windows_i686_gnu" -version = "0.53.0" +version = "0.53.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1dc67659d35f387f5f6c479dc4e28f1d4bb90ddd1a5d3da2e5d97b42d6272c3" +checksum = "960e6da069d81e09becb0ca57a65220ddff016ff2d6af6a223cf372a506593a3" [[package]] name = "windows_i686_gnullvm" @@ -2971,9 +2635,9 @@ checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" [[package]] name = "windows_i686_gnullvm" -version = "0.53.0" +version = "0.53.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ce6ccbdedbf6d6354471319e781c0dfef054c81fbc7cf83f338a4296c0cae11" +checksum = "fa7359d10048f68ab8b09fa71c3daccfb0e9b559aed648a8f95469c27057180c" [[package]] name = "windows_i686_msvc" @@ -2989,9 +2653,9 @@ checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" [[package]] name = "windows_i686_msvc" -version = "0.53.0" +version = "0.53.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "581fee95406bb13382d2f65cd4a908ca7b1e4c2f1917f143ba16efe98a589b5d" +checksum = "1e7ac75179f18232fe9c285163565a57ef8d3c89254a30685b57d83a38d326c2" [[package]] name = "windows_x86_64_gnu" @@ -3007,9 +2671,9 @@ checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" [[package]] name = "windows_x86_64_gnu" -version = "0.53.0" +version = "0.53.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e55b5ac9ea33f2fc1716d1742db15574fd6fc8dadc51caab1c16a3d3b4190ba" +checksum = "9c3842cdd74a865a8066ab39c8a7a473c0778a3f29370b5fd6b4b9aa7df4a499" [[package]] name = "windows_x86_64_gnullvm" @@ -3025,9 +2689,9 @@ checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" [[package]] name = "windows_x86_64_gnullvm" -version = "0.53.0" +version = "0.53.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0a6e035dd0599267ce1ee132e51c27dd29437f63325753051e71dd9e42406c57" +checksum = "0ffa179e2d07eee8ad8f57493436566c7cc30ac536a3379fdf008f47f6bb7ae1" [[package]] name = "windows_x86_64_msvc" @@ -3043,15 +2707,15 @@ checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" [[package]] name = "windows_x86_64_msvc" -version = "0.53.0" +version = "0.53.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "271414315aff87387382ec3d271b52d7ae78726f5d44ac98b4f4030c91880486" +checksum = "d6bbff5f0aada427a1e5a6da5f1f98158182f26556f345ac9e04d36d0ebed650" [[package]] name = "winnow" -version = "0.7.13" +version = "0.7.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21a0236b59786fed61e2a80582dd500fe61f18b5dca67a4a067d0bc9039339cf" +checksum = "5a5364e9d77fcdeeaa6062ced926ee3381faa2ee02d3eb83a5c27a8825540829" [[package]] name = "winreg" @@ -3065,15 +2729,15 @@ dependencies = [ [[package]] name = "wit-bindgen" -version = "0.45.0" +version = "0.51.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "052283831dbae3d879dc7f51f3d92703a316ca49f91540417d38591826127814" +checksum = "d7249219f66ced02969388cf2bb044a09756a083d0fab1e566056b04d9fbcaa5" [[package]] name = "writeable" -version = "0.6.1" +version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea2f10b9bb0928dfb1b42b65e1f9e36f7f54dbdf08457afefb38afcdec4fa2bb" +checksum = "9edde0db4769d2dc68579893f2306b26c6ecfbe0ef499b013d731b7b9247e0b9" [[package]] name = "yasna" @@ -3086,11 +2750,10 @@ dependencies = [ [[package]] name = "yoke" -version = "0.8.0" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f41bb01b8226ef4bfd589436a297c53d118f65921786300e427be8d487695cc" +checksum = "72d6e5c6afb84d73944e5cedb052c4680d5657337201555f9f2a16b7406d4954" dependencies = [ - "serde", "stable_deref_trait", "yoke-derive", "zerofrom", @@ -3098,9 +2761,9 @@ dependencies = [ [[package]] name = "yoke-derive" -version = "0.8.0" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38da3c9736e16c5d3c8c597a9aaa5d1fa565d0532ae05e27c24aa62fb32c0ab6" +checksum = "b659052874eb698efe5b9e8cf382204678a0086ebf46982b79d6ca3182927e5d" dependencies = [ "proc-macro2", "quote", @@ -3110,18 +2773,18 @@ dependencies = [ [[package]] name = "zerocopy" -version = "0.8.26" +version = "0.8.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1039dd0d3c310cf05de012d8a39ff557cb0d23087fd44cad61df08fc31907a2f" +checksum = "57cf3aa6855b23711ee9852dfc97dfaa51c45feaba5b645d0c777414d494a961" dependencies = [ "zerocopy-derive", ] [[package]] name = "zerocopy-derive" -version = "0.8.26" +version = "0.8.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ecf5b4cc5364572d7f4c329661bcc82724222973f2cab6f050a4e5c22f75181" +checksum = "8a616990af1a287837c4fe6596ad77ef57948f787e46ce28e166facc0cc1cb75" dependencies = [ "proc-macro2", "quote", @@ -3151,15 +2814,15 @@ dependencies = [ [[package]] name = "zeroize" -version = "1.8.1" +version = "1.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ced3678a2879b30306d323f4542626697a464a97c0a07c9aebf7ebca65cd4dde" +checksum = "b97154e67e32c85465826e8bcc1c59429aaaf107c1e4a9e53c8d8ccd5eff88d0" [[package]] name = "zerotrie" -version = "0.2.2" +version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "36f0bbd478583f79edad978b407914f61b2972f5af6fa089686016be8f9af595" +checksum = "2a59c17a5562d507e4b54960e8569ebee33bee890c70aa3fe7b97e85a9fd7851" dependencies = [ "displaydoc", "yoke", @@ -3168,9 +2831,9 @@ dependencies = [ [[package]] name = "zerovec" -version = "0.11.4" +version = "0.11.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7aa2bd55086f1ab526693ecbe444205da57e25f4489879da80635a46d90e73b" +checksum = "6c28719294829477f525be0186d13efa9a3c602f7ec202ca9e353d310fb9a002" dependencies = [ "yoke", "zerofrom", @@ -3179,9 +2842,9 @@ dependencies = [ [[package]] name = "zerovec-derive" -version = "0.11.1" +version = "0.11.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b96237efa0c878c64bd89c436f661be4e46b2f3eff1ebb976f7ef2321d2f58f" +checksum = "eadce39539ca5cb3985590102671f2567e659fca9666581ad3411d59207951f3" dependencies = [ "proc-macro2", "quote", @@ -3190,6 +2853,6 @@ dependencies = [ [[package]] name = "zmij" -version = "1.0.2" +version = "1.0.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f4a4e8e9dc5c62d159f04fcdbe07f4c3fb710415aab4754bf11505501e3251d" +checksum = "3ff05f8caa9038894637571ae6b9e29466c1f4f829d26c9b28f869a29cbe3445" From 1e07dce27e49489a7795898b827151d14e17045e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 7 Feb 2026 08:01:46 +0900 Subject: [PATCH 409/410] build(deps): bump time from 0.3.46 to 0.3.47 (#812) Bumps [time](https://github.com/time-rs/time) from 0.3.46 to 0.3.47. - [Release notes](https://github.com/time-rs/time/releases) - [Changelog](https://github.com/time-rs/time/blob/main/CHANGELOG.md) - [Commits](https://github.com/time-rs/time/compare/v0.3.46...v0.3.47) --- updated-dependencies: - dependency-name: time dependency-version: 0.3.47 dependency-type: indirect ... 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 23d4ebeb..8f51bb29 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1940,9 +1940,9 @@ dependencies = [ [[package]] name = "time" -version = "0.3.46" +version = "0.3.47" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9da98b7d9b7dad93488a84b8248efc35352b0b2657397d4167e7ad67e5d535e5" +checksum = "743bd48c283afc0388f9b8827b976905fb217ad9e647fae3a379a9283c4def2c" dependencies = [ "deranged", "num-conv", From 2c401e08e401717448126d581d883bde15ff0743 Mon Sep 17 00:00:00 2001 From: Yuki Okushi Date: Sun, 8 Feb 2026 09:51:23 +0900 Subject: [PATCH 410/410] feat(rt): accept shared tokio runtimes in with_tokio_rt (#811) --- actix-rt/CHANGES.md | 1 + actix-rt/src/arbiter.rs | 12 +++-- actix-rt/src/runtime.rs | 45 ++++++++++++++++--- actix-rt/src/system.rs | 17 ++++--- actix-rt/tests/tests.rs | 98 +++++++++++++++++++++++++++++++++++++++++ 5 files changed, 159 insertions(+), 14 deletions(-) diff --git a/actix-rt/CHANGES.md b/actix-rt/CHANGES.md index 5bbb230f..90822164 100644 --- a/actix-rt/CHANGES.md +++ b/actix-rt/CHANGES.md @@ -4,6 +4,7 @@ - Minimum supported Rust version (MSRV) is now 1.88. - Add `SystemRunner::stop_future` and `SystemRunner::into_parts` for awaiting system stop inside `block_on`. +- Allow `{System, Arbiter}::with_tokio_rt` to accept shared Tokio runtimes (e.g. `Arc` or `&'static tokio::runtime::Runtime`). ## 2.11.0 diff --git a/actix-rt/src/arbiter.rs b/actix-rt/src/arbiter.rs index b2d723e6..80ba055b 100644 --- a/actix-rt/src/arbiter.rs +++ b/actix-rt/src/arbiter.rs @@ -105,11 +105,17 @@ impl Arbiter { /// Spawn a new Arbiter using the [Tokio Runtime](tokio-runtime) returned from a closure. /// + /// The closure may return any type that can be converted into [`Runtime`], such as + /// `tokio::runtime::Runtime`, `Arc`, or + /// `&'static tokio::runtime::Runtime`. + /// /// [tokio-runtime]: tokio::runtime::Runtime + /// [`Runtime`]: crate::Runtime #[cfg(not(all(target_os = "linux", feature = "io-uring")))] - pub fn with_tokio_rt(runtime_factory: F) -> Arbiter + pub fn with_tokio_rt(runtime_factory: F) -> Arbiter where - F: FnOnce() -> tokio::runtime::Runtime + Send + 'static, + F: FnOnce() -> R + Send + 'static, + R: Into + Send + 'static, { let sys = System::current(); let system_id = sys.id(); @@ -125,7 +131,7 @@ impl Arbiter { .spawn({ let tx = tx.clone(); move || { - let rt = crate::runtime::Runtime::from(runtime_factory()); + let rt = runtime_factory().into(); let hnd = ArbiterHandle::new(tx); System::set_current(sys); diff --git a/actix-rt/src/runtime.rs b/actix-rt/src/runtime.rs index 55e29a77..408853c8 100644 --- a/actix-rt/src/runtime.rs +++ b/actix-rt/src/runtime.rs @@ -1,7 +1,14 @@ -use std::{future::Future, io}; +use std::{future::Future, io, sync::Arc}; use tokio::task::{JoinHandle, LocalSet}; +#[derive(Debug)] +enum RuntimeInner { + Owned(tokio::runtime::Runtime), + Shared(Arc), + Static(&'static tokio::runtime::Runtime), +} + /// A Tokio-based runtime proxy. /// /// All spawned futures will be executed on the current thread. Therefore, there is no `Send` bound @@ -9,7 +16,7 @@ use tokio::task::{JoinHandle, LocalSet}; #[derive(Debug)] pub struct Runtime { local: LocalSet, - rt: tokio::runtime::Runtime, + rt: RuntimeInner, } pub(crate) fn default_tokio_runtime() -> io::Result { @@ -26,11 +33,19 @@ impl Runtime { let rt = default_tokio_runtime()?; Ok(Runtime { - rt, + rt: RuntimeInner::Owned(rt), local: LocalSet::new(), }) } + fn tokio_runtime_ref(&self) -> &tokio::runtime::Runtime { + match &self.rt { + RuntimeInner::Owned(rt) => rt, + RuntimeInner::Shared(rt) => rt, + RuntimeInner::Static(rt) => rt, + } + } + /// Offload a future onto the single-threaded runtime. /// /// The returned join handle can be used to await the future's result. @@ -114,7 +129,7 @@ impl Runtime { /// of the Actix runtime. This is because Tokio is responsible for driving the Actix system, /// and blocking tasks could delay or deadlock other tasks in run loop. pub fn tokio_runtime(&self) -> &tokio::runtime::Runtime { - &self.rt + self.tokio_runtime_ref() } /// Runs the provided future, blocking the current thread until the future completes. @@ -135,7 +150,7 @@ impl Runtime { where F: Future, { - self.local.block_on(&self.rt, f) + self.local.block_on(self.tokio_runtime_ref(), f) } } @@ -143,7 +158,25 @@ impl From for Runtime { fn from(rt: tokio::runtime::Runtime) -> Self { Self { local: LocalSet::new(), - rt, + rt: RuntimeInner::Owned(rt), + } + } +} + +impl From> for Runtime { + fn from(rt: Arc) -> Self { + Self { + local: LocalSet::new(), + rt: RuntimeInner::Shared(rt), + } + } +} + +impl From<&'static tokio::runtime::Runtime> for Runtime { + fn from(rt: &'static tokio::runtime::Runtime) -> Self { + Self { + local: LocalSet::new(), + rt: RuntimeInner::Static(rt), } } } diff --git a/actix-rt/src/system.rs b/actix-rt/src/system.rs index 6375cb0e..76f29df5 100644 --- a/actix-rt/src/system.rs +++ b/actix-rt/src/system.rs @@ -45,15 +45,21 @@ impl System { /// Create a new System using the [Tokio Runtime](tokio-runtime) returned from a closure. /// + /// The closure may return any type that can be converted into [`Runtime`], such as + /// `tokio::runtime::Runtime`, `Arc`, or + /// `&'static tokio::runtime::Runtime`. + /// /// [tokio-runtime]: tokio::runtime::Runtime - pub fn with_tokio_rt(runtime_factory: F) -> SystemRunner + /// [`Runtime`]: crate::Runtime + pub fn with_tokio_rt(runtime_factory: F) -> SystemRunner where - F: FnOnce() -> tokio::runtime::Runtime, + F: FnOnce() -> R, + R: Into, { let (stop_tx, stop_rx) = watch::channel(None); let (sys_tx, sys_rx) = mpsc::unbounded_channel(); - let rt = crate::runtime::Runtime::from(runtime_factory()); + let rt = runtime_factory().into(); let sys_arbiter = rt.block_on(async { Arbiter::in_new_system() }); let system = System::construct(sys_tx, sys_arbiter.clone()); @@ -85,9 +91,10 @@ impl System { /// /// [tokio-runtime]: tokio::runtime::Runtime #[doc(hidden)] - pub fn with_tokio_rt(_: F) -> SystemRunner + pub fn with_tokio_rt(_: F) -> SystemRunner where - F: FnOnce() -> tokio::runtime::Runtime, + F: FnOnce() -> R, + R: Into, { unimplemented!("System::with_tokio_rt is not implemented for io-uring feature yet") } diff --git a/actix-rt/tests/tests.rs b/actix-rt/tests/tests.rs index f5493b4d..1110a055 100644 --- a/actix-rt/tests/tests.rs +++ b/actix-rt/tests/tests.rs @@ -298,6 +298,65 @@ fn new_system_with_tokio() { assert_eq!(rx.recv().unwrap(), 42); } +#[cfg(not(feature = "io-uring"))] +#[test] +fn new_system_with_shared_tokio_runtime() { + use std::sync::Arc; + + let (tx, rx) = channel(); + + let rt = Arc::new( + tokio::runtime::Builder::new_multi_thread() + .enable_io() + .enable_time() + .worker_threads(2) + .max_blocking_threads(2) + .build() + .unwrap(), + ); + + let res = System::with_tokio_rt({ + let rt = rt.clone(); + move || rt + }) + .block_on(async { + actix_rt::time::sleep(Duration::from_millis(1)).await; + + tokio::task::spawn(async move { + tx.send(7).unwrap(); + }) + .await + .unwrap(); + + 321usize + }); + + assert_eq!(res, 321); + assert_eq!(rx.recv().unwrap(), 7); +} + +#[cfg(not(feature = "io-uring"))] +#[test] +fn new_system_with_static_tokio_runtime() { + use std::sync::OnceLock; + + static TOKIO: OnceLock = OnceLock::new(); + + let res = System::with_tokio_rt(|| -> &'static tokio::runtime::Runtime { + TOKIO.get_or_init(|| { + tokio::runtime::Builder::new_multi_thread() + .enable_io() + .enable_time() + .worker_threads(1) + .build() + .unwrap() + }) + }) + .block_on(async { 7usize }); + + assert_eq!(res, 7); +} + #[cfg(not(feature = "io-uring"))] #[test] fn new_arbiter_with_tokio() { @@ -331,6 +390,45 @@ fn new_arbiter_with_tokio() { assert!(!counter.load(Ordering::SeqCst)); } +#[cfg(not(feature = "io-uring"))] +#[test] +fn new_arbiter_with_shared_tokio_runtime() { + use std::sync::{ + atomic::{AtomicBool, Ordering}, + Arc, + }; + + let _ = System::new(); + + let rt = Arc::new( + tokio::runtime::Builder::new_multi_thread() + .enable_all() + .worker_threads(2) + .build() + .unwrap(), + ); + + let arb = Arbiter::with_tokio_rt({ + let rt = rt.clone(); + move || rt + }); + + let flag = Arc::new(AtomicBool::new(false)); + + let flag1 = flag.clone(); + let did_spawn = arb.spawn(async move { + actix_rt::time::sleep(Duration::from_millis(1)).await; + flag1.store(true, Ordering::SeqCst); + Arbiter::current().stop(); + }); + + assert!(did_spawn); + + arb.join().unwrap(); + + assert!(flag.load(Ordering::SeqCst)); +} + #[test] #[should_panic] fn no_system_current_panic() {