🚀 actix/actix-web - Release Notes

actix-web: v4.10.2 (2025-03-10)

- No significant changes since `4.10.1`.


actix-web: v4.10.1 (2025-03-10)

- No significant changes since `4.10.0`.


actix-web: v4.10.0 (2025-03-10)

### Added

- Implement `Responder` for `Result<(), E: Into>`. Returning `Ok(())` responds with HTTP 204 No Content.

### Changed

- On Windows, an error is now returned from `HttpServer::bind()` (or TLS variants) when binding to a socket that's already in use.
- Update `brotli` dependency to `7`.
- Minimum supported Rust version (MSRV) is now 1.75.


actix-http: v3.10.0 (2025-03-10)

### Added

- Add `header::CLEAR_SITE_DATA` constant.
- Add `Extensions::get_or_insert[_with]()` methods.
- Implement `From` for `Payload`.
- Implement `From>` for `Payload`.

### Changed

- Update `brotli` dependency to `7`.
- Minimum supported Rust version (MSRV) is now 1.75.


awc: v3.6.0 (2025-03-10)

- Prevent panics on connection pool drop when Tokio runtime is shutdown early.
- Do not send `Host` header on HTTP/2 requests, as it is not required, and some web servers may reject it.
- Update `brotli` dependency to `7`.
- Minimum supported Rust version (MSRV) is now 1.75.


actix-web: v4.9.0 (2024-08-10)

### Added

- Add `middleware::from_fn()` helper.
- Add `web::ThinData` extractor.


actix-http: v3.9.0 (2024-08-10)

### Added

- Implement `FromIterator<(HeaderName, HeaderValue)>` for `HeaderMap`.


awc: v3.5.1 (2024-08-10)

- Fix WebSocket `Host` request header value when using a non-default port.


actix-web-actors: v4.3.1 (2024-08-07)

- Reduce memory usage by `take`-ing (rather than `split`-ing) the encoded buffer when yielding bytes in the response stream.
- Mark crate as deprecated.
- Minimum supported Rust version (MSRV) is now 1.72.

actix-multipart: v0.7.2 (2024-07-06)

- Fix re-exported version of `actix-multipart-derive`.


actix-multipart: v0.7.1 (2024-07-06)

- Expose `LimitExceeded` error type.


actix-multipart: v0.7.0 (2024-07-06)

- Add `MultipartError::ContentTypeIncompatible` variant.
- Add `MultipartError::ContentDispositionNameMissing` variant.
- Add `Field::bytes()` method.
- Rename `MultipartError::{NoContentDisposition => ContentDispositionMissing}` variant.
- Rename `MultipartError::{NoContentType => ContentTypeMissing}` variant.
- Rename `MultipartError::{ParseContentType => ContentTypeParse}` variant.
- Rename `MultipartError::{Boundary => BoundaryMissing}` variant.
- Rename `MultipartError::{UnsupportedField => UnknownField}` variant.
- Remove top-level re-exports of `test` utilities.


actix-multipart-derive: v0.7.0 (2024-07-06)

- Minimum supported Rust version (MSRV) is now 1.72.


actix-web: v4.8.0 (2024-06-19)

### Added

- Add `web::Html` responder.
- Add `HttpRequest::full_url()` method to get the complete URL of the request.

### Fixed

- Always remove port from return value of `ConnectionInfo::realip_remote_addr()` when handling IPv6 addresses. from the `Forwarded` header.
- The `UrlencodedError::ContentType` variant (relevant to the `Form` extractor) now uses the 415 (Media Type Unsupported) status code in it's `ResponseError` implementation.
- Apply `HttpServer::max_connection_rate()` setting when using rustls v0.22 or v0.23.


actix-http: v3.8.0 (2024-06-19)

### Added

- Add `error::InvalidStatusCode` re-export.


actix-test: v0.1.5 (2024-06-09)

- Add `TestServerConfig::listen_address()` method.


actix-files: v0.6.6 (2024-06-09)

- Update `tokio-uring` dependency to `0.4`.
- Minimum supported Rust version (MSRV) is now 1.72.


actix-web: v4.7.0 (2024-06-08)

### Added

