1
0
mirror of https://github.com/fafhrd91/actix-net synced 2025-09-01 00:17:00 +02:00

Compare commits

..

67 Commits

Author SHA1 Message Date
Rob Ede
5267bc2c89 chore(rt): include correct tokio features 2025-08-30 02:31:17 +01:00
Rob Ede
3c0702cfcd chore(actix-rt): prepare release 2.11.0 2025-08-30 02:25:46 +01:00
dependabot[bot]
fe31514545 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] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-29 22:13:00 +00:00
Rob Ede
b8ff2a47a6 refactor: inline format args 2025-08-29 00:57:13 +01:00
dependabot[bot]
160fdc5efc 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 <robjtede@icloud.com>
2025-08-26 16:39:21 +01:00
dependabot[bot]
c856fcdcd5 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] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-26 10:24:07 +00:00
dependabot[bot]
4ee45b24b5 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] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-26 10:24:05 +00:00
dependabot[bot]
43f9da3c4e build(deps): bump bitflags from 2.9.2 to 2.9.3 (#718)
Bumps [bitflags](https://github.com/bitflags/bitflags) from 2.9.2 to 2.9.3.
- [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.2...2.9.3)

---
updated-dependencies:
- dependency-name: bitflags
  dependency-version: 2.9.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-26 10:24:02 +00:00
dependabot[bot]
d24e5b4e95 build(deps): bump serde_json from 1.0.142 to 1.0.143 (#717)
Bumps [serde_json](https://github.com/serde-rs/json) from 1.0.142 to 1.0.143.
- [Release notes](https://github.com/serde-rs/json/releases)
- [Commits](https://github.com/serde-rs/json/compare/v1.0.142...v1.0.143)

---
updated-dependencies:
- dependency-name: serde_json
  dependency-version: 1.0.143
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-26 10:24:01 +00:00
Rob Ede
0d45bf9b43 chore: revert msrv bump 2025-08-26 08:25:35 +01:00
dependabot[bot]
e85ae87b98 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] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-22 07:33:13 +00:00
dependabot[bot]
dc19b196da 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] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-22 07:16:22 +00:00
dependabot[bot]
e22bca03d5 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] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-22 06:11:14 +00:00
dependabot[bot]
19ab9cc97a 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] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-22 06:00:47 +00:00
Yuki Okushi
1ea0f773b6 chore: Bump up MSRV to 1.80 (#716) 2025-08-22 11:53:32 +09:00
dependabot[bot]
ee3d54f574 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] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-12 05:29:11 +00:00
dependabot[bot]
75e56d56d8 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] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-12 05:29:00 +00:00
dependabot[bot]
222527a407 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] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-12 05:28:58 +00:00
dependabot[bot]
cfddd3ea2e 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] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-12 05:28:56 +00:00
dependabot[bot]
d869455251 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] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-12 05:28:54 +00:00
dependabot[bot]
3e925d8f80 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] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-12 05:28:52 +00:00
dependabot[bot]
0c8337f1c9 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] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-12 05:28:51 +00:00
dependabot[bot]
20ae763da8 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] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-12 05:28:45 +00:00
dependabot[bot]
6c6f7f19f5 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] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-10 05:39:25 +00:00
dependabot[bot]
95d569d8d7 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] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-10 05:39:12 +00:00
dependabot[bot]
347fc17035 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] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-15 03:39:14 +00:00
dependabot[bot]
4cb04042f5 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] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-15 03:39:11 +00:00
Thomas de Zeeuw
e6ddf0ccff Update to socket2 v0.6 (#696) 2025-07-14 01:13:23 +00:00
dependabot[bot]
21de88385e 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] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-10 08:09:41 +00:00
dependabot[bot]
a91bdcb80c 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] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-10 08:09:32 +00:00
dependabot[bot]
64a2d1c1eb 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] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-06-30 23:09:03 +00:00
dependabot[bot]
637bd709ae 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] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-06-30 21:51:44 +00:00
dependabot[bot]
bbac996677 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] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-06-30 21:44:21 +00:00
dependabot[bot]
c9cea86445 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] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-06-28 13:57:32 +00:00
dependabot[bot]
05065186ff 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] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-06-28 13:57:10 +00:00
dependabot[bot]
3d54a00d5b 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] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-06-23 10:26:10 +00:00
dependabot[bot]
120e0206eb 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] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-06-23 10:26:06 +00:00
dependabot[bot]
1ad8a98f1b 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] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-06-23 10:25:58 +00:00
dependabot[bot]
da1c0024f0 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] <support@github.com>

