PackageTrack
Sign in Get early access

actix-http

HTTP types and services for the Actix ecosystem

3.13.3 78M downloads/mo #930 most downloaded on crates.io actix/actix-web

What this package is like to depend on

Last release 14 days ago

09 Aug 2026

Ships fairly regularly

a new release about every 2 months

Nearly every release is documented

notes for 52 of 52 stable releases

1 version withdrawn

withdrawn after publishing

7 years old

95 releases · first in 2019

7 releases in the last 12 months

see the full history below

Release timeline

95 releases · Mar 2019 to Aug 2026
2020 2021 2022 2023 2024 2025 2026
Release Pre-release Withdrawn

Releases

latest 60 of 95
  1. 3.13.3 09 Aug 2026
    Release notes
    • Close idle HTTP/1 keep-alive connections during graceful server shutdown and close active connections after their current request finishes.
    Open source →
    Release notes
    • Close idle HTTP/1 keep-alive connections during graceful server shutdown and close active connections after their current request finishes.
    Open source →
  2. 3.13.2 07 Aug 2026
    Release notes
    • Fix MessageBody implementation for ByteString to signal completion after yielding its contents. #4177
    Open source →
    Release notes
    • Fix MessageBody implementation for ByteString to signal completion after yielding its contents. #4177
    Open source →
  3. 3.13.1 22 Jun 2026
    Release notes

    3.13.1

    • Fix HTTP/1 WebSocket upgrade responses being overwritten with Connection: close when the upgraded request payload remains open. #4115
    Open source →
    Release notes
    • Fix HTTP/1 WebSocket upgrade responses being overwritten with Connection: close when the upgraded request payload remains open. #4115
    Open source →
  4. 3.13.0 21 Jun 2026
    Release notes

    3.13.0

    • When configured, gracefully close HTTP/1 connections after early responses to unread request bodies. #3967
    • Wake HTTP/1 payload receivers with an incomplete-payload error when the sender is dropped before EOF. #3100
    • Update foldhash dependency to 0.2.
    Open source →
    Release notes
    • When configured, gracefully close HTTP/1 connections after early responses to unread request bodies. #3967
    • Wake HTTP/1 payload receivers with an incomplete-payload error when the sender is dropped before EOF. #3100
    • Update foldhash dependency to 0.2.
    Open source →
  5. 3.12.1 18 Apr 2026
    Release notes

    Notice: This release contains a security fix. Users are encouraged to update to this version ASAP.

    • SECURITY: Reject HTTP/1 requests with ambiguous request framing from Content-Length and Transfer-Encoding headers to prevent request smuggling.
    • Encode the HTTP/1 Connection: Upgrade header in Camel-Case when camel-case header formatting is enabled.#3953
    • Fix HeaderMap iterators' len() and size_hint() implementations for multi-value headers.
    • Update rand dependency to 0.10.
    • Update sha1 dependency to 0.11.
    • Add ServiceConfigBuilder::h1_write_buffer_size() and HttpServiceBuilder::h1_write_buffer_size().
    Open source →
  6. 3.12.0 18 Feb 2026
    Release notes
    • Minimum supported Rust version (MSRV) is now 1.88.
    • Increase default HTTP/2 flow control window sizes. #3638
    • Expose configuration methods to improve upload throughput. #3638
    • Fix truncated body ending without error when connection closed abnormally. #3067
    • Add config/method for TCP_NODELAY. #3918
    • Do not compress 206 Partial Content responses. #3191
    • Fix lingering sockets and client stalls when responding early to dropped chunked request payloads. #2972
    Open source →
  7. 3.11.2 05 Oct 2025
    Release notes
    • Properly wake Payload receivers when feeding errors or EOF.
    • Add ServiceConfigBuilder type to facilitate future configuration extensions.
    • Add a configuration option to allow/disallow half closed connections in HTTP/1. This defaults to allow, reverting the change made in 3.11.1.
    • Shutdown connections when HTTP Responses are written without reading full Requests.
    Open source →
  8. 3.11.1 26 Aug 2025
    Release notes
    • Prevent more hangs after client disconnects.
    • More malformed WebSocket frames are now gracefully rejected.
    • Using TestRequest::set_payload() now sets a Content-Length header.
    Open source →
  9. 3.11.0 10 May 2025
    Release notes
    • Update brotli dependency to 8.
    Open source →
  10. 3.10.0 10 Mar 2025
    Release notes

    Added

    • Add header::CLEAR_SITE_DATA constant.
    • Add Extensions::get_or_insert[_with]() methods.
    • Implement From<Bytes> for Payload.
    • Implement From<Vec<u8>> for Payload.

    Changed

    • Update brotli dependency to 7.
    • Minimum supported Rust version (MSRV) is now 1.75.
    Open source →
  11. 3.9.0 10 Aug 2024
    Release notes

    Added

    • Implement FromIterator<(HeaderName, HeaderValue)> for HeaderMap.
    Open source →
  12. 3.8.0 19 Jun 2024
    Release notes

    Added

    • Add error::InvalidStatusCode re-export.
    Open source →
  13. 3.7.0 19 May 2024
    Release notes

    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.
    Open source →
  14. 3.6.0 04 Feb 2024
    Release notes

    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.
    Open source →
  15. 3.5.1 25 Dec 2023
    Release notes

    Fixed

    • Prevent hang when returning zero-sized response bodies through compression layer.
    Open source →
  16. 3.5.0 24 Dec 2023 withdrawn
    Release notes

    Added

    • Implement From<HeaderMap> for http::HeaderMap.

    Changed

    • Updated zstd dependency to 0.13.

    Fixed

    • Prevent compression of zero-sized response bodies.
    Open source →
  17. 3.4.0 29 Aug 2023
    Release notes

    Added

    • Add rustls-0_20 crate feature.
    • Add {h1::H1Service, h2::H2Service, HttpService}::rustls_021() and HttpService::rustls_021_with_config() service constructors.
    • Add body::to_bytes_limited() function.
    • Add body::BodyLimitExceeded error type.

    Changed

    • Minimum supported Rust version (MSRV) is now 1.68 due to transitive time dependency.
    Open source →
  18. 3.3.1 02 Mar 2023
    Release notes

    Fixed

    • Use correct http version requirement to ensure support for const HeaderName definitions.
    Open source →
  19. 3.3.0 21 Jan 2023
    Release notes

    Added

    • Implement MessageBody for Cow<'static, str> and Cow<'static, [u8]>. #2959
    • Implement MessageBody for &mut B where B: MessageBody + Unpin. #2868
    • Implement MessageBody for Pin<B> where B::Target: MessageBody. #2868
    • Automatic h2c detection via new service finalizer HttpService::tcp_auto_h2c(). #2957
    • HeaderMap::retain(). #2955
    • Header name constants in header module. #2956 #2968
      • CACHE_STATUS
      • CDN_CACHE_CONTROL
      • CROSS_ORIGIN_EMBEDDER_POLICY
      • CROSS_ORIGIN_OPENER_POLICY
      • PERMISSIONS_POLICY
      • X_FORWARDED_FOR
      • X_FORWARDED_HOST
      • X_FORWARDED_PROTO

    Fixed

    • Fix non-empty body of HTTP/2 HEAD responses. #2920

    Performance

    • Improve overall performance of operations on Extensions. #2890
    Open source →
  20. 3.2.2 11 Sep 2022
    Release notes

    Changed

    • Minimum supported Rust version (MSRV) is now 1.59 due to transitive time dependency.

    Fixed

    • Avoid possibility of dispatcher getting stuck while back-pressuring I/O. #2369
    Open source →
  21. 3.2.1 02 Jul 2022
    Release notes

    Fixed

    • Fix parsing ambiguity in Transfer-Encoding and Content-Length headers for HTTP/1.0 requests. #2794
    Open source →
  22. 3.2.0 01 Jul 2022
    Release notes

    Changed

    • Minimum supported Rust version (MSRV) is now 1.57 due to transitive time dependency.

    Fixed

    • Websocket parser no longer throws endless overflow errors after receiving an oversized frame. #2790
    • Retain previously set Vary headers when using compression encoder. #2798
    Open source →
    Release notes
    • Minimum supported Rust version (MSRV) is now 1.68 due to transitive time dependency.
    Open source →
  23. 3.1.0 11 Jun 2022
    Release notes

    Changed

    • Minimum supported Rust version (MSRV) is now 1.56 due to transitive hashbrown dependency.

    Fixed

    • Revert broken fix in #2624 that caused erroneous 500 error responses. Temporarily re-introduces #2357 bug. #2779
    Open source →
    Release notes
    • Minimum supported Rust version (MSRV) is now 1.59.
    Open source →
  24. 3.0.4 09 Mar 2022
    Release notes

    Fixed

    • Document on docs.rs with ws feature enabled.
    Open source →
  25. 3.0.3 08 Mar 2022
    Release notes

    Fixed

    • Allow spaces between header name and colon when parsing responses. #2684
    Open source →
  26. 3.0.2 05 Mar 2022
    Release notes

    Fixed

    • Fix encoding camel-case header names with more than one hyphen. #2683
    Open source →
  27. 3.0.1 04 Mar 2022
    Release notes
    • Fix panic in H1 dispatcher when pipelining is used with keep-alive. #2678
    Open source →
  28. 3.0.0 25 Feb 2022
    Release notes

    Dependencies

    • Updated actix-* to Tokio v1-based versions. #1813
    • Updated bytes to 1.0. #1813
    • Updated h2 to 0.3. #1813
    • Updated rustls to 0.20.0. #2414
    • Updated language-tags to 0.3.
    • Updated tokio to 1.

    Added

    • Crate Features:
      • ws; disabled by default. #2618
      • http2; disabled by default. #2618
      • compress-brotli; disabled by default. #2618
      • compress-gzip; disabled by default. #2618
      • compress-zstd; disabled by default. #2618
    • Functions:
      • body::to_bytes for async collecting message body into Bytes. #2158
    • Traits:
      • TryIntoHeaderPair; allows using typed and untyped headers in the same methods. #1869
    • Types:
      • body::BoxBody; a boxed message body with boxed errors. #2183
      • body::EitherBody enum. #2468
      • body::None struct. #2468
      • Re-export http crate's Error type as error::HttpError. #2171
    • Variants:
      • ContentEncoding::Zstd along with . #2244
      • Protocol::Http3 for future compatibility and also mark #[non_exhaustive]. 00ba8d55
    • Methods:
      • ContentEncoding::to_header_value(). #2501
      • header::QualityItem::{max, min}(). #2486
      • header::QualityItem::zero() that uses Quality::ZERO. #2501
      • HeaderMap::drain() as an efficient draining iterator. #1964
      • HeaderMap::len_keys() has the behavior of the old len method. #1964
      • MessageBody::boxed trait method for wrapping boxing types efficiently. #2520
      • MessageBody::try_into_bytes trait method, with default implementation, for optimizations on body types that complete in exactly one poll. #2522
      • Request::conn_data(). #2491
      • Request::take_conn_data(). #2491
      • Request::take_req_data(). #2487
      • Response::{ok, bad_request, not_found, internal_server_error}(). #2159
      • Response::into_body() that consumes response and returns body type. #2201
      • Response::map_into_boxed_body(). #2468
      • ResponseBuilder::append_header() method which allows using typed and untyped headers. #1869
      • ResponseBuilder::insert_header() method which allows using typed and untyped headers. #1869
      • ResponseHead::set_camel_case_headers(). #2587
      • TestRequest::insert_header() method which allows using typed and untyped headers. #1869
    • Implementations:
      • Implement Clone for ws::HandshakeError. #2468
      • Implement Clone for body::AnyBody<S> where S: Clone. #2448
      • Implement Clone for RequestHead. #2487
      • Implement Clone for ResponseHead. #2585
      • Implement Copy for QualityItem<T> where T: Copy. #2501
      • Implement Default for ContentEncoding. #1912
      • Implement Default for HttpServiceBuilder. #2611
      • Implement Default for KeepAlive. #2611
      • Implement Default for Response. #2201
      • Implement Default for ws::Codec. #1920
      • Implement Display for header::Quality. #2486
      • Implement Eq for header::ContentEncoding. #2501
      • Implement ExactSizeIterator and FusedIterator for all HeaderMap iterators. #2470
      • Implement From<Duration> for KeepAlive. #2611
      • Implement From<Option<Duration>> for KeepAlive. #2611
      • Implement From<Vec<u8>> for Response<Vec<u8>>. #2625
      • Implement FromStr for ContentEncoding. #1912
      • Implement Header for ContentEncoding. #1912
      • Implement IntoHeaderValue for ContentEncoding. #1912
      • Implement IntoIterator for HeaderMap. #1964
      • Implement MessageBody for bytestring::ByteString. #2468
      • Implement MessageBody for Pin<Box<T>> where T: MessageBody. #2152
    • Misc:
      • Re-export StatusCode, Method, Version and Uri at the crate root. #2171
      • Re-export ContentEncoding and ConnectionType at the crate root. #2171
      • Quality::ZERO associated constant equivalent to q=0. #2501
      • header::Quality::{MAX, MIN} associated constants equivalent to q=1 and q=0.001, respectively. #2486
      • Timeout for canceling HTTP/2 server side connection handshake. Configurable with ServiceConfig::client_timeout; defaults to 5 seconds. #2483
      • #[must_use] for ws::Codec to prevent subtle bugs. #1920

    Changed

    • Traits:
      • Rename IntoHeaderValue => TryIntoHeaderValue. #2510
      • MessageBody now has an associated Error type. #2183
    • Types:
      • Protocol enum is now marked #[non_exhaustive].
      • error::DispatcherError enum is now marked #[non_exhaustive]. #2624
      • ContentEncoding is now marked #[non_exhaustive]. #2377
      • Error enums are marked #[non_exhaustive]. #2161
      • Rename PayloadStream to BoxedPayloadStream. #2545
      • The body type parameter of Response no longer has a default. #2152
    • Enum Variants:
      • Rename ContentEncoding::{Br => Brotli}. #2501
      • Payload inner fields are now named. #2545
      • ws::Message::Text now contains a bytestring::ByteString. #1864
    • Methods:
      • Rename ServiceConfig::{client_timer_expire => client_request_deadline}. #2611
      • Rename ServiceConfig::{client_disconnect_timer => client_disconnect_deadline}. #2611
      • Rename h1::Codec::{keepalive => keep_alive}. #2611
      • Rename h1::Codec::{keepalive_enabled => keep_alive_enabled}. #2611
      • Rename h1::ClientCodec::{keepalive => keep_alive}. #2611
      • Rename h1::ClientPayloadCodec::{keepalive => keep_alive}. #2611
      • Rename header::EntityTag::{weak => new_weak, strong => new_strong}. #2565
      • Rename TryIntoHeaderValue::{try_into => try_into_value} to avoid ambiguity with std TryInto trait. #1894
      • Deadline methods in ServiceConfig now return std::time::Instants instead of Tokio's wrapper type. #2611
      • Places in Response where ResponseBody<B> was received or returned now simply use B. #2201
      • encoding::Encoder::response now returns AnyBody<Encoder<B>>. #2448
      • Extensions::insert returns replaced item. #1904
      • HeaderMap::get_all now returns a std::slice::Iter. #2527
      • HeaderMap::insert now returns iterator of removed values. #1964
      • HeaderMap::len now returns number of values instead of number of keys. #1964
      • HeaderMap::remove now returns iterator of removed values. #1964
      • ResponseBuilder::body(B) now returns Response<EitherBody<B>>. #2468
      • ResponseBuilder::content_type now takes an impl TryIntoHeaderValue to support using typed mime types. #1894
      • ResponseBuilder::finish() now returns Response<EitherBody<()>>. #2468
      • ResponseBuilder::json now takes impl Serialize. #2052
      • ResponseBuilder::message_body now returns a Result. #2201
      • ServiceConfig::keep_alive now returns a KeepAlive. #2611
      • ws::hash_key now returns array. #2035
    • Trait Implementations:
      • Implementation of Stream for Payload no longer requires the Stream variant be Unpin. #2545
      • Implementation of Future for h1::SendResponse no longer requires the body type be Unpin. #2545
      • Implementation of Stream for encoding::Decoder no longer requires the stream type be Unpin. #2545
      • Implementation of From for error types now return a Response<BoxBody>. #2468
    • Misc:
      • header module is now public. #2171
      • uri module is now public. #2171
      • Request-local data container is no longer part of a RequestHead. Instead it is a distinct part of a Request. #2487
      • All error trait bounds in server service builders have changed from Into<Error> to Into<Response<BoxBody>>. #2253
      • All error trait bounds in message body and stream impls changed from Into<Error> to Into<Box<dyn std::error::Error>>. #2253
      • Guarantee ordering of header::GetAll iterator to be same as insertion order. #2467
      • Connection data set through the on_connect_ext callbacks is now accessible only from the new Request::conn_data() method. #2491
      • Brotli (de)compression support is now provided by the brotli crate. #2538
      • Minimum supported Rust version (MSRV) is now 1.54.

    Fixed

    • A Vary header is now correctly sent along with compressed content. #2501
    • HTTP/1.1 dispatcher correctly uses client request timeout. #2611
    • Fixed issue where handlers that took payload but then dropped without reading it to EOF it would cause keep-alive connections to become stuck. #2624
    • ContentEncoding's Identity variant can now be parsed from a string. #2501
    • HttpServer::{listen_rustls(), bind_rustls()} now honor the ALPN protocols in the configuration parameter. [#2226]
    • Remove unnecessary Into<Error> bound on Encoder body types. #2375
    • Remove unnecessary Unpin bound on ResponseBuilder::streaming. #2253
    • BodyStream and SizedStream are no longer restricted to Unpin types. #2152
    • Fixed slice creation pointing to potential uninitialized data on h1 encoder. #2364
    • Fixed quality parse error in Accept-Encoding header. #2344

    Removed

    • Crate Features:
      • compress feature. #2065
      • cookies feature. #2065
      • trust-dns feature. #2425
      • actors optional feature and trait implementation for actix types. #1969
    • Functions:
      • header::qitem helper. Replaced with header::QualityItem::max. #2486
    • Types:
      • body::Body; replaced with EitherBody and BoxBody. #2468
      • body::ResponseBody. #2446
      • ConnectError::SslHandshakeError and re-export of HandshakeError. Due to the removal of this type from tokio-openssl crate. OpenSSL handshake error now returns ConnectError::SslError. #1813
      • error::Canceled re-export. #1994
      • error::Result type alias. #2201
      • error::BlockingError #2660
      • InternalError and all the error types it constructed were moved up to actix-web. #2215
      • Typed HTTP headers; they have moved up to actix-web. [2094]
      • Re-export of http crate's HeaderMap types in addition to ours. #2171
    • Enum Variants:
      • body::BodySize::Empty; an empty body can now only be represented as a Sized(0) variant. #2446
      • ContentEncoding::Auto. #2501
      • EncoderError::Boxed. #2446
    • Methods:
      • ContentEncoding::is_compression(). #2501
      • h1::Payload::readany(). #2545
      • HttpMessage::cookie[s]() trait methods. #2065
      • HttpServiceBuilder::new(); use default instead. #2611
      • on_connect (previously deprecated) methods have been removed; use on_connect_ext. #1857
      • Response::build_from(). #2159
      • Response::error() #2205
      • Response::take_body() and old Response::into_body() method that casted body type. #2201
      • Response's status code builders. #2159
      • ResponseBuilder::{if_true, if_some}() (previously deprecated). #2148
      • ResponseBuilder::{set, set_header}(); use ResponseBuilder::insert_header(). #1869
      • ResponseBuilder::extensions[_mut](). #2585
      • ResponseBuilder::header(); use ResponseBuilder::append_header(). #1869
      • ResponseBuilder::json(). #2148
      • ResponseBuilder::json2(). #1903
      • ResponseBuilder::streaming(). #2468
      • ResponseHead::extensions[_mut](). #2585
      • ServiceConfig::{client_timer, keep_alive_timer}(). #2611
      • TestRequest::with_hdr(); use TestRequest::default().insert_header(). #1869
      • TestRequest::with_header(); use TestRequest::default().insert_header(). #1869
    • Trait implementations:
      • Implementation of Copy for ws::Codec. #1920
      • Implementation of From<Option<usize>> for KeepAlive; use Durations instead. #2611
      • Implementation of From<serde_json::Value> for Body. #2148
      • Implementation of From<usize> for KeepAlive; use Durations instead. #2611
      • Implementation of Future for Response. #2201
      • Implementation of Future for ResponseBuilder. #2468
      • Implementation of Into<Error> for Response<Body>. #2215
      • Implementation of Into<Error> for ResponseBuilder. #2215
      • Implementation of ResponseError for actix_utils::timeout::TimeoutError. #2127
      • Implementation of ResponseError for CookieParseError. #2065
      • Implementation of TryFrom<u16> for header::Quality. #2486
    • Misc:
      • http module; most everything it contained is exported at the crate root. #2488
      • cookies module (re-export). #2065
      • client module. Connector types now live in awc. #2425
      • error field from Response. #2205
      • downcast and downcast_get_type_id macros. #2291
      • Down-casting for MessageBody types; use standard Any trait. #2183

    <details> <summary>3.0.0 Pre-Releases</summary>

    Open source →
    Release notes
    • TestServer::stop is now async and will wait for the server and system to shutdown. #2442
    • Added TestServer::client_headers method. #2097
    • Update actix-server dependency to 2.
    • Update actix-tls dependency to 3.
    • Update bytes to 1.0. #1813
    • Minimum supported Rust version (MSRV) is now 1.57.

    <details> <summary>3.0.0 Pre-Releases</summary>

    Open source →
  29. 3.0.0-rc.4 22 Feb 2022 pre-release
    Release notes

    Fixed

    Open source →
  30. 3.0.0-rc.3 16 Feb 2022 pre-release
    Release notes
    • No significant changes since 3.0.0-rc.2.
    Open source →
  31. 3.0.0-rc.2 08 Feb 2022 pre-release
    Release notes

    Added

    • Implement From<Vec<u8>> for Response<Vec<u8>>. #2625

    Changed

    • error::DispatcherError enum is now marked #[non_exhaustive]. #2624

    Fixed

    • Issue where handlers that took payload but then dropped without reading it to EOF it would cause keep-alive connections to become stuck. #2624
    Open source →
  32. 3.0.0-rc.1 01 Feb 2022 pre-release
    Release notes

    Added

    • Implement Default for KeepAlive. #2611
    • Implement From<Duration> for KeepAlive. #2611
    • Implement From<Option<Duration>> for KeepAlive. #2611
    • Implement Default for HttpServiceBuilder. #2611
    • Crate ws feature flag, disabled by default. #2618
    • Crate http2 feature flag, disabled by default. #2618

    Changed

    • Rename ServiceConfig::{client_timer_expire => client_request_deadline}. #2611
    • Rename ServiceConfig::{client_disconnect_timer => client_disconnect_deadline}. #2611
    • Deadline methods in ServiceConfig now return std::time::Instants instead of Tokio's wrapper type. #2611
    • Rename h1::Codec::{keepalive => keep_alive}. #2611
    • Rename h1::Codec::{keepalive_enabled => keep_alive_enabled}. #2611
    • Rename h1::ClientCodec::{keepalive => keep_alive}. #2611
    • Rename h1::ClientPayloadCodec::{keepalive => keep_alive}. #2611
    • ServiceConfig::keep_alive now returns a KeepAlive. #2611

    Fixed

    • HTTP/1.1 dispatcher correctly uses client request timeout. #2611

    Removed

    • ServiceConfig::{client_timer, keep_alive_timer}. #2611
    • impl From<usize> for KeepAlive; use Durations instead. #2611
    • impl From<Option<usize>> for KeepAlive; use Durations instead. #2611
    • HttpServiceBuilder::new; use default instead. #2611
    Open source →
  33. 3.0.0-beta.19 21 Jan 2022 pre-release
    Release notes

    Added

    • Response headers can be sent as camel case using res.head_mut().set_camel_case_headers(true). #2587
    • ResponseHead now implements Clone. #2585

    Changed

    • Brotli (de)compression support is now provided by the brotli crate. #2538

    Removed

    • ResponseHead::extensions[_mut](). #2585
    • ResponseBuilder::extensions[_mut](). #2585
    Open source →
  34. 3.0.0-beta.18 04 Jan 2022 pre-release
    Release notes

    Added

    • impl Eq for header::ContentEncoding. #2501
    • impl Copy for QualityItem where T: Copy. #2501
    • Quality::ZERO equivalent to q=0. #2501
    • QualityItem::zero that uses Quality::ZERO. #2501
    • ContentEncoding::to_header_value(). #2501

    Changed

    • Quality::MIN is now the smallest non-zero value. #2501
    • QualityItem::min semantics changed with QualityItem::MIN. #2501
    • Rename ContentEncoding::{Br => Brotli}. #2501
    • Rename header::EntityTag::{weak => new_weak, strong => new_strong}. #2565
    • Minimum supported Rust version (MSRV) is now 1.54.

    Fixed

    • ContentEncoding::Identity can now be parsed from a string. #2501
    • A Vary header is now correctly sent along with compressed content. #2501

    Removed

    • ContentEncoding::Auto variant. #2501
    • ContentEncoding::is_compression(). #2501
    Open source →
  35. 3.0.0-beta.17 27 Dec 2021 pre-release
    Release notes

    Changed

    • HeaderMap::get_all now returns a std::slice::Iter. #2527
    • Payload inner fields are now named. #2545
    • impl Stream for Payload no longer requires the Stream variant be Unpin. #2545
    • impl Future for h1::SendResponse no longer requires the body type be Unpin. #2545
    • impl Stream for encoding::Decoder no longer requires the stream type be Unpin. #2545
    • Rename PayloadStream to BoxedPayloadStream. #2545

    Removed

    • h1::Payload::readany. #2545
    Open source →
  36. 3.0.0-beta.16 17 Dec 2021 pre-release
    Release notes

    Added

    • New method on MessageBody trait, try_into_bytes, with default implementation, for optimizations on body types that complete in exactly one poll. Replaces is_complete_body and take_complete_body. #2522

    Changed

    • Rename trait IntoHeaderPair => TryIntoHeaderPair. #2510
    • Rename TryIntoHeaderPair::{try_into_header_pair => try_into_pair}. #2510
    • Rename trait IntoHeaderValue => TryIntoHeaderValue. #2510

    Removed

    • MessageBody::{is_complete_body,take_complete_body}. #2522
    Open source →
  37. 3.0.0-beta.15 11 Dec 2021 pre-release
    Release notes

    Added

    • Add timeout for canceling HTTP/2 server side connection handshake. Default to 5 seconds. #2483
    • HTTP/2 handshake timeout can be configured with ServiceConfig::client_timeout. #2483
    • Response::map_into_boxed_body. #2468
    • body::EitherBody enum. #2468
    • body::None struct. #2468
    • Impl MessageBody for bytestring::ByteString. #2468
    • impl Clone for ws::HandshakeError. #2468
    • #[must_use] for ws::Codec to prevent subtle bugs. #1920
    • impl Default for ws::Codec. #1920
    • header::QualityItem::{max, min}. #2486
    • header::Quality::{MAX, MIN}. #2486
    • impl Display for header::Quality. #2486
    • Connection data set through the on_connect_ext callbacks is now accessible only from the new Request::conn_data() method. #2491
    • Request::take_conn_data(). #2491
    • Request::take_req_data(). #2487
    • impl Clone for RequestHead. #2487
    • New methods on MessageBody trait, is_complete_body and take_complete_body, both with default implementations, for optimizations on body types that are done in exactly one poll/chunk. #2497
    • New boxed method on MessageBody trait for wrapping body type. #2520

    Changed

    • Rename body::BoxBody::{from_body => new}. #2468
    • Body type for Responses returned from Response::{new, ok, etc...} is now BoxBody. #2468
    • The Error associated type on MessageBody type now requires impl Error (or similar). #2468
    • Error types using in service builders now require Into<Response<BoxBody>>. #2468
    • From implementations on error types now return a Response<BoxBody>. #2468
    • ResponseBuilder::body(B) now returns Response<EitherBody<B>>. #2468
    • ResponseBuilder::finish() now returns Response<EitherBody<()>>. #2468

    Removed

    • ResponseBuilder::streaming. #2468
    • impl Future for ResponseBuilder. #2468
    • Remove unnecessary MessageBody bound on types passed to body::AnyBody::new. #2468
    • Move body::AnyBody to awc. Replaced with EitherBody and BoxBody. #2468
    • impl Copy for ws::Codec. #1920
    • header::qitem helper. Replaced with header::QualityItem::max. #2486
    • impl TryFrom<u16> for header::Quality. #2486
    • http module. Most everything it contained is exported at the crate root. #2488
    Open source →
  38. 3.0.0-beta.14 30 Nov 2021 pre-release
    Release notes

    Changed

    • Guarantee ordering of header::GetAll iterator to be same as insertion order. #2467
    • Expose header::map module. #2467
    • Implement ExactSizeIterator and FusedIterator for all HeaderMap iterators. #2470
    • Update actix-tls to 3.0.0-rc.1. #2474
    Open source →
  39. 3.0.0-beta.13 22 Nov 2021 pre-release
    Release notes

    Added

    • body::AnyBody::empty for quickly creating an empty body. #2446
    • body::AnyBody::none for quickly creating a "none" body. #2456
    • impl Clone for body::AnyBody<S> where S: Clone. #2448
    • body::AnyBody::into_boxed for quickly converting to a type-erased, boxed body type. #2448

    Changed

    • Rename body::AnyBody::{Message => Body}. #2446
    • Rename body::AnyBody::{from_message => new_boxed}. #2448
    • Rename body::AnyBody::{from_slice => copy_from_slice}. #2448
    • Rename body::{BoxAnyBody => BoxBody}. #2448
    • Change representation of AnyBody to include a type parameter in Body variant. Defaults to BoxBody. #2448
    • Encoder::response now returns AnyBody<Encoder<B>>. #2448

    Removed

    • body::AnyBody::Empty; an empty body can now only be represented as a zero-length Bytes variant. #2446
    • body::BodySize::Empty; an empty body can now only be represented as a Sized(0) variant. #2446
    • EncoderError::Boxed; it is no longer required. #2446
    • body::ResponseBody; is function is replaced by the new body::AnyBody enum. #2446
    Open source →
    Release notes
    • No significant changes since 3.0.0-beta.12.
    Open source →
  40. 3.0.0-beta.12 15 Nov 2021 pre-release
    Release notes

    Changed

    • Update actix-server to 2.0.0-beta.9. #2442

    Removed

    Open source →
    Release notes
    • No significant changes since 3.0.0-beta.11.
    Open source →
  41. 3.0.0-beta.11 20 Oct 2021 pre-release
    Release notes

    Changed

    • Updated rustls to v0.20. #2414
    • Minimum supported Rust version (MSRV) is now 1.52.
    Open source →
    Release notes
    • Minimum supported Rust version (MSRV) is now 1.54.
    Open source →
  42. 3.0.0-beta.10 09 Sep 2021 pre-release
    Release notes

    Changed

    • ContentEncoding is now marked #[non_exhaustive]. #2377
    • Minimum supported Rust version (MSRV) is now 1.51.

    Fixed

    • Remove slice creation pointing to potential uninitialized data on h1 encoder. #2364
    • Remove Into<Error> bound on Encoder body types. #2375
    • Fix quality parse error in Accept-Encoding header. #2344
    Open source →
    Release notes
    • Update actix-server to 2.0.0-rc.2. #2550
    Open source →
  43. 3.0.0-beta.9 09 Aug 2021 pre-release
    Release notes

    Fixed

    Open source →
    Release notes
    • No significant changes since 3.0.0-beta.8.
    Open source →
  44. 3.0.0-beta.8 26 Jun 2021 pre-release
    Release notes

    Changed

    • Change compression algorithm features flags. #2250

    Removed

    • downcast and downcast_get_type_id macros. #2291
    Open source →
    Release notes
    • Update actix-tls to 3.0.0-rc.1. #2474
    Open source →
  45. 3.0.0-beta.7 19 Jun 2021 pre-release
    Release notes

    Added

    • Alias body::Body as body::AnyBody. #2215
    • BoxAnyBody: a boxed message body with boxed errors. #2183
    • Re-export http crate's Error type as error::HttpError. #2171
    • Re-export StatusCode, Method, Version and Uri at the crate root. #2171
    • Re-export ContentEncoding and ConnectionType at the crate root. #2171
    • Response::into_body that consumes response and returns body type. #2201
    • impl Default for Response. #2201
    • Add zstd support for ContentEncoding. #2244

    Changed

    • The MessageBody trait now has an associated Error type. #2183
    • All error trait bounds in server service builders have changed from Into<Error> to Into<Response<AnyBody>>. #2253
    • All error trait bounds in message body and stream impls changed from Into<Error> to Into<Box<dyn std::error::Error>>. #2253
    • Places in Response where ResponseBody<B> was received or returned now simply use B. #2201
    • header mod is now public. #2171
    • uri mod is now public. #2171
    • Update language-tags to 0.3.
    • Reduce the level from error to debug for the log line that is emitted when a 500 Internal Server Error is built using HttpResponse::from_error. #2201
    • ResponseBuilder::message_body now returns a Result. #2201
    • Remove Unpin bound on ResponseBuilder::streaming. #2253
    • HttpServer::{listen_rustls(), bind_rustls()} now honor the ALPN protocols in the configuration parameter. [#2226]

    Removed

    • Stop re-exporting http crate's HeaderMap types in addition to ours. #2171
    • Down-casting for MessageBody types. #2183
    • error::Result alias. #2201
    • Error field from Response and Response::error. #2205
    • impl Future for Response. #2201
    • Response::take_body and old Response::into_body method that casted body type. #2201
    • InternalError and all the error types it constructed. #2215
    • Conversion (impl Into) of Response<Body> and ResponseBuilder to Error. #2215
    Open source →
    Release notes
    • Fix compatibility with experimental io-uring feature of actix-rt. #2408
    Open source →
  46. 3.0.0-beta.6 17 Apr 2021 pre-release
    Release notes

    Added

    • impl<T: MessageBody> MessageBody for Pin<Box<T>>. #2152
    • Response::{ok, bad_request, not_found, internal_server_error}. #2159
    • Helper body::to_bytes for async collecting message body into Bytes. #2158

    Changed

    • The type parameter of Response no longer has a default. #2152
    • The Message variant of body::Body is now Pin<Box<dyn MessageBody>>. #2152
    • BodyStream and SizedStream are no longer restricted to Unpin types. #2152
    • Error enum types are marked #[non_exhaustive]. #2161

    Removed

    • cookies feature flag. #2065
    • Top-level cookies mod (re-export). #2065
    • HttpMessage trait loses the cookies and cookie methods. #2065
    • impl ResponseError for CookieParseError. #2065
    • Deprecated methods on ResponseBuilder: if_true, if_some. #2148
    • ResponseBuilder::json. #2148
    • ResponseBuilder::{set_header, header}. #2148
    • impl From<serde_json::Value> for Body. #2148
    • Response::build_from. #2159
    • Most of the status code builders on Response. #2159
    Open source →
    Release notes
    • TestServer::stop is now async and will wait for the server and system to shutdown. #2442
    • Update actix-server to 2.0.0-beta.9. #2442
    • Minimum supported Rust version (MSRV) is now 1.52.
    Open source →
  47. 3.0.0-beta.5 02 Apr 2021 pre-release
    Release notes

    Added

    • client::Connector::handshake_timeout method for customizing TLS connection handshake timeout. #2081
    • client::ConnectorService as client::Connector::finish method's return type #2081
    • client::ConnectionIo trait alias #2081

    Changed

    • client::Connector type now only have one generic type for actix_service::Service. #2063

    Removed

    • Common typed HTTP headers were moved to actix-web. [2094]
    • ResponseError impl for actix_utils::timeout::TimeoutError. #2127
    Open source →
    Release notes
    • Minimum supported Rust version (MSRV) is now 1.51.
    Open source →
  48. 3.0.0-beta.4 08 Mar 2021 pre-release
    Release notes

    Changed

    • Feature cookies is now optional and disabled by default. #1981
    • ws::hash_key now returns array. #2035
    • ResponseBuilder::json now takes impl Serialize. #2052

    Removed

    • Re-export of futures_channel::oneshot::Canceled is removed from error mod. #1994
    • ResponseError impl for futures_channel::oneshot::Canceled is removed. #1994
    Open source →
    Release notes
    • Added TestServer::client_headers method. #2097
    Open source →
  49. 3.0.0-beta.3 10 Feb 2021 pre-release
    Release notes
    • No notable changes.
    Open source →
  50. 3.0.0-beta.2 10 Feb 2021 pre-release
    Release notes

    Added

    • TryIntoHeaderPair trait that allows using typed and untyped headers in the same methods. #1869
    • ResponseBuilder::insert_header method which allows using typed headers. #1869
    • ResponseBuilder::append_header method which allows using typed headers. #1869
    • TestRequest::insert_header method which allows using typed headers. #1869
    • ContentEncoding implements all necessary header traits. #1912
    • HeaderMap::len_keys has the behavior of the old len method. #1964
    • HeaderMap::drain as an efficient draining iterator. #1964
    • Implement IntoIterator for owned HeaderMap. #1964
    • trust-dns optional feature to enable trust-dns-resolver as client dns resolver. #1969

    Changed

    • ResponseBuilder::content_type now takes an impl TryIntoHeaderValue to support using typed mime types. #1894
    • Renamed TryIntoHeaderValue::{try_into => try_into_value} to avoid ambiguity with std TryInto trait. #1894
    • Extensions::insert returns Option of replaced item. #1904
    • Remove HttpResponseBuilder::json2(). #1903
    • Enable HttpResponseBuilder::json() to receive data by value and reference. #1903
    • client::error::ConnectError Resolver variant contains Box<dyn std::error::Error> type. #1905
    • client::ConnectorConfig default timeout changed to 5 seconds. #1905
    • Simplify BlockingError type to a unit struct. It's now only triggered when blocking thread pool is dead. #1957
    • HeaderMap::len now returns number of values instead of number of keys. #1964
    • HeaderMap::insert now returns iterator of removed values. #1964
    • HeaderMap::remove now returns iterator of removed values. #1964

    Removed

    • ResponseBuilder::set; use ResponseBuilder::insert_header. #1869
    • ResponseBuilder::set_header; use ResponseBuilder::insert_header. #1869
    • ResponseBuilder::header; use ResponseBuilder::append_header. #1869
    • TestRequest::with_hdr; use TestRequest::default().insert_header(). #1869
    • TestRequest::with_header; use TestRequest::default().insert_header(). #1869
    • actors optional feature. #1969
    • ResponseError impl for actix::MailboxError. #1969

    Documentation

    • Vastly improve docs and add examples for HeaderMap. #1964
    Open source →
    Release notes
    • No notable changes.
    Open source →
  51. 3.0.0-beta.1 07 Jan 2021 pre-release
    Release notes

    Added

    • Add Http3 to Protocol enum for future compatibility and also mark #[non_exhaustive].

    Changed

    • Update actix-* dependencies to tokio 1.0 based versions. #1813
    • Bumped rand to 0.8.
    • Update bytes to 1.0. #1813
    • Update h2 to 0.3. #1813
    • The ws::Message::Text enum variant now contains a bytestring::ByteString. #1864

    Removed

    • Deprecated on_connect methods have been removed. Prefer the new on_connect_ext technique. #1857
    • Remove ResponseError impl for actix::actors::resolver::ResolverError due to deprecate of resolver actor. #1813
    • Remove ConnectError::SslHandshakeError and re-export of HandshakeError. due to the removal of this type from tokio-openssl crate. openssl handshake error would return as ConnectError::SslError. #1813
    • Remove actix-threadpool dependency. Use actix_rt::task::spawn_blocking. Due to this change actix_threadpool::BlockingError type is moved into actix_http::error module. #1878

    </details>

    Open source →
    Release notes
    • Update bytes to 1.0. #1813

    </details>

    Open source →
  52. 2.2.2 21 Jan 2022
    Release notes

    Changed

    Open source →
  53. 2.2.1 09 Aug 2021
    Release notes

    Fixed

    Open source →
  54. 2.2.0 25 Nov 2020
    Release notes

    Added

    • HttpResponse builders for 1xx status codes. #1768
    • Accept::mime_precedence and Accept::mime_preference. #1793
    • TryFrom<u16> and TryFrom<f32> for http::header::Quality. #1797

    Fixed

    • Started dropping transfer-encoding: chunked and Content-Length for 1XX and 204 responses. #1767

    Changed

    • Upgrade serde_urlencoded to 0.7. #1773
    Open source →
  55. 2.1.0 30 Oct 2020
    Release notes

    Added

    • Added more flexible on_connect_ext methods for on-connect handling. #1754

    Changed

    • Upgrade base64 to 0.13. #1744
    • Upgrade pin-project to 1.0. #1733
    • Deprecate ResponseBuilder::{if_some, if_true}. #1760
    Open source →
    Release notes
    • Add ability to set address for TestServer. #1645
    • Upgrade base64 to 0.13.
    • Upgrade serde_urlencoded to 0.7. #1773
    Open source →
  56. 2.0.0 11 Sep 2020
    Release notes
    • No significant changes from 2.0.0-beta.4.
    Open source →
    Release notes
    • Update actix-codec and actix-utils dependencies.
    Open source →
  57. 2.0.0-beta.4 09 Sep 2020 pre-release
    Release notes

    Changed

    • Update actix-codec and actix-utils dependencies.
    • Update actix-connect and actix-tls dependencies.
    Open source →
  58. 2.0.0-beta.3 14 Aug 2020 pre-release
    Release notes

    Fixed

    • Memory leak of client::pool::ConnectorPoolSupport. #1626
    Open source →
  59. 2.0.0-beta.2 22 Jul 2020 pre-release
    Release notes

    Fixed

    • Potential UB in h1 decoder using uninitialized memory. #1614

    Changed

    • Fix illegal chunked encoding. #1615
    Open source →
  60. 2.0.0-beta.1 13 Jul 2020 pre-release
    Release notes

    Changed

    • Migrate cookie handling to cookie crate. #1558
    • Update sha-1 to 0.9. #1586
    • Fix leak in client pool. #1580
    • MSRV is now 1.41.1.
    Open source →

Every package, every release, already written down.

The archive is open and free. Watching your own project is what we are building next.

Browse the archive