- Add `#[scope]` macro.
- Add `middleware::Identity` type.
- Add `CustomizeResponder::add_cookie()` method.
- Add `guard::GuardContext::app_data()` method.
- Add `compat-routing-macros-force-pub` crate feature which (on-by-default) which, when disabled, causes handlers to inherit their attached function's visibility.
- Add `compat` crate feature group (on-by-default) which, when disabled, helps with transitioning to some planned v5.0 breaking changes, starting only with `compat-routing-macros-force-pub`.
- Implement `From>` for `Error`.


actix-test: v0.1.4 (2024-06-08)

- Add `TestServerConfig::rustls_0_23()` method for Rustls v0.23 support behind new `rustls-0_23` crate feature.
- Add `TestServerConfig::disable_redirects()` method.
- Various types from `awc`, such as `ClientRequest` and `ClientResponse`, are now re-exported.
- Minimum supported Rust version (MSRV) is now 1.72.


actix-multipart: v0.6.2 (2024-06-08)

- Add testing utilities under new module `test`.
- Minimum supported Rust version (MSRV) is now 1.72.


actix-web-codegen: v4.3.0 (2024-06-08)

- Add `#[scope]` macro.
- Add `compat-routing-macros-force-pub` crate feature which, on-by-default, which when disabled causes handlers to inherit their attached function's visibility.
- Prevent inclusion of default `actix-router` features.
- Minimum supported Rust version (MSRV) is now 1.72.


actix-web: v4.6.0 (2024-05-19)

### Added

- Add `unicode` crate feature (on-by-default) to switch between `regex` and `regex-lite` as a trade-off between full unicode support and binary size.
- Add `rustls-0_23` crate feature.
- Add `HttpServer::{bind_rustls_0_23, listen_rustls_0_23}()` builder methods.
- Add `HttpServer::tls_handshake_timeout()` builder method for `rustls-0_22` and `rustls-0_23`.

### Changed

- Update `brotli` dependency to `6`.
- Minimum supported Rust version (MSRV) is now 1.72.

### Fixed

- Avoid type confusion with `rustls` in some circumstances.


actix-router: v0.5.3 (2024-05-19)

- Add `unicode` crate feature (on-by-default) to switch between `regex` and `regex-lite` as a trade-off between full unicode support and binary size.
- Minimum supported Rust version (MSRV) is now 1.72.


actix-http: v3.7.0 (2024-05-19)

### Added

- Add `rustls-0_23` crate feature
- Add `{h1::H1Service, h2::H2Service, HttpService}::rustls_0_23()` and `HttpService::rustls_0_23_with_config()` service constructors.

### Changed

- Update `brotli` dependency to `6`.
- Minimum supported Rust version (MSRV) is now 1.72.


awc: v3.5.0 (2024-05-19)

- Add `rustls-0_23`, `rustls-0_23-webpki-roots`, and `rustls-0_23-native-roots` crate features.
- Add `awc::Connector::rustls_0_23()` constructor.
- Fix `rustls-0_22-native-roots` root store lookup
- Update `brotli` dependency to `6`.
- Minimum supported Rust version (MSRV) is now 1.72.


actix-web: v4.5.1 (2024-02-04)

### Fixed

- Fix missing import when using enabling Rustls v0.22 support.


actix-web: v4.5.0 (2024-02-04)

### Added

- Add `rustls-0_22` crate feature.
- Add `HttpServer::{bind_rustls_0_22, listen_rustls_0_22}()` builder methods.


actix-test: v0.1.3 (2024-02-04)

- Add `TestServerConfig::rustls_0_22()` method for Rustls v0.22 support behind new `rustls-0_22` crate feature.


actix-http: v3.6.0 (2024-02-04)

### Added

- Add `rustls-0_22` crate feature.
- Add `{h1::H1Service, h2::H2Service, HttpService}::rustls_0_22()` and `HttpService::rustls_0_22_with_config()` service constructors.
- Implement `From<&HeaderMap>` for `http::HeaderMap`.


actix-http-test: v3.2.0 (2024-02-04)

- Minimum supported Rust version (MSRV) is now 1.68 due to transitive `time` dependency.