* Apply suggestions from code review

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Yuki Okushi <jtitor@2k36.org>
2025-06-23 09:58:14 +00:00
dependabot[bot]
0be1dd8156 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] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-06-12 02:51:56 +00:00
dependabot[bot]
9c646e4998 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] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-06-12 02:51:52 +00:00
dependabot[bot]
758c37b80c 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] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-06-12 02:38:15 +00:00
dependabot[bot]
1a1af68bf0 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] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-06-02 09:38:20 +00:00
dependabot[bot]
3ebed4701d 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] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-05-24 07:19:37 +00:00
dependabot[bot]
15c13c3e32 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] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-05-24 07:19:30 +00:00
dependabot[bot]
3356038c80 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] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-05-24 07:19:22 +00:00
dependabot[bot]
7834d76d4f 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] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-05-16 07:16:02 +00:00
Rob Ede
064da0e3ff feat: server shutdown signal (#676) 2025-05-09 19:30:11 +01:00
dependabot[bot]
270360e095 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] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-05-09 18:05:37 +00:00
dependabot[bot]
d9203797be 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] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-05-09 16:53:20 +00:00
dependabot[bot]
67616902cc 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] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-05-09 16:45:02 +00:00
dependabot[bot]
809071b857 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] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-05-09 16:27:27 +00:00
dependabot[bot]
8e7de17221 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] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-05-09 16:22:10 +00:00
Rob Ede
2972a5ac08 ci: fix msrv jobs 2025-05-09 16:58:28 +01:00
Rob Ede
69041c4f6c build: rework justfile toolchain input 2025-05-09 04:29:52 +01:00
Rob Ede
d61b33928d chore: bump msrv to 1.74 2025-05-09 04:20:18 +01:00
dependabot[bot]
d95eea8fbe 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] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-04-07 22:10:14 +00:00
dependabot[bot]
53036ce9c4 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] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-04-07 22:09:50 +00:00
dependabot[bot]
f8bea79547 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] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-04-05 21:30:14 +00:00
dependabot[bot]
7030b26a7c 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] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-04-03 16:35:18 +00:00
dependabot[bot]
d7f60b88d3 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] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-04-03 16:35:15 +00:00
dependabot[bot]
b57ab7e8f0 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] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-03-25 00:34:54 +00:00
dependabot[bot]
887975ab11 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] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-03-21 06:02:34 +00:00
Rob Ede
9069fd8590 build: fix msrv 2025-03-21 05:38:25 +00:00
dependabot[bot]
8204690568 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] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-03-10 18:34:13 +00:00
dependabot[bot]
bbb3139c45 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] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-03-10 18:32:15 +00:00
dependabot[bot]
0915904bdb 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] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-03-10 18:31:58 +00:00
50 changed files with 905 additions and 552 deletions

4
.clippy.toml Normal file
View File

@@ -0,0 +1,4 @@
disallowed-names = [
"..", # defaults
"e", # prefer `err`
]

18
.cspell.yml Normal file
View File

@@ -0,0 +1,18 @@
version: "0.2"
words:
- actix
- addrs
- clippy
- deque
- itertools
- mptcp
- MSRV
- nonblocking
- oneshot
- pemfile
- rcgen
- Rustls
- rustup
- spki
- uring
- webpki

View File

@@ -8,3 +8,4 @@ updates:
directory: /
schedule:
interval: weekly
versioning-strategy: lockfile-only

View File

@@ -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'
@@ -59,12 +59,12 @@ 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.14.0
with:
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.58.21
with:
tool: just,cargo-hack,cargo-nextest,cargo-ci-cache-clean
@@ -113,15 +113,15 @@ 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.11.0
uses: actions-rust-lang/setup-rust-toolchain@v1.14.0
with:
toolchain: nightly
- name: Install cargo-hack & cargo-minimal-versions
uses: taiki-e/install-action@v2.49.11
uses: taiki-e/install-action@v2.58.21
with:
tool: cargo-hack,cargo-minimal-versions

View File

@@ -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'
@@ -68,12 +68,12 @@ 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.14.0
with:
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.58.21
with:
tool: just,cargo-hack,cargo-nextest,cargo-ci-cache-clean
@@ -117,15 +117,15 @@ 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.11.0
uses: actions-rust-lang/setup-rust-toolchain@v1.14.0
with:
toolchain: nightly
- name: Install just
uses: taiki-e/install-action@v2.49.11
uses: taiki-e/install-action@v2.58.21
with:
tool: just

