## actix/actix-web — web-v4.11.0…web-v4.12.0

_132 commits._

### Features
- **feat: improve `HttpResponseBuilder::streaming` with SizedStream (#3829)** (a3f95ee)
- **Add option to allow/disallow half closures in HTTP/1 (#3777)** (fde7934)
- **Add support for permanent redirects in `Files` service (#3767)** (6e6c249)
- **feat(awc): replace trust dns by hickory dns (#3528)** (62d6d58)
- **feat(actix-files): opt-in filesize threshold for faster synchronous reads (#3706)** (00b0f8f)

### Fixes
- **fix(awc): close connections after GO_AWAY local or remote GO_AWAY errors (#3790)** (0168411)
- **fix: rename doc_auto_cfg feature (#3787)** (429ff82)
- **fix(http): Wake Payload when feeding error or EOF (#3749)** (d3c4653)
- **fix: include content-length with bytes payload (#3695)** (c635200)
- **fix(actix-web): improve streaming response behavior for Content-Length and Content-Type (#3737)** (aeb4248)
- **fix(actix-http): wake before return pending when read half disconnect and need to shutdown (#3665)** (30f7df5)
- **Fix integer overflow in actix_http::ws::Parser::parse (#3728)** (5f6c844)
- **fix: increase total limit in multipart example (#3567)** (37203c7)

### Backend
- **release: actix-web v4.12.0 (#3830)** (d119500)
- **Prepare release for actix-http, awc (#3791)** (25963db)
- **actix-http: h1: stop pipelining when not reading full requests (#3721)** (4df9953)
- **Remove duplicated entry for "serde::*" in cargo_check_external_types config (#3776)** (b200a45)
- **Make 'ws' feature of actix-http optional in actix-web (#3734)** (5041cd1)
- **Update socket2 to v0.6 (#3688)** (95ad1ca)
- **Resolved collisions between `missing_docs` clippy lints (#3653)** (fd81e6e)

### Tests
- **test: disable docsrs test for now (#3811)** (2967e4a)

### Docs
- **docs(middleware): complete middleware author's guide (#3680)** (3c2907d)
- **docs(web): Fix invalid link for `HttpRequest::match_info()` (#3735)** (d5abb5a)

### Chore
- **chore: Add public export for `EitherExtractError` (#3826)** (e1da110)
- **build(deps): bump taiki-e/install-action from 2.62.46 to 2.62.49 (#3823)** (219b988)
- **build(deps): bump quote from 1.0.41 to 1.0.42 (#3825)** (9cf3521)
- **build(deps): bump taiki-e/install-action from 2.62.45 to 2.62.46 (#3820)** (8b10319)
- **chore: rename branch to main (#3821)** (d5fae3e)
- **build(deps): bump taiki-e/install-action from 2.62.38 to 2.62.45 (#3819)** (e6958cc)
- **build(deps): bump tokio-util from 0.7.16 to 0.7.17 (#3817)** (3dd42ee)
- **chore(gha): setup cargo-deny (#3816)** (627af8c)
- **build(deps): bump flate2 from 1.1.4 to 1.1.5 (#3810)** (97e7017)
- **build(deps): bump proc-macro2 from 1.0.101 to 1.0.103 (#3809)** (9e1118c)
- **build(deps): bump taiki-e/install-action from 2.62.33 to 2.62.38 (#3808)** (a769f66)
- **build(deps): bump tokio from 1.47.1 to 1.48.0 (#3805)** (832f893)
- **build(deps): bump socket2 from 0.6.0 to 0.6.1 (#3807)** (55ebece)
- **build(deps): bump cfg-if from 1.0.3 to 1.0.4 (#3804)** (6ecfcb6)
- **build(deps): bump bitflags from 2.9.4 to 2.10.0 (#3803)** (856263c)
- **build(deps): bump taiki-e/install-action from 2.62.28 to 2.62.33 (#3802)** (6d9e477)
- **build(deps): bump taiki-e/install-action from 2.62.20 to 2.62.28 (#3800)** (35cc89a)
- **build(deps): bump regex-lite from 0.1.7 to 0.1.8 (#3801)** (c8c0013)
- **build(deps): bump quote from 1.0.40 to 1.0.41 (#3794)** (e8f0e8b)
- **build(deps): bump taiki-e/install-action from 2.62.11 to 2.62.20 (#3792)** (df016be)
- **build(deps): bump actions-rust-lang/setup-rust-toolchain from 1.15.1 to 1.15.2 (#3793)** (d36a5b4)
- **build(deps): bump flate2 from 1.1.2 to 1.1.4 (#3795)** (832a1da)
- **build(deps): bump tempfile from 3.22.0 to 3.23.0 (#3785)** (28a3a44)
- **build(deps): bump taiki-e/cache-cargo-install-action from 2.3.0 to 2.3.1 (#3782)** (91b62b9)
- **build(deps): bump serde from 1.0.226 to 1.0.228 (#3786)** (8935f7a)
- **build(deps): bump taiki-e/install-action from 2.62.0 to 2.62.11 (#3781)** (df2c6b3)
- **build(deps): bump actions-rust-lang/setup-rust-toolchain from 1.15.0 to 1.15.1 (#3784)** (d580cf0)
- **build(deps): bump memchr from 2.7.5 to 2.7.6 (#3783)** (0f0ceb5)
- **build(deps): bump time from 0.3.43 to 0.3.44 (#3773)** (5c6a29f)
- **build(deps): bump taiki-e/install-action from 2.61.3 to 2.62.0 (#3774)** (89fea1f)
- **build(deps): bump serde from 1.0.223 to 1.0.226 (#3775)** (5d0cf52)
- **chore(actix-files): prepare release 0.6.8** (41d0176)
- **build(deps): bump tempfile from 3.21.0 to 3.22.0 (#3771)** (a06cdf3)
- **build(deps): bump serde from 1.0.219 to 1.0.223 (#3772)** (25a1217)
- **build(deps): bump actions-rust-lang/setup-rust-toolchain from 1.14.1 to 1.15.0 (#3768)** (f3ce1bc)
- **build(deps): bump trybuild from 1.0.110 to 1.0.111 (#3770)** (7f02a7e)
- **build(deps): bump taiki-e/install-action from 2.59.1 to 2.61.3 (#3769)** (a619022)
- **chore(awc): prepare release 3.8.0** (1d6e978)
- **refactor: init hickory DNS using OnceCell** (d437383)
- **build(deps): bump log from 0.4.27 to 0.4.28 (#3759)** (f4ee39c)
- **build(deps): bump bitflags from 2.9.3 to 2.9.4 (#3760)** (f54254d)
- **build(deps): bump codecov/codecov-action from 5.5.0 to 5.5.1 (#3761)** (78ee652)
- **build(deps): bump taiki-e/install-action from 2.58.29 to 2.59.1 (#3762)** (03e3e34)
- **build(deps): bump time from 0.3.41 to 0.3.42 (#3755)** (d1acaa3)
- **ci: pin time crate for msrv** (4febfa4)
- **build(deps): bump taiki-e/install-action from 2.58.21 to 2.58.29 (#3753)** (ae354b8)
- **build(deps): bump actix-rt from 2.10.0 to 2.11.0 (#3754)** (7726669)
- **build(deps): bump actions-rust-lang/setup-rust-toolchain from 1.14.0 to 1.14.1 (#3751)** (65c5a04)
- **build(deps): bump rui314/setup-mold from 7344740a9418dcdcb481c7df83d9fbd1d5072d7d to 725a8794d15fc7563f59595bd9556495c0564878 (#3752)** (c85e058)
- **chore(actix-files): prepare release 0.6.7** (98d7d0b)
- **refactor(files): rename read_mode_threshold fn** (4966a54)
- **chore: require h2 versions after MadeYouReset fix** (8996198)
- **chore: remove now-useless docs.rs flags** (68624ec)
- **chore: add multi-crate publish script** (bcd0ffb)
- **ci: fix msrv job** (9fb6c13)
- **ci: fix msrv job** (05cfef7)
- **chore: fix justfile for msrv** (8f3eb32)
- **chore(actix-http): prepare release 3.11.1** (ddd16ec)
- **build(deps): bump bitflags from 2.9.2 to 2.9.3 (#3745)** (9c47a24)
- **build(deps): bump regex-lite from 0.1.6 to 0.1.7 (#3743)** (2536823)
- **build(deps): bump url from 2.5.4 to 2.5.7 (#3742)** (e3f81d0)
- **build(deps): bump tempfile from 3.20.0 to 3.21.0 (#3744)** (a84aee8)
- **build(deps): bump regex from 1.11.1 to 1.11.2 (#3746)** (1f08cb2)
- **build(deps): bump codecov/codecov-action from 5.4.3 to 5.5.0 (#3741)** (1b49047)
- **build(deps): bump taiki-e/install-action from 2.58.17 to 2.58.21 (#3740)** (9fe033a)
- **build(deps): bump actions-rust-lang/setup-rust-toolchain from 1.13.0 to 1.14.0 (#3739)** (2ba69a1)
- **chore: Pin actions to full commit SHA (#3736)** (e3ae20d)
- **build(deps): bump rustversion from 1.0.21 to 1.0.22 (#3726)** (971bbc1)
- **build(deps): bump slab from 0.4.10 to 0.4.11 (#3725)** (d08a85b)
- **build(deps): bump proc-macro2 from 1.0.95 to 1.0.101 (#3731)** (d944422)
- **build(deps): bump taiki-e/cache-cargo-install-action from 2.2.0 to 2.3.0 (#3700)** (706636d)
- **build(deps): bump bitflags from 2.9.1 to 2.9.2 (#3732)** (be6be9f)
- **build(deps): bump brotli from 8.0.1 to 8.0.2 (#3733)** (cd71768)
- **build(deps): bump taiki-e/install-action from 2.57.5 to 2.58.17 (#3729)** (522f60f)
- **build(deps): bump actions/checkout from 4 to 5 (#3730)** (c65633b)
- **build(deps): bump taiki-e/install-action from 2.56.19 to 2.57.5 (#3712)** (351f7a1)
- **build(deps): bump tokio from 1.47.0 to 1.47.1 (#3711)** (254fcab)
- **build(deps): bump serde_json from 1.0.141 to 1.0.142 (#3710)** (3c67d04)
- **build(deps): bump trybuild from 1.0.106 to 1.0.110 (#3709)** (b355603)
- **build(deps): bump tokio-util from 0.7.15 to 0.7.16 (#3708)** (a81c058)
- **build(deps): bump tokio from 1.46.1 to 1.47.0 (#3702)** (aceff9d)
- **build(deps): bump rand from 0.9.1 to 0.9.2 (#3697)** (1896ff2)
- **build(deps): bump serde_json from 1.0.140 to 1.0.141 (#3698)** (0eef04e)
- **build(deps): bump taiki-e/install-action from 2.56.13 to 2.56.19 (#3696)** (6e396bc)
- **build(deps): bump tokio from 1.45.1 to 1.46.1 (#3689)** (b6ad483)
- **build(deps): bump taiki-e/install-action from 2.54.3 to 2.56.13 (#3693)** (c002fd7)
- **build(deps): bump trybuild from 1.0.105 to 1.0.106 (#3692)** (eb906d0)
- **build(deps): bump h2 from 0.3.26 to 0.3.27 (#3691)** (f08fa6b)
- **build(deps): bump taiki-e/install-action from 2.54.0 to 2.54.3 (#3686)** (3f9d88f)
- **build(deps): bump taiki-e/cache-cargo-install-action from 2.1.2 to 2.2.0 (#3687)** (2eb801c)
- **build(deps): bump taiki-e/cache-cargo-install-action from 2.1.1 to 2.1.2 (#3682)** (43d3c6a)
- **build(deps): bump actions-rust-lang/setup-rust-toolchain from 1.12.0 to 1.13.0 (#3683)** (fdde0b8)
- **build(deps): bump taiki-e/install-action from 2.52.8 to 2.54.0 (#3681)** (2a634a8)
- **build(deps): bump memchr from 2.7.4 to 2.7.5 (#3675)** (5e0f56f)
- **build(deps): bump cfg-if from 1.0.0 to 1.0.1 (#3674)** (1026620)
- **build(deps): bump slab from 0.4.9 to 0.4.10 (#3673)** (ebc8fdb)
- **build(deps): bump taiki-e/install-action from 2.52.1 to 2.52.8 (#3672)** (b61346e)
- **build(deps): bump smallvec from 1.15.0 to 1.15.1 (#3667)** (db0a051)
- **build(deps): bump flate2 from 1.1.1 to 1.1.2 (#3668)** (eb1429d)
- **build(deps): bump socket2 from 0.5.9 to 0.5.10 (#3664)** (10f56f6)
- **build(deps): bump tokio from 1.45.0 to 1.45.1 (#3661)** (8562b7d)
- **build(deps): bump rustversion from 1.0.20 to 1.0.21 (#3660)** (442bb4c)
- **build(deps): bump taiki-e/install-action from 2.51.2 to 2.52.1 (#3659)** (9d98753)
- **build(deps): bump taiki-e/install-action from 2.50.10 to 2.51.2 (#3651)** (1f9bc2d)
- **build(deps): bump codecov/codecov-action from 5.4.2 to 5.4.3 (#3652)** (79f2486)
- **build(deps): bump bitflags from 2.9.0 to 2.9.1 (#3650)** (9a12bbd)
- **build(deps): bump tempfile from 3.19.1 to 3.20.0 (#3646)** (072fdc1)
- **build(deps): bump trybuild from 1.0.104 to 1.0.105 (#3647)** (347c720)
- **chore: update lockfile** (573090e)

_Recap by [Repo Wrapped](https://repowrapped.com/gh/actix/actix-web?utm_source=github-action)._