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