View File

@@ -15,15 +15,15 @@ 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.11.0
uses: actions-rust-lang/setup-rust-toolchain@v1.14.0
with:
components: llvm-tools-preview
- name: Install cargo-llvm-cov
uses: taiki-e/install-action@v2.49.11
uses: taiki-e/install-action@v2.58.21
with:
tool: cargo-llvm-cov
@@ -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.5.0
with:
files: codecov.json
fail_ci_if_error: true

View File

@@ -16,9 +16,9 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v5
- uses: actions-rust-lang/setup-rust-toolchain@v1.11.0
- uses: actions-rust-lang/setup-rust-toolchain@v1.14.0
with:
toolchain: nightly
components: rustfmt
@@ -33,9 +33,9 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v5
- uses: actions-rust-lang/setup-rust-toolchain@v1.11.0
- uses: actions-rust-lang/setup-rust-toolchain@v1.14.0
with: { components: clippy }
- uses: giraffate/clippy-action@v1.0.1
@@ -48,20 +48,20 @@ 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.11.0
uses: actions-rust-lang/setup-rust-toolchain@v1.14.0
with:
toolchain: ${{ vars.RUST_VERSION_EXTERNAL_TYPES }}
- name: Install just
uses: taiki-e/install-action@v2.49.11
uses: taiki-e/install-action@v2.58.21
with:
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.3.0
with:
tool: cargo-check-external-types

32
.vscode/settings.json vendored Normal file
View File

@@ -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",
]
}

902
Cargo.lock generated

File diff suppressed because it is too large Load Diff

View File

@@ -15,9 +15,11 @@ 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.71.1"
rust-version = "1.75"
[patch.crates-io]
actix-codec = { path = "actix-codec" }
@@ -38,7 +40,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"

View File

@@ -2,7 +2,7 @@
## Unreleased
- Minimum supported Rust version (MSRV) is now 1.71.
- Minimum supported Rust version (MSRV) is now 1.75.
## 0.5.2

View File

@@ -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"] }

View File

@@ -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:?}"),
}
}

View File

@@ -2,7 +2,7 @@
## Unreleased
- Minimum supported Rust version (MSRV) is now 1.71.
- Minimum supported Rust version (MSRV) is now 1.75.
## 0.2.4

View File

@@ -1,3 +1,5 @@
#![allow(unused_imports)]
mod system {
pub use actix_rt::System as MySystem;
}

View File

@@ -2,7 +2,11 @@
## Unreleased
- Minimum supported Rust version (MSRV) is now 1.71.
## 2.11.0
- Implement `ActixStream` for `tokio::io::BufReader<IO>`.
- Deprecate the `pin` re-export.
- Minimum supported Rust version (MSRV) is now 1.75.
## 2.10.0

View File

@@ -1,13 +1,13 @@
[package]
name = "actix-rt"
version = "2.10.0"
version = "2.11.0"
authors = ["Nikolay Kim <fafhrd91@gmail.com>", "Rob Ede <robjtede@icloud.com>"]
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
@@ -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", "io-util", "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

View File

@@ -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)
<br />
[![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)

View File

@@ -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::<()>();

View File

@@ -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<io::Result<Ready>> {
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<io::Result<Ready>> {
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<io::Result<Ready>> {
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<io::Result<Ready>> {
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<Io: ActixStream> ActixStream for BufReader<Io> {
fn poll_read_ready(&self, cx: &mut Context<'_>) -> Poll<io::Result<Ready>> {
self.get_ref().poll_read_ready(cx)
}
fn poll_write_ready(&self, cx: &mut Context<'_>) -> Poll<io::Result<Ready>> {
self.get_ref().poll_write_ready(cx)
}
}
}
pub mod time {

View File

@@ -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

View File

@@ -2,6 +2,11 @@
## Unreleased
## 2.6.0
- Add `ServerBuilder::shutdown_signal()` method.
- Minimum supported Rust version (MSRV) is now 1.75.
## 2.5.1
- Fix panic in test server.

View File

@@ -1,6 +1,6 @@
[package]
name = "actix-server"
version = "2.5.1"
version = "2.6.0"
authors = [
"Nikolay Kim <fafhrd91@gmail.com>",
"Rob Ede <robjtede@icloud.com>",
@@ -29,8 +29,8 @@ 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"
tokio = { version = "1.23.1", features = ["sync"] }
socket2 = "0.6"
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,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.23.1", 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

View File

@@ -5,11 +5,11 @@
<!-- prettier-ignore-start -->
[![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)
<br />
[![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)

View File

@@ -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(())
}

View File

@@ -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))
}
@@ -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
}

View File

@@ -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<BoxFuture<'static, ()>>,
pub(crate) cmd_tx: UnboundedSender<ServerCommand>,
pub(crate) cmd_rx: UnboundedReceiver<ServerCommand>,
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<Fut>(mut self, shutdown_signal: Fut) -> Self
where
Fut: Future<Output = ()> + 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<S: ToSocketAddrs>(
} 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."))
}
}

View File

@@ -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<ServerCommand>,
signal_fut: Option<Signals>,
signal_fut: Option<StopSignal>,
}
impl Stream for ServerEventMultiplexer {

View File

@@ -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<Self::Output> {
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
@@ -68,29 +92,27 @@ impl Signals {
.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()
})
.collect::<Vec<_>>();
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<Self::Output> {
#[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 +128,10 @@ impl Future for Signals {
}
}
}
#[cfg(test)]
mod tests {
use super::*;
static_assertions::assert_impl_all!(StopSignal: Send, Unpin);
}

