1# 0.7.13 (December 4th, 2024) 2 3### Fixed 4 5- codec: fix incorrect handling of invalid utf-8 in `LinesCodec::decode_eof` ([#7011]) 6 7[#7011]: https://github.com/tokio-rs/tokio/pull/7011 8 9# 0.7.12 (September 5th, 2024) 10 11This release bumps the MSRV to 1.70. ([#6645]) 12 13### Added 14- sync: Add `run_until_cancelled` to `tokio_util::sync::CancellationToken` ([#6618]) 15- task: add `AbortOnDropHandle` type ([#6786]) 16 17### Changed 18- deps: no default features for hashbrown ([#6541]) 19- time: wake `DelayQueue` when removing last item ([#6752]) 20- deps: enable the full feature when compiled for the playground ([#6818]) 21 22### Documented 23- task: fix typo in `TaskTracker` docs ([#6792]) 24 25[#6645]: https://github.com/tokio-rs/tokio/pull/6645 26[#6541]: https://github.com/tokio-rs/tokio/pull/6541 27[#6618]: https://github.com/tokio-rs/tokio/pull/6618 28[#6752]: https://github.com/tokio-rs/tokio/pull/6752 29[#6786]: https://github.com/tokio-rs/tokio/pull/6786 30[#6792]: https://github.com/tokio-rs/tokio/pull/6792 31[#6818]: https://github.com/tokio-rs/tokio/pull/6818 32 33# 0.7.11 (May 4th, 2024) 34 35This release updates the MSRV to 1.63. ([#6126]) 36 37### Added 38 39- either: implement `Sink` for `Either` ([#6239]) 40- time: add `DelayQueue::deadline` ([#6163]) 41- time: add `FutureExt::timeout` ([#6276]) 42 43### Changed 44 45- codec: assert compatibility between `LengthDelimitedCodec` options ([#6414]) 46- codec: make tracing feature optional for codecs ([#6434]) 47- io: add `T: ?Sized` to `tokio_util::io::poll_read_buf` ([#6441]) 48- sync: remove `'static` bound on `impl Sink for PollSender` ([#6397]) 49 50### Documented 51 52- codec: add examples for `FramedRead` and `FramedWrite` ([#6310]) 53- codec: document cancel safety of `SinkExt::send` and `StreamExt::next` ([#6417]) 54 55[#6126]: https://github.com/tokio-rs/tokio/pull/6126 56[#6163]: https://github.com/tokio-rs/tokio/pull/6163 57[#6239]: https://github.com/tokio-rs/tokio/pull/6239 58[#6276]: https://github.com/tokio-rs/tokio/pull/6276 59[#6310]: https://github.com/tokio-rs/tokio/pull/6310 60[#6397]: https://github.com/tokio-rs/tokio/pull/6397 61[#6414]: https://github.com/tokio-rs/tokio/pull/6414 62[#6417]: https://github.com/tokio-rs/tokio/pull/6417 63[#6434]: https://github.com/tokio-rs/tokio/pull/6434 64[#6441]: https://github.com/tokio-rs/tokio/pull/6441 65 66# 0.7.10 (October 24th, 2023) 67 68### Added 69 70- task: add `TaskTracker` ([#6033]) 71- task: add `JoinMap::keys` ([#6046]) 72- io: implement `Seek` for `SyncIoBridge` ([#6058]) 73 74### Changed 75 76- deps: update hashbrown to 0.14 ([#6102]) 77 78[#6033]: https://github.com/tokio-rs/tokio/pull/6033 79[#6046]: https://github.com/tokio-rs/tokio/pull/6046 80[#6058]: https://github.com/tokio-rs/tokio/pull/6058 81[#6102]: https://github.com/tokio-rs/tokio/pull/6102 82 83# 0.7.9 (September 20th, 2023) 84 85### Added 86 87- io: add passthrough `AsyncRead`/`AsyncWrite` to `InspectWriter`/`InspectReader` ([#5739]) 88- task: add spawn blocking methods to `JoinMap` ([#5797]) 89- io: pass through traits for `StreamReader` and `SinkWriter` ([#5941]) 90- io: add `SyncIoBridge::into_inner` ([#5971]) 91 92### Fixed 93 94- sync: handle possibly dangling reference safely ([#5812]) 95- util: fix broken intra-doc link ([#5849]) 96- compat: fix clippy warnings ([#5891]) 97 98### Documented 99 100- codec: Specify the line ending of `LinesCodec` ([#5982]) 101 102[#5739]: https://github.com/tokio-rs/tokio/pull/5739 103[#5797]: https://github.com/tokio-rs/tokio/pull/5797 104[#5941]: https://github.com/tokio-rs/tokio/pull/5941 105[#5971]: https://github.com/tokio-rs/tokio/pull/5971 106[#5812]: https://github.com/tokio-rs/tokio/pull/5812 107[#5849]: https://github.com/tokio-rs/tokio/pull/5849 108[#5891]: https://github.com/tokio-rs/tokio/pull/5891 109[#5982]: https://github.com/tokio-rs/tokio/pull/5982 110 111# 0.7.8 (April 25th, 2023) 112 113This release bumps the MSRV of tokio-util to 1.56. 114 115### Added 116 117- time: add `DelayQueue::peek` ([#5569]) 118 119### Changed 120 121This release contains one performance improvement: 122 123- sync: try to lock the parent first in `CancellationToken` ([#5561]) 124 125### Fixed 126 127- time: fix panic in `DelayQueue` ([#5630]) 128 129### Documented 130 131- sync: improve `CancellationToken` doc on child tokens ([#5632]) 132 133[#5561]: https://github.com/tokio-rs/tokio/pull/5561 134[#5569]: https://github.com/tokio-rs/tokio/pull/5569 135[#5630]: https://github.com/tokio-rs/tokio/pull/5630 136[#5632]: https://github.com/tokio-rs/tokio/pull/5632 137 138# 0.7.7 (February 12, 2023) 139 140This release reverts the removal of the `Encoder` bound on the `FramedParts` 141constructor from [#5280] since it turned out to be a breaking change. ([#5450]) 142 143[#5450]: https://github.com/tokio-rs/tokio/pull/5450 144 145# 0.7.6 (February 10, 2023) 146 147This release fixes a compilation failure in 0.7.5 when it is used together with 148Tokio version 1.21 and unstable features are enabled. ([#5445]) 149 150[#5445]: https://github.com/tokio-rs/tokio/pull/5445 151 152# 0.7.5 (February 9, 2023) 153 154This release fixes an accidental breaking change where `UnwindSafe` was 155accidentally removed from `CancellationToken`. 156 157### Added 158- codec: add `Framed::backpressure_boundary` ([#5124]) 159- io: add `InspectReader` and `InspectWriter` ([#5033]) 160- io: add `tokio_util::io::{CopyToBytes, SinkWriter}` ([#5070], [#5436]) 161- io: impl `std::io::BufRead` on `SyncIoBridge` ([#5265]) 162- sync: add `PollSemaphore::poll_acquire_many` ([#5137]) 163- sync: add owned future for `CancellationToken` ([#5153]) 164- time: add `DelayQueue::try_remove` ([#5052]) 165 166### Fixed 167- codec: fix `LengthDelimitedCodec` buffer over-reservation ([#4997]) 168- sync: impl `UnwindSafe` on `CancellationToken` ([#5438]) 169- util: remove `Encoder` bound on `FramedParts` constructor ([#5280]) 170 171### Documented 172- io: add lines example for `StreamReader` ([#5145]) 173 174[#4997]: https://github.com/tokio-rs/tokio/pull/4997 175[#5033]: https://github.com/tokio-rs/tokio/pull/5033 176[#5052]: https://github.com/tokio-rs/tokio/pull/5052 177[#5070]: https://github.com/tokio-rs/tokio/pull/5070 178[#5124]: https://github.com/tokio-rs/tokio/pull/5124 179[#5137]: https://github.com/tokio-rs/tokio/pull/5137 180[#5145]: https://github.com/tokio-rs/tokio/pull/5145 181[#5153]: https://github.com/tokio-rs/tokio/pull/5153 182[#5265]: https://github.com/tokio-rs/tokio/pull/5265 183[#5280]: https://github.com/tokio-rs/tokio/pull/5280 184[#5436]: https://github.com/tokio-rs/tokio/pull/5436 185[#5438]: https://github.com/tokio-rs/tokio/pull/5438 186 187# 0.7.4 (September 8, 2022) 188 189### Added 190 191- io: add `SyncIoBridge::shutdown()` ([#4938]) 192- task: improve `LocalPoolHandle` ([#4680]) 193 194### Fixed 195 196- util: add `track_caller` to public APIs ([#4785]) 197 198### Unstable 199 200- task: fix compilation errors in `JoinMap` with Tokio v1.21.0 ([#4755]) 201- task: remove the unstable, deprecated `JoinMap::join_one` ([#4920]) 202 203[#4680]: https://github.com/tokio-rs/tokio/pull/4680 204[#4755]: https://github.com/tokio-rs/tokio/pull/4755 205[#4785]: https://github.com/tokio-rs/tokio/pull/4785 206[#4920]: https://github.com/tokio-rs/tokio/pull/4920 207[#4938]: https://github.com/tokio-rs/tokio/pull/4938 208 209# 0.7.3 (June 4, 2022) 210 211### Changed 212 213- tracing: don't require default tracing features ([#4592]) 214- util: simplify implementation of `ReusableBoxFuture` ([#4675]) 215 216### Added (unstable) 217 218- task: add `JoinMap` ([#4640], [#4697]) 219 220[#4592]: https://github.com/tokio-rs/tokio/pull/4592 221[#4640]: https://github.com/tokio-rs/tokio/pull/4640 222[#4675]: https://github.com/tokio-rs/tokio/pull/4675 223[#4697]: https://github.com/tokio-rs/tokio/pull/4697 224 225# 0.7.2 (May 14, 2022) 226 227This release contains a rewrite of `CancellationToken` that fixes a memory leak. ([#4652]) 228 229[#4652]: https://github.com/tokio-rs/tokio/pull/4652 230 231# 0.7.1 (February 21, 2022) 232 233### Added 234 235- codec: add `length_field_type` to `LengthDelimitedCodec` builder ([#4508]) 236- io: add `StreamReader::into_inner_with_chunk()` ([#4559]) 237 238### Changed 239 240- switch from log to tracing ([#4539]) 241 242### Fixed 243 244- sync: fix waker update condition in `CancellationToken` ([#4497]) 245- bumped tokio dependency to 1.6 to satisfy minimum requirements ([#4490]) 246 247[#4490]: https://github.com/tokio-rs/tokio/pull/4490 248[#4497]: https://github.com/tokio-rs/tokio/pull/4497 249[#4508]: https://github.com/tokio-rs/tokio/pull/4508 250[#4539]: https://github.com/tokio-rs/tokio/pull/4539 251[#4559]: https://github.com/tokio-rs/tokio/pull/4559 252 253# 0.7.0 (February 9, 2022) 254 255### Added 256 257- task: add `spawn_pinned` ([#3370]) 258- time: add `shrink_to_fit` and `compact` methods to `DelayQueue` ([#4170]) 259- codec: improve `Builder::max_frame_length` docs ([#4352]) 260- codec: add mutable reference getters for codecs to pinned `Framed` ([#4372]) 261- net: add generic trait to combine `UnixListener` and `TcpListener` ([#4385]) 262- codec: implement `Framed::map_codec` ([#4427]) 263- codec: implement `Encoder<BytesMut>` for `BytesCodec` ([#4465]) 264 265### Changed 266 267- sync: add lifetime parameter to `ReusableBoxFuture` ([#3762]) 268- sync: refactored `PollSender<T>` to fix a subtly broken `Sink<T>` implementation ([#4214]) 269- time: remove error case from the infallible `DelayQueue::poll_elapsed` ([#4241]) 270 271[#3370]: https://github.com/tokio-rs/tokio/pull/3370 272[#4170]: https://github.com/tokio-rs/tokio/pull/4170 273[#4352]: https://github.com/tokio-rs/tokio/pull/4352 274[#4372]: https://github.com/tokio-rs/tokio/pull/4372 275[#4385]: https://github.com/tokio-rs/tokio/pull/4385 276[#4427]: https://github.com/tokio-rs/tokio/pull/4427 277[#4465]: https://github.com/tokio-rs/tokio/pull/4465 278[#3762]: https://github.com/tokio-rs/tokio/pull/3762 279[#4214]: https://github.com/tokio-rs/tokio/pull/4214 280[#4241]: https://github.com/tokio-rs/tokio/pull/4241 281 282# 0.6.10 (May 14, 2021) 283 284This is a backport for the memory leak in `CancellationToken` that was originally fixed in 0.7.2. ([#4652]) 285 286[#4652]: https://github.com/tokio-rs/tokio/pull/4652 287 288# 0.6.9 (October 29, 2021) 289 290### Added 291 292- codec: implement `Clone` for `LengthDelimitedCodec` ([#4089]) 293- io: add `SyncIoBridge` ([#4146]) 294 295### Fixed 296 297- time: update deadline on removal in `DelayQueue` ([#4178]) 298- codec: Update stream impl for Framed to return None after Err ([#4166]) 299 300[#4089]: https://github.com/tokio-rs/tokio/pull/4089 301[#4146]: https://github.com/tokio-rs/tokio/pull/4146 302[#4166]: https://github.com/tokio-rs/tokio/pull/4166 303[#4178]: https://github.com/tokio-rs/tokio/pull/4178 304 305# 0.6.8 (September 3, 2021) 306 307### Added 308 309- sync: add drop guard for `CancellationToken` ([#3839]) 310- compact: added `AsyncSeek` compat ([#4078]) 311- time: expose `Key` used in `DelayQueue`'s `Expired` ([#4081]) 312- io: add `with_capacity` to `ReaderStream` ([#4086]) 313 314### Fixed 315 316- codec: remove unnecessary `doc(cfg(...))` ([#3989]) 317 318[#3839]: https://github.com/tokio-rs/tokio/pull/3839 319[#4078]: https://github.com/tokio-rs/tokio/pull/4078 320[#4081]: https://github.com/tokio-rs/tokio/pull/4081 321[#4086]: https://github.com/tokio-rs/tokio/pull/4086 322[#3989]: https://github.com/tokio-rs/tokio/pull/3989 323 324# 0.6.7 (May 14, 2021) 325 326### Added 327 328- udp: make `UdpFramed` take `Borrow<UdpSocket>` ([#3451]) 329- compat: implement `AsRawFd`/`AsRawHandle` for `Compat<T>` ([#3765]) 330 331[#3451]: https://github.com/tokio-rs/tokio/pull/3451 332[#3765]: https://github.com/tokio-rs/tokio/pull/3765 333 334# 0.6.6 (April 12, 2021) 335 336### Added 337 338- util: makes `Framed` and `FramedStream` resumable after eof ([#3272]) 339- util: add `PollSemaphore::{add_permits, available_permits}` ([#3683]) 340 341### Fixed 342 343- chore: avoid allocation if `PollSemaphore` is unused ([#3634]) 344 345[#3272]: https://github.com/tokio-rs/tokio/pull/3272 346[#3634]: https://github.com/tokio-rs/tokio/pull/3634 347[#3683]: https://github.com/tokio-rs/tokio/pull/3683 348 349# 0.6.5 (March 20, 2021) 350 351### Fixed 352 353- util: annotate time module as requiring `time` feature ([#3606]) 354 355[#3606]: https://github.com/tokio-rs/tokio/pull/3606 356 357# 0.6.4 (March 9, 2021) 358 359### Added 360 361- codec: `AnyDelimiter` codec ([#3406]) 362- sync: add pollable `mpsc::Sender` ([#3490]) 363 364### Fixed 365 366- codec: `LinesCodec` should only return `MaxLineLengthExceeded` once per line ([#3556]) 367- sync: fuse PollSemaphore ([#3578]) 368 369[#3406]: https://github.com/tokio-rs/tokio/pull/3406 370[#3490]: https://github.com/tokio-rs/tokio/pull/3490 371[#3556]: https://github.com/tokio-rs/tokio/pull/3556 372[#3578]: https://github.com/tokio-rs/tokio/pull/3578 373 374# 0.6.3 (January 31, 2021) 375 376### Added 377 378- sync: add `ReusableBoxFuture` utility ([#3464]) 379 380### Changed 381 382- sync: use `ReusableBoxFuture` for `PollSemaphore` ([#3463]) 383- deps: remove `async-stream` dependency ([#3463]) 384- deps: remove `tokio-stream` dependency ([#3487]) 385 386# 0.6.2 (January 21, 2021) 387 388### Added 389 390- sync: add pollable `Semaphore` ([#3444]) 391 392### Fixed 393 394- time: fix panics on updating `DelayQueue` entries ([#3270]) 395 396# 0.6.1 (January 12, 2021) 397 398### Added 399 400- codec: `get_ref()`, `get_mut()`, `get_pin_mut()` and `into_inner()` for 401 `Framed`, `FramedRead`, `FramedWrite` and `StreamReader` ([#3364]). 402- codec: `write_buffer()` and `write_buffer_mut()` for `Framed` and 403 `FramedWrite` ([#3387]). 404 405# 0.6.0 (December 23, 2020) 406 407### Changed 408- depend on `tokio` 1.0. 409 410### Added 411- rt: add constructors to `TokioContext` (#3221). 412 413# 0.5.1 (December 3, 2020) 414 415### Added 416- io: `poll_read_buf` util fn (#2972). 417- io: `poll_write_buf` util fn with vectored write support (#3156). 418 419# 0.5.0 (October 30, 2020) 420 421### Changed 422- io: update `bytes` to 0.6 (#3071). 423 424# 0.4.0 (October 15, 2020) 425 426### Added 427- sync: `CancellationToken` for coordinating task cancellation (#2747). 428- rt: `TokioContext` sets the Tokio runtime for the duration of a future (#2791) 429- io: `StreamReader`/`ReaderStream` map between `AsyncRead` values and `Stream` 430 of bytes (#2788). 431- time: `DelayQueue` to manage many delays (#2897). 432 433# 0.3.1 (March 18, 2020) 434 435### Fixed 436 437- Adjust minimum-supported Tokio version to v0.2.5 to account for an internal 438 dependency on features in that version of Tokio. ([#2326]) 439 440# 0.3.0 (March 4, 2020) 441 442### Changed 443 444- **Breaking Change**: Change `Encoder` trait to take a generic `Item` parameter, which allows 445 codec writers to pass references into `Framed` and `FramedWrite` types. ([#1746]) 446 447### Added 448 449- Add futures-io/tokio::io compatibility layer. ([#2117]) 450- Add `Framed::with_capacity`. ([#2215]) 451 452### Fixed 453 454- Use advance over split_to when data is not needed. ([#2198]) 455 456# 0.2.0 (November 26, 2019) 457 458- Initial release 459 460[#3487]: https://github.com/tokio-rs/tokio/pull/3487 461[#3464]: https://github.com/tokio-rs/tokio/pull/3464 462[#3463]: https://github.com/tokio-rs/tokio/pull/3463 463[#3444]: https://github.com/tokio-rs/tokio/pull/3444 464[#3387]: https://github.com/tokio-rs/tokio/pull/3387 465[#3364]: https://github.com/tokio-rs/tokio/pull/3364 466[#3270]: https://github.com/tokio-rs/tokio/pull/3270 467[#2326]: https://github.com/tokio-rs/tokio/pull/2326 468[#2215]: https://github.com/tokio-rs/tokio/pull/2215 469[#2198]: https://github.com/tokio-rs/tokio/pull/2198 470[#2117]: https://github.com/tokio-rs/tokio/pull/2117 471[#1746]: https://github.com/tokio-rs/tokio/pull/1746 472