|
| 1 | +# Changelog |
| 2 | + |
| 3 | +All notable changes to this project will be documented in this file. |
| 4 | + |
| 5 | +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), |
| 6 | +and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). |
| 7 | + |
| 8 | +## [Unreleased] |
| 9 | + |
| 10 | +## [6.0.0-rc.29](https://github.com/0x676e67/wreq/compare/v6.0.0-rc.28...v6.0.0-rc.29) - 2026-05-22 |
| 11 | + |
| 12 | +### Added |
| 13 | + |
| 14 | +- *(rt)* Add compio as optional runtime ([#1175](https://github.com/0x676e67/wreq/pull/1175)) |
| 15 | +- *(request)* expose Extensions for tower middleware compatibility ([#1119](https://github.com/0x676e67/wreq/pull/1119)) |
| 16 | +- *(request)* introduce `Group` for explicit request differentiation ([#1117](https://github.com/0x676e67/wreq/pull/1117)) |
| 17 | +- *(multipart)* use `WebKit` style boundary generation by default ([#1118](https://github.com/0x676e67/wreq/pull/1118)) |
| 18 | +- *(ws)* expose underlying stream via `WebSocket::into_inner` ([#1114](https://github.com/0x676e67/wreq/pull/1114)) |
| 19 | +- *(response)* allow forbidding connection recycling via `Response::forbid_recycle` ([#1110](https://github.com/0x676e67/wreq/pull/1110)) |
| 20 | +- *(cookie)* RFC 9113 compliant cookie handling ([#1106](https://github.com/0x676e67/wreq/pull/1106)) |
| 21 | +- *(tls)* allow pluggable TLS session cache ([#1101](https://github.com/0x676e67/wreq/pull/1101)) |
| 22 | +- *(multipart)* add Form::set_boundary for custom boundaries ([#1094](https://github.com/0x676e67/wreq/pull/1094)) |
| 23 | +- *(cookie)* fill missing domain/path in `get_all` from stored scope ([#1082](https://github.com/0x676e67/wreq/pull/1082)) |
| 24 | + |
| 25 | +### Fixed |
| 26 | + |
| 27 | +- *(http1)* fix possibly short reads when decoding a large body ([#1157](https://github.com/0x676e67/wreq/pull/1157)) |
| 28 | +- *(http1)* fix rare missed write wakeup on connections ([#1153](https://github.com/0x676e67/wreq/pull/1153)) |
| 29 | +- *(http1)* send error when dispatcher is dropped mid-body ([#1155](https://github.com/0x676e67/wreq/pull/1155)) |
| 30 | +- *(http2)* reading trailers shouldn't propagate NO_ERROR from early response ([#1156](https://github.com/0x676e67/wreq/pull/1156)) |
| 31 | +- *(tcp)* ensure socket bind options is not accidentally cleared ([#1131](https://github.com/0x676e67/wreq/pull/1131)) |
| 32 | +- *(http2)* cancel pipe_task and send `RST_STREAM` on response future drop ([#1116](https://github.com/0x676e67/wreq/pull/1116)) |
| 33 | +- *(http1)* allow keep-alive for chunked requests with trailers ([#1112](https://github.com/0x676e67/wreq/pull/1112)) |
| 34 | +- *(tcp)* restore the missing TCP nodelay setting ([#1102](https://github.com/0x676e67/wreq/pull/1102)) |
| 35 | +- *(bench)* fix CPU sysinfo reading in benchmark ([#1080](https://github.com/0x676e67/wreq/pull/1080)) |
| 36 | +- fix build |
| 37 | +- disable Nagle's algorithm to resolve HTTP/2 performance dip ([#1074](https://github.com/0x676e67/wreq/pull/1074)) |
| 38 | +- *(http2)* prevent panic when calling to_str on non-UTF8 headers ([#1070](https://github.com/0x676e67/wreq/pull/1070)) |
| 39 | +- fix build |
| 40 | +- *(rt)* support fake time in legacy client and TokioTimer ([#1064](https://github.com/0x676e67/wreq/pull/1064)) |
| 41 | + |
| 42 | +### Other |
| 43 | + |
| 44 | +- Update rt.rs |
| 45 | +- *(proxy)* fmt tests |
| 46 | +- *(conn)* remove duplicate ALPN negotiation configuration ([#1176](https://github.com/0x676e67/wreq/pull/1176)) |
| 47 | +- *(trust)* improve unreachable branch in certificate loading ([#1173](https://github.com/0x676e67/wreq/pull/1173)) |
| 48 | +- *(header)* rename `OrigHeaderName to `HeaderCaseName` ([#1174](https://github.com/0x676e67/wreq/pull/1174)) |
| 49 | +- *(deps)* update deps |
| 50 | +- *(keylog)* separate TLS keylog responsibilities ([#1166](https://github.com/0x676e67/wreq/pull/1166)) |
| 51 | +- update comments for tokio deps |
| 52 | +- *(conn)* separate conn responsibilities ([#1165](https://github.com/0x676e67/wreq/pull/1165)) |
| 53 | +- fmt code ([#1164](https://github.com/0x676e67/wreq/pull/1164)) |
| 54 | +- *(deps)* update `wreq-proto` dependency version to 0.2.1 ([#1163](https://github.com/0x676e67/wreq/pull/1163)) |
| 55 | +- Enable git tagging in release configuration |
| 56 | +- Update README.md |
| 57 | +- rename toml |
| 58 | +- Rename release-plz.toml to .release-plz.toml |
| 59 | +- Add changelog path to release-plz configuration |
| 60 | +- release-plz.yml |
| 61 | +- *(core)* migrate core module to `wreq-proto` ([#1160](https://github.com/0x676e67/wreq/pull/1160)) |
| 62 | +- *(timer)* implement reset for `Sleep`, drop unsafe downcast ([#1159](https://github.com/0x676e67/wreq/pull/1159)) |
| 63 | +- *(deps)* update `lru` dependency version to 0.18.0 ([#1158](https://github.com/0x676e67/wreq/pull/1158)) |
| 64 | +- optimal network chunk sizes with usage scenarios |
| 65 | +- revert |
| 66 | +- *(tcp)* reduce dependency on `futures-util` ([#1154](https://github.com/0x676e67/wreq/pull/1154)) |
| 67 | +- *(deps)* update dependencies to latest versions |
| 68 | +- fmt |
| 69 | +- *(deps)* update http dependency version to 1.4.0 ([#1152](https://github.com/0x676e67/wreq/pull/1152)) |
| 70 | +- #[inline] |
| 71 | +- *(deps)* update hickory-resolver requirement from 0.25 to 0.26 ([#1149](https://github.com/0x676e67/wreq/pull/1149)) |
| 72 | +- *(deps)* reduce dependency on `futures-channel` ([#1127](https://github.com/0x676e67/wreq/pull/1127)) |
| 73 | +- *(tls)* expose certificate compression APIs ([#1151](https://github.com/0x676e67/wreq/pull/1151)) |
| 74 | +- move |
| 75 | +- fmt |
| 76 | +- reduce benchmark noise interference |
| 77 | +- Update Cargo.toml |
| 78 | +- *(style)* fix clippy warnings for Rust 1.95.0 ([#1147](https://github.com/0x676e67/wreq/pull/1147)) |
| 79 | +- *(deps)* replace `serde_html_form` with `serde_urlencoded` ([#1146](https://github.com/0x676e67/wreq/pull/1146)) |
| 80 | +- *(deps)* update lru dependency version to 0.17.0 ([#1145](https://github.com/0x676e67/wreq/pull/1145)) |
| 81 | +- Update README.md |
| 82 | +- *(http1/encode)* Add `inline` annotations to Encoder methods ([#1144](https://github.com/0x676e67/wreq/pull/1144)) |
| 83 | +- Change static to const for ALPHA_NUMERIC_ENCODING_MAP |
| 84 | +- Update ci.yml |
| 85 | +- *(cookie)* add subdomain cookie scoping tests for `Jar` ([#1143](https://github.com/0x676e67/wreq/pull/1143)) |
| 86 | +- *(tunnel)* standardize zero-copy parsing ([#1142](https://github.com/0x676e67/wreq/pull/1142)) |
| 87 | +- *(client)* Add 1 KB body case for benchmark |
| 88 | +- *(deps)* bump softprops/action-gh-release from 2 to 3 ([#1140](https://github.com/0x676e67/wreq/pull/1140)) |
| 89 | +- *(http1/io)* leverage `tokio_util::io` to reduce vectorized write overhead ([#1141](https://github.com/0x676e67/wreq/pull/1141)) |
| 90 | +- update |
| 91 | +- *(ws)* replace `force_http2` with `version` for HTTP version selection ([#1139](https://github.com/0x676e67/wreq/pull/1139)) |
| 92 | +- *(core)* fmt import ([#1138](https://github.com/0x676e67/wreq/pull/1138)) |
| 93 | +- *(sync)* fmt export ([#1136](https://github.com/0x676e67/wreq/pull/1136)) |
| 94 | +- *(deps)* optional `parking_lot` support ([#1126](https://github.com/0x676e67/wreq/pull/1126)) |
| 95 | +- *(layer)* add documentation comment |
| 96 | +- *(deps)* update `http2` dependency version to 0.5.16 ([#1134](https://github.com/0x676e67/wreq/pull/1134)) |
| 97 | +- update examples |
| 98 | +- *(group)* fmt code ([#1133](https://github.com/0x676e67/wreq/pull/1133)) |
| 99 | +- *(lib)* format exported http1 and http2 modules ([#1129](https://github.com/0x676e67/wreq/pull/1129)) |
| 100 | +- *(incoming)* fmt code |
| 101 | +- *(bench/client)* fmt code |
| 102 | +- Revert "bench: fmt code" |
| 103 | +- *(deps)* remove implicit feature ([#1123](https://github.com/0x676e67/wreq/pull/1123)) |
| 104 | +- *(http2)* fmt code ([#1124](https://github.com/0x676e67/wreq/pull/1124)) |
| 105 | +- fmt code |
| 106 | +- *(ws)* rewrite `sec-websocket-protocol` handling ([#1121](https://github.com/0x676e67/wreq/pull/1121)) |
| 107 | +- *(deps)* update `http2` dependency version to 0.5.15 ([#1122](https://github.com/0x676e67/wreq/pull/1122)) |
| 108 | +- *(ws)* "feat(request): introduce `Group` for explicit request differentiation" ([#1120](https://github.com/0x676e67/wreq/pull/1120)) |
| 109 | +- update SOCKS proxy support description in Cargo.toml |
| 110 | +- Add Discord badge to README |
| 111 | +- *(deps)* update `tokio-tungstenite` to version 0.29.0 ([#1113](https://github.com/0x676e67/wreq/pull/1113)) |
| 112 | +- *(response)* replace chunk usage with BodyExt::frame ([#1111](https://github.com/0x676e67/wreq/pull/1111)) |
| 113 | +- *(http2)* remove unstable APIs ([#1109](https://github.com/0x676e67/wreq/pull/1109)) |
| 114 | +- *(conn)* Fix comment for proxy handling in `Conn` |
| 115 | +- Update RELEASE |
| 116 | +- *(conn)* optimize `ConnectionId` cloning ([#1108](https://github.com/0x676e67/wreq/pull/1108)) |
| 117 | +- *(tcp)* prune redundant local address handling ([#1107](https://github.com/0x676e67/wreq/pull/1107)) |
| 118 | +- fmt code |
| 119 | +- *(tls)* decouple TLS backend logic into sub-modules ([#1105](https://github.com/0x676e67/wreq/pull/1105)) |
| 120 | +- *(tls)* expose certificate compression APIs ([#1085](https://github.com/0x676e67/wreq/pull/1085)) |
| 121 | +- *(pool)* redesign emulation and pool ID strategy ([#1103](https://github.com/0x676e67/wreq/pull/1103)) |
| 122 | +- fmt import |
| 123 | +- Fix cfg attribute formatting for set_tcp_user_timeout |
| 124 | +- *(conn)* modular connector component ([#1100](https://github.com/0x676e67/wreq/pull/1100)) |
| 125 | +- update comments for compression support dependencies |
| 126 | +- *(multipart)* streamline legacy Form implementation |
| 127 | +- *(multipart)* Improve memory layout of `multipart::Form` ([#1095](https://github.com/0x676e67/wreq/pull/1095)) |
| 128 | +- *(buf)* make `BufList::remaining` O(1) by caching length ([#1091](https://github.com/0x676e67/wreq/pull/1091)) |
| 129 | +- *(deps)* bump btls from 0.5.3 to 0.5.4 ([#1090](https://github.com/0x676e67/wreq/pull/1090)) |
| 130 | +- Update README.md |
| 131 | +- *(http1)* eliminate `ParserConfig` clones on the HTTP/1.1 request hot path ([#1088](https://github.com/0x676e67/wreq/pull/1088)) |
| 132 | +- *(bench)* update mod benchmark comment |
| 133 | +- *(bench)* fmt code |
| 134 | +- *(bench)* format expected error annotations |
| 135 | +- Update README.md |
| 136 | +- *(deps)* replace `ahash` with `foldhash` in `lru` cache ([#1084](https://github.com/0x676e67/wreq/pull/1084)) |
| 137 | +- *(deps)* migrate from `boring2` to `btls` ([#1083](https://github.com/0x676e67/wreq/pull/1083)) |
| 138 | +- *(request)* fmt imports for request.rs file |
| 139 | +- Update README.md |
| 140 | +- add missing `TokioTimer` to http1 server builder ([#1081](https://github.com/0x676e67/wreq/pull/1081)) |
| 141 | +- *(client)* fmt code |
| 142 | +- *(deps)* replace `raw-cpuid` with `sysinfo` implementation ([#1077](https://github.com/0x676e67/wreq/pull/1077)) |
| 143 | +- *(hash)* simplify documentation for `HashMemo` creation ([#1076](https://github.com/0x676e67/wreq/pull/1076)) |
| 144 | +- format benchmark group labels |
| 145 | +- improve benchmark test coverage ([#1075](https://github.com/0x676e67/wreq/pull/1075)) |
| 146 | +- fmt |
| 147 | +- refactor `Cargo.toml` for clarity and organization |
| 148 | +- remove deprecated doc_cfg feature conditionally |
| 149 | +- simplify grouped benchmarks |
| 150 | +- *(bench)* optimize benchmark server ([#1073](https://github.com/0x676e67/wreq/pull/1073)) |
| 151 | +- *(deps)* bump nttld/setup-ndk from 1.5.0 to 1.6.0 ([#1072](https://github.com/0x676e67/wreq/pull/1072)) |
| 152 | +- lint core ([#1071](https://github.com/0x676e67/wreq/pull/1071)) |
| 153 | +- include TLS-encrypted scenarios for HTTP/1 and HTTP/2 |
| 154 | +- Add benchmarks for full and streaming bodies ([#1069](https://github.com/0x676e67/wreq/pull/1069)) |
| 155 | +- clarify symbol conflict with OpenSSL ([#1068](https://github.com/0x676e67/wreq/pull/1068)) |
| 156 | +- Update hash.rs |
| 157 | +- *(deps)* replace `schnellru` with `lru` implementation ([#1066](https://github.com/0x676e67/wreq/pull/1066)) |
| 158 | +- Update git-cliff changelog |
| 159 | +- Update CHANGELOG.md |
| 160 | +- Update cliff.toml |
| 161 | +- *(core)* clear code |
| 162 | +- fix clippy |
| 163 | +- add benchmarks for HTTP/1.1 and HTTP/2 ([#1065](https://github.com/0x676e67/wreq/pull/1065)) |
| 164 | +- *(http2)* backport and apply hyper client's H2 configuration ([#1063](https://github.com/0x676e67/wreq/pull/1063)) |
| 165 | +- *(response)* hint compiler to inline trivial response-handling functions ([#1062](https://github.com/0x676e67/wreq/pull/1062)) |
| 166 | +- *(error)* hint compiler to inline trivial error-handling functions ([#1061](https://github.com/0x676e67/wreq/pull/1061)) |
| 167 | +- *(request)* static init for common content-type header ([#1060](https://github.com/0x676e67/wreq/pull/1060)) |
1 | 168 | ## [unreleased] |
2 | 169 |
|
3 | 170 | ### Features |
|
0 commit comments