View File

@@ -105,9 +105,9 @@ impl From<StdUnixListener> 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"));
}
}
}

View File

@@ -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<WakerInterest>) {
std::mem::swap(&mut VecDeque::<WakerInterest>::with_capacity(16), queue);
*queue = VecDeque::<WakerInterest>::with_capacity(16);
}
}

View File

@@ -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();
@@ -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;
}

View File

@@ -2,6 +2,8 @@
## Unreleased
- Minimum supported Rust version (MSRV) is now 1.75.
## 2.0.3
- Minimum supported Rust version (MSRV) is now 1.71.

View File

@@ -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,

View File

@@ -2,7 +2,7 @@
## Unreleased
- Minimum supported Rust version (MSRV) is now 1.71.
- Minimum supported Rust version (MSRV) is now 1.75.
## 3.4.0

View File

@@ -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"] }

View File

@@ -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<TcpStream>| {
let num = count.fetch_add(1, Ordering::Relaxed);
info!("[{}] Got TLS connection: {:?}", num, &*stream);

View File

@@ -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}"))
})
})
}

View File

@@ -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}"))))
}
}
}

View File

@@ -159,8 +159,7 @@ where
fn poll(self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll<Self::Output> {
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.",
))),

View File

@@ -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<TcpStream>| ok(()))
}
});

View File

@@ -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<TcpStream>| ok(()))
}
});

View File

@@ -26,7 +26,7 @@ async fn custom_resolver() {
port: u16,
) -> LocalBoxFuture<'a, Result<Vec<SocketAddr>, Box<dyn std::error::Error>>> {
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])
})
}

View File

@@ -2,7 +2,7 @@
## Unreleased
- Minimum supported Rust version (MSRV) is now 1.71.
- Minimum supported Rust version (MSRV) is now 1.75.
## 0.1.0

View File

@@ -2,7 +2,7 @@
## Unreleased
- Minimum supported Rust version (MSRV) is now 1.71.
- Minimum supported Rust version (MSRV) is now 1.75.
## 3.0.1

View File

@@ -2,6 +2,8 @@
## Unreleased
- Minimum supported Rust version (MSRV) is now 1.75.
## 1.4.0
- Add `ByteString::split_at()` method.

View File

@@ -1,6 +1,8 @@
_list:
@just --list
toolchain := ""
# Check project.
check: && clippy
just --unstable --fmt --check
@@ -18,13 +20,16 @@ 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 {{ 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
msrv := ```
cargo metadata --format-version=1 \
@@ -42,34 +47,39 @@ 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="":
clippy:
cargo {{ toolchain }} clippy --workspace --all-targets {{ all_crate_features }}
# Run Clippy using MSRV.
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
@@ -92,12 +102,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
@@ -110,9 +120,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 }}

View File

@@ -2,7 +2,7 @@
## Unreleased
- Minimum supported Rust version (MSRV) is now 1.71.
- Minimum supported Rust version (MSRV) is now 1.75.
## 0.1.5

View File

@@ -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"] }

View File

@@ -2,7 +2,7 @@
## Unreleased
- Minimum supported Rust version (MSRV) is now 1.71.
- Minimum supported Rust version (MSRV) is now 1.75.
## 0.1.4