|
| 1 | +# 1.53.0 (July 17th, 2026) |
| 2 | + |
| 3 | +### Added |
| 4 | + |
| 5 | +- fs: implement `From<OwnedFd>` and `From<OwnedHandle>` for `File` ([#8266]) |
| 6 | +- metrics: add task schedule latency metric ([#7986]) |
| 7 | +- net: add `SocketAddr` methods to Unix sockets ([#8144]) |
| 8 | + |
| 9 | +### Changed |
| 10 | + |
| 11 | +- io: add `#[inline]` to IO trait impls for in-memory types ([#8242]) |
| 12 | +- net: implement UCred::pid on FreeBSD ([#8086]) |
| 13 | +- net: support Nuttx target os ([#8259]) |
| 14 | +- signal: refactor global variables on Windows ([#8231]) |
| 15 | +- sync: `mpsc::{Receiver,UnboundedReceiver}` now drops waker on drop, even if there are still senders ([#8095]) |
| 16 | +- taskdump: support taskdumps on s390x ([#8192]) |
| 17 | +- time: add `#[track_caller]` to `timeout_at()` ([#8077]) |
| 18 | +- time: consolidate mutex locks on spurious poll ([#8124]) |
| 19 | +- time: defer waker clone on spurious poll ([#8107]) |
| 20 | +- time: move lazy-registration state into `Sleep` ([#8132]) |
| 21 | +- tracing: remove unnecessary span clone ([#8126]) |
| 22 | + |
| 23 | +### Fixed |
| 24 | + |
| 25 | +- io: do not treat zero-length reads as EOF in `Chain` ([#8251]) |
| 26 | +- net: use getpeereid for QNX peer credentials ([#8270]) |
| 27 | +- runtime: avoid illegal state in `FastRand` ([#8078]) |
| 28 | +- sync: wake mpsc receiver when a queued `reserve[_many]` returns permits ([#8260]) |
| 29 | +- taskdump: skip double wake on `Trace::capture`/`Trace::trace_with` ([#8043]) |
| 30 | +- time: avoid stack overflow in runtime constructor ([#8093]) |
| 31 | +- time (alt timer): ensure timers stay in the same runtime after `.reset()` ([#8169]) |
| 32 | + |
| 33 | +### IO uring (unstable) |
| 34 | + |
| 35 | +- fs: use io-uring for `fs::try_exists` ([#8080]) |
| 36 | +- fs: use io-uring for renaming files ([#7800]) |
| 37 | +- rt: flush io-uring CQE in case of CQE overflow ([#8277]) |
| 38 | + |
| 39 | +### Documented |
| 40 | + |
| 41 | +- docs: clarify cancel safety wording ([#8181]) |
| 42 | +- fs: clarify `create_dir_all` succeeds if path exists ([#8149]) |
| 43 | +- io: add warning about stdout reordering with multiple handles ([#8276]) |
| 44 | +- net: document pipe `try_read*`/`try_write*` readiness behavior ([#8032]) |
| 45 | +- runtime: document interaction with fork() ([#8202]) |
| 46 | +- sync: clarify broadcast lagging semantics ([#8239]) |
| 47 | +- sync: document memory ordering guarantees for Semaphore ([#8119]) |
| 48 | +- task: explain why `yield_now` defers its waker ([#8254]) |
| 49 | +- time: add panic docs to `timeout_at()` ([#8077]) |
| 50 | +- time: fix reversed poll order in timeout doc ([#8214]) |
| 51 | + |
| 52 | +[#7800]: https://github.com/tokio-rs/tokio/pull/7800 |
| 53 | +[#7986]: https://github.com/tokio-rs/tokio/pull/7986 |
| 54 | +[#8032]: https://github.com/tokio-rs/tokio/pull/8032 |
| 55 | +[#8043]: https://github.com/tokio-rs/tokio/pull/8043 |
| 56 | +[#8077]: https://github.com/tokio-rs/tokio/pull/8077 |
| 57 | +[#8078]: https://github.com/tokio-rs/tokio/pull/8078 |
| 58 | +[#8080]: https://github.com/tokio-rs/tokio/pull/8080 |
| 59 | +[#8086]: https://github.com/tokio-rs/tokio/pull/8086 |
| 60 | +[#8093]: https://github.com/tokio-rs/tokio/pull/8093 |
| 61 | +[#8095]: https://github.com/tokio-rs/tokio/pull/8095 |
| 62 | +[#8107]: https://github.com/tokio-rs/tokio/pull/8107 |
| 63 | +[#8119]: https://github.com/tokio-rs/tokio/pull/8119 |
| 64 | +[#8124]: https://github.com/tokio-rs/tokio/pull/8124 |
| 65 | +[#8126]: https://github.com/tokio-rs/tokio/pull/8126 |
| 66 | +[#8132]: https://github.com/tokio-rs/tokio/pull/8132 |
| 67 | +[#8144]: https://github.com/tokio-rs/tokio/pull/8144 |
| 68 | +[#8149]: https://github.com/tokio-rs/tokio/pull/8149 |
| 69 | +[#8169]: https://github.com/tokio-rs/tokio/pull/8169 |
| 70 | +[#8181]: https://github.com/tokio-rs/tokio/pull/8181 |
| 71 | +[#8192]: https://github.com/tokio-rs/tokio/pull/8192 |
| 72 | +[#8193]: https://github.com/tokio-rs/tokio/pull/8193 |
| 73 | +[#8202]: https://github.com/tokio-rs/tokio/pull/8202 |
| 74 | +[#8214]: https://github.com/tokio-rs/tokio/pull/8214 |
| 75 | +[#8231]: https://github.com/tokio-rs/tokio/pull/8231 |
| 76 | +[#8239]: https://github.com/tokio-rs/tokio/pull/8239 |
| 77 | +[#8242]: https://github.com/tokio-rs/tokio/pull/8242 |
| 78 | +[#8251]: https://github.com/tokio-rs/tokio/pull/8251 |
| 79 | +[#8254]: https://github.com/tokio-rs/tokio/pull/8254 |
| 80 | +[#8259]: https://github.com/tokio-rs/tokio/pull/8259 |
| 81 | +[#8260]: https://github.com/tokio-rs/tokio/pull/8260 |
| 82 | +[#8266]: https://github.com/tokio-rs/tokio/pull/8266 |
| 83 | +[#8270]: https://github.com/tokio-rs/tokio/pull/8270 |
| 84 | +[#8276]: https://github.com/tokio-rs/tokio/pull/8276 |
| 85 | +[#8277]: https://github.com/tokio-rs/tokio/pull/8277 |
| 86 | + |
1 | 87 | # 1.52.4 (July 16th, 2026) |
2 | 88 |
|
3 | 89 | ### Fixed |
|
0 commit comments