diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index e0511339d..10e80b751 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -23,7 +23,7 @@ jobs:
- { name: macOS, os: macos-latest, triple: x86_64-apple-darwin }
- { name: Windows, os: windows-latest, triple: x86_64-pc-windows-msvc }
version:
- - 1.59.0 # MSRV
+ - 1.65.0 # MSRV
- stable
name: ${{ matrix.target.name }} / ${{ matrix.version }}
@@ -49,17 +49,9 @@ jobs:
- name: Install cargo-hack
uses: taiki-e/install-action@cargo-hack
- - name: workaround MSRV issues
- if: matrix.version != 'stable'
- run: |
- cargo install cargo-edit --version=0.8.0
- cargo add const-str@0.3 --dev -p=actix-web
- cargo add const-str@0.3 --dev -p=awc
-
- - name: workaround MSRV issues
- if: matrix.version != 'stable'
- run: |
- cargo update -p=zstd-sys --precise=2.0.1+zstd.1.5.2
+ # - name: workaround MSRV issues
+ # if: matrix.version != 'stable'
+ # run: |
- name: check minimal
run: cargo ci-check-min
diff --git a/.github/workflows/clippy-fmt.yml b/.github/workflows/clippy-fmt.yml
index a7da9b1c5..109165ce0 100644
--- a/.github/workflows/clippy-fmt.yml
+++ b/.github/workflows/clippy-fmt.yml
@@ -63,7 +63,8 @@ jobs:
- uses: actions/checkout@v3
- uses: actions-rust-lang/setup-rust-toolchain@v1
- with: { toolchain: nightly }
+ # temp: unpin once https://github.com/rust-lang/rust/issues/113152 is fixed
+ with: { toolchain: nightly-2023-06-28 }
- uses: taiki-e/cache-cargo-install-action@v1
with: { tool: cargo-public-api }
diff --git a/actix-files/CHANGES.md b/actix-files/CHANGES.md
index d64380a8d..4e45ce517 100644
--- a/actix-files/CHANGES.md
+++ b/actix-files/CHANGES.md
@@ -2,6 +2,8 @@
## Unreleased - 2023-xx-xx
+- Minimum supported Rust version (MSRV) is now 1.65 due to transitive `time` dependency.
+
## 0.6.3 - 2023-01-21
- XHTML files now use `Content-Disposition: inline` instead of `attachment`. [#2903]
diff --git a/actix-files/Cargo.toml b/actix-files/Cargo.toml
index 41f3b1135..80c609d1d 100644
--- a/actix-files/Cargo.toml
+++ b/actix-files/Cargo.toml
@@ -11,7 +11,7 @@ homepage = "https://actix.rs"
repository = "https://github.com/actix/actix-web"
categories = ["asynchronous", "web-programming::http-server"]
license = "MIT OR Apache-2.0"
-edition = "2018"
+edition = "2021"
[lib]
name = "actix_files"
diff --git a/actix-files/README.md b/actix-files/README.md
index 8869ca436..f01fc8566 100644
--- a/actix-files/README.md
+++ b/actix-files/README.md
@@ -4,7 +4,7 @@
[](https://crates.io/crates/actix-files)
[](https://docs.rs/actix-files/0.6.3)
-
+

[](https://deps.rs/crate/actix-files/0.6.3)
@@ -15,4 +15,4 @@
- [API Documentation](https://docs.rs/actix-files)
- [Example Project](https://github.com/actix/examples/tree/master/basics/static-files)
-- Minimum Supported Rust Version (MSRV): 1.59
+- Minimum Supported Rust Version (MSRV): 1.65
diff --git a/actix-files/src/path_buf.rs b/actix-files/src/path_buf.rs
index 650f55247..c1983279b 100644
--- a/actix-files/src/path_buf.rs
+++ b/actix-files/src/path_buf.rs
@@ -97,8 +97,6 @@ impl FromRequest for PathBufWrap {
#[cfg(test)]
mod tests {
- use std::iter::FromIterator;
-
use super::*;
#[test]
diff --git a/actix-http-test/CHANGES.md b/actix-http-test/CHANGES.md
index ec31b6196..3b8c83b3c 100644
--- a/actix-http-test/CHANGES.md
+++ b/actix-http-test/CHANGES.md
@@ -2,6 +2,8 @@
## Unreleased - 2023-xx-xx
+- Minimum supported Rust version (MSRV) is now 1.65 due to transitive `time` dependency.
+
## 3.1.0 - 2023-01-21
- Minimum supported Rust version (MSRV) is now 1.59.
diff --git a/actix-http-test/Cargo.toml b/actix-http-test/Cargo.toml
index 12739fbd4..87422551d 100644
--- a/actix-http-test/Cargo.toml
+++ b/actix-http-test/Cargo.toml
@@ -13,7 +13,7 @@ categories = [
"web-programming::websocket",
]
license = "MIT OR Apache-2.0"
-edition = "2018"
+edition = "2021"
[package.metadata.docs.rs]
features = []
@@ -41,12 +41,12 @@ bytes = "1"
futures-core = { version = "0.3.17", default-features = false }
http = "0.2.7"
log = "0.4"
-socket2 = "0.4"
+socket2 = "0.5"
serde = "1"
serde_json = "1"
slab = "0.4"
serde_urlencoded = "0.7"
-tls-openssl = { version = "0.10.9", package = "openssl", optional = true }
+tls-openssl = { version = "0.10.55", package = "openssl", optional = true }
tokio = { version = "1.24.2", features = ["sync"] }
[dev-dependencies]
diff --git a/actix-http-test/README.md b/actix-http-test/README.md
index 94f0e88a5..935be407f 100644
--- a/actix-http-test/README.md
+++ b/actix-http-test/README.md
@@ -4,7 +4,7 @@
[](https://crates.io/crates/actix-http-test)
[](https://docs.rs/actix-http-test/3.1.0)
-
+

[](https://deps.rs/crate/actix-http-test/3.1.0)
@@ -14,4 +14,4 @@
## Documentation & Resources
- [API Documentation](https://docs.rs/actix-http-test)
-- Minimum Supported Rust Version (MSRV): 1.59
+- Minimum Supported Rust Version (MSRV): 1.65
diff --git a/actix-http/CHANGES.md b/actix-http/CHANGES.md
index aaf84d765..a105c02c1 100644
--- a/actix-http/CHANGES.md
+++ b/actix-http/CHANGES.md
@@ -7,6 +7,10 @@
- Add `body::to_body_limit()` function.
- Add `body::BodyLimitExceeded` error type.
+### Changed
+
+- Minimum supported Rust version (MSRV) is now 1.65 due to transitive `time` dependency.
+
## 3.3.1 - 2023-03-02
### Fixed
diff --git a/actix-http/Cargo.toml b/actix-http/Cargo.toml
index 222a04c8f..6909b785f 100644
--- a/actix-http/Cargo.toml
+++ b/actix-http/Cargo.toml
@@ -16,7 +16,7 @@ categories = [
"web-programming::websocket",
]
license = "MIT OR Apache-2.0"
-edition = "2018"
+edition = "2021"
[package.metadata.docs.rs]
# features that docs.rs will build with
@@ -105,20 +105,20 @@ actix-tls = { version = "3", features = ["openssl"] }
actix-web = "4"
async-stream = "0.3"
-criterion = { version = "0.4", features = ["html_reports"] }
-env_logger = "0.9"
+criterion = { version = "0.5", features = ["html_reports"] }
+env_logger = "0.10"
futures-util = { version = "0.3.17", default-features = false, features = ["alloc"] }
memchr = "2.4"
once_cell = "1.9"
-rcgen = "0.9"
+rcgen = "0.11"
regex = "1.3"
rustversion = "1"
rustls-pemfile = "1"
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
static_assertions = "1"
-tls-openssl = { package = "openssl", version = "0.10.9" }
-tls-rustls = { package = "rustls", version = "0.20.0" }
+tls-openssl = { package = "openssl", version = "0.10.55" }
+tls-rustls = { package = "rustls", version = "0.20" }
tokio = { version = "1.24.2", features = ["net", "rt", "macros"] }
[[example]]
diff --git a/actix-http/README.md b/actix-http/README.md
index f372096ff..0c5fcb6b6 100644
--- a/actix-http/README.md
+++ b/actix-http/README.md
@@ -4,7 +4,7 @@
[](https://crates.io/crates/actix-http)
[](https://docs.rs/actix-http/3.3.1)
-
+

[](https://deps.rs/crate/actix-http/3.3.1)
@@ -14,7 +14,7 @@
## Documentation & Resources
- [API Documentation](https://docs.rs/actix-http)
-- Minimum Supported Rust Version (MSRV): 1.59
+- Minimum Supported Rust Version (MSRV): 1.65
## Example
diff --git a/actix-http/src/body/boxed.rs b/actix-http/src/body/boxed.rs
index 5fcc42f56..2bbb75369 100644
--- a/actix-http/src/body/boxed.rs
+++ b/actix-http/src/body/boxed.rs
@@ -104,7 +104,6 @@ impl MessageBody for BoxBody {
#[cfg(test)]
mod tests {
-
use static_assertions::{assert_impl_all, assert_not_impl_any};
use super::*;
diff --git a/actix-http/src/h1/decoder.rs b/actix-http/src/h1/decoder.rs
index 0b06bfe24..829f40e10 100644
--- a/actix-http/src/h1/decoder.rs
+++ b/actix-http/src/h1/decoder.rs
@@ -1,4 +1,4 @@
-use std::{convert::TryFrom, io, marker::PhantomData, mem::MaybeUninit, task::Poll};
+use std::{io, marker::PhantomData, mem::MaybeUninit, task::Poll};
use actix_codec::Decoder;
use bytes::{Bytes, BytesMut};
diff --git a/actix-http/src/h1/service.rs b/actix-http/src/h1/service.rs
index a791ea8c3..9eebe2126 100644
--- a/actix-http/src/h1/service.rs
+++ b/actix-http/src/h1/service.rs
@@ -160,7 +160,6 @@ mod openssl {
#[cfg(feature = "rustls")]
mod rustls {
-
use std::io;
use actix_service::ServiceFactoryExt as _;
diff --git a/actix-http/src/header/into_pair.rs b/actix-http/src/header/into_pair.rs
index 91c3e6640..0a71f857a 100644
--- a/actix-http/src/header/into_pair.rs
+++ b/actix-http/src/header/into_pair.rs
@@ -1,7 +1,5 @@
//! [`TryIntoHeaderPair`] trait and implementations.
-use std::convert::TryFrom as _;
-
use super::{
Header, HeaderName, HeaderValue, InvalidHeaderName, InvalidHeaderValue, TryIntoHeaderValue,
};
diff --git a/actix-http/src/header/into_value.rs b/actix-http/src/header/into_value.rs
index 6d369ee65..253900633 100644
--- a/actix-http/src/header/into_value.rs
+++ b/actix-http/src/header/into_value.rs
@@ -1,7 +1,5 @@
//! [`TryIntoHeaderValue`] trait and implementations.
-use std::convert::TryFrom as _;
-
use bytes::Bytes;
use http::{header::InvalidHeaderValue, Error as HttpError, HeaderValue};
use mime::Mime;
diff --git a/actix-http/src/header/shared/content_encoding.rs b/actix-http/src/header/shared/content_encoding.rs
index bd25de704..c3b4bc4c2 100644
--- a/actix-http/src/header/shared/content_encoding.rs
+++ b/actix-http/src/header/shared/content_encoding.rs
@@ -1,4 +1,4 @@
-use std::{convert::TryFrom, str::FromStr};
+use std::str::FromStr;
use derive_more::{Display, Error};
use http::header::InvalidHeaderValue;
diff --git a/actix-http/src/header/shared/quality.rs b/actix-http/src/header/shared/quality.rs
index c80dd0a8e..c2276cf1b 100644
--- a/actix-http/src/header/shared/quality.rs
+++ b/actix-http/src/header/shared/quality.rs
@@ -1,7 +1,4 @@
-use std::{
- convert::{TryFrom, TryInto},
- fmt,
-};
+use std::fmt;
use derive_more::{Display, Error};
diff --git a/actix-http/src/header/shared/quality_item.rs b/actix-http/src/header/shared/quality_item.rs
index 0b35b5401..ee1fdb928 100644
--- a/actix-http/src/header/shared/quality_item.rs
+++ b/actix-http/src/header/shared/quality_item.rs
@@ -1,4 +1,4 @@
-use std::{cmp, convert::TryFrom as _, fmt, str};
+use std::{cmp, fmt, str};
use crate::error::ParseError;
diff --git a/actix-http/src/requests/request.rs b/actix-http/src/requests/request.rs
index ac358e8df..f4d605b39 100644
--- a/actix-http/src/requests/request.rs
+++ b/actix-http/src/requests/request.rs
@@ -234,7 +234,6 @@ impl
fmt::Debug for Request
{
#[cfg(test)]
mod tests {
use super::*;
- use std::convert::TryFrom;
#[test]
fn test_basics() {
diff --git a/actix-http/src/service.rs b/actix-http/src/service.rs
index 22177b849..108b09c4e 100644
--- a/actix-http/src/service.rs
+++ b/actix-http/src/service.rs
@@ -30,9 +30,9 @@ use crate::{
///
/// # Automatic HTTP Version Selection
/// There are two ways to select the HTTP version of an incoming connection:
-/// - One is to rely on the ALPN information that is provided when using a TLS (HTTPS); both
-/// versions are supported automatically when using either of the `.rustls()` or `.openssl()`
-/// finalizing methods.
+/// - One is to rely on the ALPN information that is provided when using TLS (HTTPS); both versions
+/// are supported automatically when using either of the `.rustls()` or `.openssl()` finalizing
+/// methods.
/// - The other is to read the first few bytes of the TCP stream. This is the only viable approach
/// for supporting H2C, which allows the HTTP/2 protocol to work over plaintext connections. Use
/// the `.tcp_auto_h2c()` finalizing method to enable this behavior.
diff --git a/actix-http/src/ws/frame.rs b/actix-http/src/ws/frame.rs
index dddb03d18..ce6f1b256 100644
--- a/actix-http/src/ws/frame.rs
+++ b/actix-http/src/ws/frame.rs
@@ -1,5 +1,4 @@
use std::cmp::min;
-use std::convert::TryFrom;
use bytes::{Buf, BufMut, BytesMut};
use tracing::debug;
diff --git a/actix-http/tests/test_rustls.rs b/actix-http/tests/test_rustls.rs
index 0b8197a69..bf3a9243b 100644
--- a/actix-http/tests/test_rustls.rs
+++ b/actix-http/tests/test_rustls.rs
@@ -4,7 +4,7 @@
extern crate tls_rustls as rustls;
use std::{
- convert::{Infallible, TryFrom},
+ convert::Infallible,
io::{self, BufReader, Write},
net::{SocketAddr, TcpStream as StdTcpStream},
sync::Arc,
diff --git a/actix-multipart-derive/CHANGES.md b/actix-multipart-derive/CHANGES.md
index 8dd7aa4d0..caf75aeb3 100644
--- a/actix-multipart-derive/CHANGES.md
+++ b/actix-multipart-derive/CHANGES.md
@@ -1,5 +1,9 @@
# Changes
+## Unreleased
+
+- Minimum supported Rust version (MSRV) is now 1.65 due to transitive `time` dependency.
+
## 0.6.0 - 2023-02-26
- Add `MultipartForm` derive macro.
diff --git a/actix-multipart-derive/Cargo.toml b/actix-multipart-derive/Cargo.toml
index e0b78fa26..aca6de84a 100644
--- a/actix-multipart-derive/Cargo.toml
+++ b/actix-multipart-derive/Cargo.toml
@@ -7,7 +7,7 @@ keywords = ["http", "web", "framework", "async", "futures"]
homepage = "https://actix.rs"
repository = "https://github.com/actix/actix-web.git"
license = "MIT OR Apache-2.0"
-edition = "2018"
+edition = "2021"
[package.metadata.docs.rs]
rustdoc-args = ["--cfg", "docsrs"]
diff --git a/actix-multipart-derive/README.md b/actix-multipart-derive/README.md
index 44f08c7bd..b077d355c 100644
--- a/actix-multipart-derive/README.md
+++ b/actix-multipart-derive/README.md
@@ -4,7 +4,7 @@
[](https://crates.io/crates/actix-multipart-derive)
[](https://docs.rs/actix-multipart-derive/0.5.0)
-
+

[](https://deps.rs/crate/actix-multipart-derive/0.5.0)
@@ -14,4 +14,4 @@
## Documentation & Resources
- [API Documentation](https://docs.rs/actix-multipart-derive)
-- Minimum Supported Rust Version (MSRV): 1.59
+- Minimum Supported Rust Version (MSRV): 1.65
diff --git a/actix-multipart-derive/src/lib.rs b/actix-multipart-derive/src/lib.rs
index 2af023aec..9552ad2d9 100644
--- a/actix-multipart-derive/src/lib.rs
+++ b/actix-multipart-derive/src/lib.rs
@@ -8,7 +8,7 @@
#![doc(html_favicon_url = "https://actix.rs/favicon.ico")]
#![cfg_attr(docsrs, feature(doc_auto_cfg))]
-use std::{collections::HashSet, convert::TryFrom as _};
+use std::collections::HashSet;
use darling::{FromDeriveInput, FromField, FromMeta};
use parse_size::parse_size;
diff --git a/actix-multipart-derive/tests/trybuild.rs b/actix-multipart-derive/tests/trybuild.rs
index 7b9f14ed7..829c1d771 100644
--- a/actix-multipart-derive/tests/trybuild.rs
+++ b/actix-multipart-derive/tests/trybuild.rs
@@ -1,4 +1,4 @@
-#[rustversion::stable(1.59)] // MSRV
+#[rustversion::stable(1.65)] // MSRV
#[test]
fn compile_macros() {
let t = trybuild::TestCases::new();
diff --git a/actix-multipart/CHANGES.md b/actix-multipart/CHANGES.md
index 4bb120c61..410c8af17 100644
--- a/actix-multipart/CHANGES.md
+++ b/actix-multipart/CHANGES.md
@@ -2,6 +2,8 @@
## Unreleased - 2023-xx-xx
+- Minimum supported Rust version (MSRV) is now 1.65 due to transitive `time` dependency.
+
## 0.6.0 - 2023-02-26
- Added `MultipartForm` typed data extractor. [#2883]
diff --git a/actix-multipart/Cargo.toml b/actix-multipart/Cargo.toml
index a36fbffc0..384c0e151 100644
--- a/actix-multipart/Cargo.toml
+++ b/actix-multipart/Cargo.toml
@@ -10,7 +10,7 @@ keywords = ["http", "web", "framework", "async", "futures"]
homepage = "https://actix.rs"
repository = "https://github.com/actix/actix-web.git"
license = "MIT OR Apache-2.0"
-edition = "2018"
+edition = "2021"
[package.metadata.docs.rs]
rustdoc-args = ["--cfg", "docsrs"]
diff --git a/actix-multipart/README.md b/actix-multipart/README.md
index c4101e1ce..3e2a7a127 100644
--- a/actix-multipart/README.md
+++ b/actix-multipart/README.md
@@ -4,7 +4,7 @@
[](https://crates.io/crates/actix-multipart)
[](https://docs.rs/actix-multipart/0.6.0)
-
+

[](https://deps.rs/crate/actix-multipart/0.6.0)
@@ -14,4 +14,4 @@
## Documentation & Resources
- [API Documentation](https://docs.rs/actix-multipart)
-- Minimum Supported Rust Version (MSRV): 1.59
+- Minimum Supported Rust Version (MSRV): 1.65
diff --git a/actix-multipart/src/server.rs b/actix-multipart/src/server.rs
index 6726bc9d3..5dc4d6f69 100644
--- a/actix-multipart/src/server.rs
+++ b/actix-multipart/src/server.rs
@@ -2,9 +2,7 @@
use std::{
cell::{Cell, RefCell, RefMut},
- cmp,
- convert::TryFrom,
- fmt,
+ cmp, fmt,
marker::PhantomData,
pin::Pin,
rc::Rc,
diff --git a/actix-router/CHANGES.md b/actix-router/CHANGES.md
index 7ef9497dc..1f5552193 100644
--- a/actix-router/CHANGES.md
+++ b/actix-router/CHANGES.md
@@ -2,6 +2,8 @@
## Unreleased - 2023-xx-xx
+- Minimum supported Rust version (MSRV) is now 1.65 due to transitive `time` dependency.
+
## 0.5.1 - 2022-09-19
- Correct typo in error string for `i32` deserialization. [#2876]
diff --git a/actix-router/Cargo.toml b/actix-router/Cargo.toml
index f8efd5350..adf43a086 100644
--- a/actix-router/Cargo.toml
+++ b/actix-router/Cargo.toml
@@ -10,7 +10,7 @@ description = "Resource path matching and router"
keywords = ["actix", "router", "routing"]
repository = "https://github.com/actix/actix-web.git"
license = "MIT OR Apache-2.0"
-edition = "2018"
+edition = "2021"
[lib]
name = "actix_router"
@@ -27,7 +27,7 @@ serde = "1"
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"] }
http = "0.2.7"
serde = { version = "1", features = ["derive"] }
percent-encoding = "2.1"
diff --git a/actix-router/src/resource.rs b/actix-router/src/resource.rs
index f198115ad..c868a3e6f 100644
--- a/actix-router/src/resource.rs
+++ b/actix-router/src/resource.rs
@@ -1389,8 +1389,6 @@ mod tests {
#[cfg(feature = "http")]
#[test]
fn parse_urlencoded_param() {
- use std::convert::TryFrom;
-
let re = ResourceDef::new("/user/{id}/test");
let mut path = Path::new("/user/2345/test");
diff --git a/actix-router/src/url.rs b/actix-router/src/url.rs
index 8ac033861..8ae9ea9d8 100644
--- a/actix-router/src/url.rs
+++ b/actix-router/src/url.rs
@@ -65,7 +65,6 @@ impl ResourcePath for Url {
#[cfg(test)]
mod tests {
use http::Uri;
- use std::convert::TryFrom;
use super::*;
use crate::{Path, ResourceDef};
diff --git a/actix-test/CHANGES.md b/actix-test/CHANGES.md
index 47fea4173..e3a66c663 100644
--- a/actix-test/CHANGES.md
+++ b/actix-test/CHANGES.md
@@ -2,6 +2,8 @@
## Unreleased - 2023-xx-xx
+- Minimum supported Rust version (MSRV) is now 1.65 due to transitive `time` dependency.
+
## 0.1.1 - 2023-02-26
- Add `TestServerConfig::port()` setter method.
diff --git a/actix-test/Cargo.toml b/actix-test/Cargo.toml
index f2cbfe5cd..9cf5aa76c 100644
--- a/actix-test/Cargo.toml
+++ b/actix-test/Cargo.toml
@@ -16,7 +16,7 @@ categories = [
"web-programming::websocket",
]
license = "MIT OR Apache-2.0"
-edition = "2018"
+edition = "2021"
[features]
default = []
@@ -43,6 +43,6 @@ log = "0.4"
serde = { version = "1", features = ["derive"] }
serde_json = "1"
serde_urlencoded = "0.7"
-tls-openssl = { package = "openssl", version = "0.10.9", optional = true }
-tls-rustls = { package = "rustls", version = "0.20.0", optional = true }
+tls-openssl = { package = "openssl", version = "0.10.55", optional = true }
+tls-rustls = { package = "rustls", version = "0.20", optional = true }
tokio = { version = "1.24.2", features = ["sync"] }
diff --git a/actix-web-actors/CHANGES.md b/actix-web-actors/CHANGES.md
index ea19411b5..4799c7b67 100644
--- a/actix-web-actors/CHANGES.md
+++ b/actix-web-actors/CHANGES.md
@@ -2,6 +2,8 @@
## Unreleased - 2023-xx-xx
+- Minimum supported Rust version (MSRV) is now 1.65 due to transitive `time` dependency.
+
## 4.2.0 - 2023-01-21
- Minimum supported Rust version (MSRV) is now 1.57 due to transitive `time` dependency.
diff --git a/actix-web-actors/Cargo.toml b/actix-web-actors/Cargo.toml
index e89baed96..c6f14554a 100644
--- a/actix-web-actors/Cargo.toml
+++ b/actix-web-actors/Cargo.toml
@@ -7,7 +7,7 @@ keywords = ["actix", "http", "web", "framework", "async"]
homepage = "https://actix.rs"
repository = "https://github.com/actix/actix-web"
license = "MIT OR Apache-2.0"
-edition = "2018"
+edition = "2021"
[lib]
name = "actix_web_actors"
@@ -32,7 +32,6 @@ actix-test = "0.1"
awc = { version = "3", default-features = false }
actix-web = { version = "4", features = ["macros"] }
+env_logger = "0.10"
+futures-util = { version = "0.3.17", default-features = false, features = ["std"] }
mime = "0.3"
-
-env_logger = "0.9"
-futures-util = { version = "0.3.17", default-features = false }
diff --git a/actix-web-actors/README.md b/actix-web-actors/README.md
index dce91f503..fe6122115 100644
--- a/actix-web-actors/README.md
+++ b/actix-web-actors/README.md
@@ -4,7 +4,7 @@
[](https://crates.io/crates/actix-web-actors)
[](https://docs.rs/actix-web-actors/4.2.0)
-
+

[](https://deps.rs/crate/actix-web-actors/4.2.0)
@@ -14,4 +14,4 @@
## Documentation & Resources
- [API Documentation](https://docs.rs/actix-web-actors)
-- Minimum Supported Rust Version (MSRV): 1.59
+- Minimum Supported Rust Version (MSRV): 1.65
diff --git a/actix-web-actors/src/ws.rs b/actix-web-actors/src/ws.rs
index e1110eddb..731f33f86 100644
--- a/actix-web-actors/src/ws.rs
+++ b/actix-web-actors/src/ws.rs
@@ -58,7 +58,6 @@
use std::{
collections::VecDeque,
- convert::TryFrom,
future::Future,
io, mem,
pin::Pin,
diff --git a/actix-web-codegen/CHANGES.md b/actix-web-codegen/CHANGES.md
index 6e962a6ca..b9e4b0aad 100644
--- a/actix-web-codegen/CHANGES.md
+++ b/actix-web-codegen/CHANGES.md
@@ -2,6 +2,8 @@
## Unreleased - 2023-xx-xx
+- Minimum supported Rust version (MSRV) is now 1.65 due to transitive `time` dependency.
+
## 4.2.0 - 2023-02-26
- Add support for custom methods with the `#[route]` macro. [#2969]
diff --git a/actix-web-codegen/Cargo.toml b/actix-web-codegen/Cargo.toml
index 51cb0dfef..4f2fdc566 100644
--- a/actix-web-codegen/Cargo.toml
+++ b/actix-web-codegen/Cargo.toml
@@ -9,7 +9,7 @@ authors = [
"Rob Ede
[](https://deps.rs/crate/actix-web-codegen/4.2.0)
@@ -14,7 +14,7 @@
## Documentation & Resources
- [API Documentation](https://docs.rs/actix-web-codegen)
-- Minimum Supported Rust Version (MSRV): 1.59
+- Minimum Supported Rust Version (MSRV): 1.65
## Compile Testing
diff --git a/actix-web-codegen/src/route.rs b/actix-web-codegen/src/route.rs
index 0772dbd94..0b8bb0f38 100644
--- a/actix-web-codegen/src/route.rs
+++ b/actix-web-codegen/src/route.rs
@@ -1,4 +1,4 @@
-use std::{collections::HashSet, convert::TryFrom};
+use std::collections::HashSet;
use actix_router::ResourceDef;
use proc_macro::TokenStream;
diff --git a/actix-web-codegen/tests/trybuild.rs b/actix-web-codegen/tests/trybuild.rs
index 8839dca3d..9f0aa02f4 100644
--- a/actix-web-codegen/tests/trybuild.rs
+++ b/actix-web-codegen/tests/trybuild.rs
@@ -1,4 +1,4 @@
-#[rustversion::stable(1.59)] // MSRV
+#[rustversion::stable(1.65)] // MSRV
#[test]
fn compile_macros() {
let t = trybuild::TestCases::new();
diff --git a/actix-web-codegen/tests/trybuild/route-custom-lowercase.stderr b/actix-web-codegen/tests/trybuild/route-custom-lowercase.stderr
index 243c4dd68..88198a55d 100644
--- a/actix-web-codegen/tests/trybuild/route-custom-lowercase.stderr
+++ b/actix-web-codegen/tests/trybuild/route-custom-lowercase.stderr
@@ -8,10 +8,20 @@ error[E0277]: the trait bound `fn() -> impl std::future::Future
-[](https://crates.io/crates/actix-web) [](https://docs.rs/actix-web/4.3.1)   [](https://deps.rs/crate/actix-web/4.3.1)
[](https://github.com/actix/actix-web/actions/workflows/ci.yml) [](https://codecov.io/gh/actix/actix-web)  [](https://discord.gg/NWpN5mmg3x)
+[](https://crates.io/crates/actix-web) [](https://docs.rs/actix-web/4.3.1)   [](https://deps.rs/crate/actix-web/4.3.1)
[](https://github.com/actix/actix-web/actions/workflows/ci.yml) [](https://codecov.io/gh/actix/actix-web)  [](https://discord.gg/NWpN5mmg3x)