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