summaryrefslogtreecommitdiffstats
path: root/third_party/rust/tokio/CHANGELOG.md
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-19 00:47:55 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-19 00:47:55 +0000
commit26a029d407be480d791972afb5975cf62c9360a6 (patch)
treef435a8308119effd964b339f76abb83a57c29483 /third_party/rust/tokio/CHANGELOG.md
parentInitial commit. (diff)
downloadfirefox-26a029d407be480d791972afb5975cf62c9360a6.tar.xz
firefox-26a029d407be480d791972afb5975cf62c9360a6.zip
Adding upstream version 124.0.1.upstream/124.0.1
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'third_party/rust/tokio/CHANGELOG.md')
-rw-r--r--third_party/rust/tokio/CHANGELOG.md2894
1 files changed, 2894 insertions, 0 deletions
diff --git a/third_party/rust/tokio/CHANGELOG.md b/third_party/rust/tokio/CHANGELOG.md
new file mode 100644
index 0000000000..aea22c6d98
--- /dev/null
+++ b/third_party/rust/tokio/CHANGELOG.md
@@ -0,0 +1,2894 @@
+# 1.29.1 (June 29, 2023)
+
+### Fixed
+
+- rt: fix nesting two `block_in_place` with a `block_on` between ([#5837])
+
+[#5837]: https://github.com/tokio-rs/tokio/pull/5837
+
+# 1.29.0 (June 27, 2023)
+
+Technically a breaking change, the `Send` implementation is removed from
+`runtime::EnterGuard`. This change fixes a bug and should not impact most users.
+
+### Breaking
+
+- rt: `EnterGuard` should not be `Send` ([#5766])
+
+### Fixed
+
+- fs: reduce blocking ops in `fs::read_dir` ([#5653])
+- rt: fix possible starvation ([#5686], [#5712])
+- rt: fix stacked borrows issue in `JoinSet` ([#5693])
+- rt: panic if `EnterGuard` dropped incorrect order ([#5772])
+- time: do not overflow to signal value ([#5710])
+- fs: wait for in-flight ops before cloning `File` ([#5803])
+
+### Changed
+
+- rt: reduce time to poll tasks scheduled from outside the runtime ([#5705], [#5720])
+
+### Added
+
+- net: add uds doc alias for unix sockets ([#5659])
+- rt: add metric for number of tasks ([#5628])
+- sync: implement more traits for channel errors ([#5666])
+- net: add nodelay methods on TcpSocket ([#5672])
+- sync: add `broadcast::Receiver::blocking_recv` ([#5690])
+- process: add `raw_arg` method to `Command` ([#5704])
+- io: support PRIORITY epoll events ([#5566])
+- task: add `JoinSet::poll_join_next` ([#5721])
+- net: add support for Redox OS ([#5790])
+
+
+### Unstable
+
+- rt: add the ability to dump task backtraces ([#5608], [#5676], [#5708], [#5717])
+- rt: instrument task poll times with a histogram ([#5685])
+
+[#5766]: https://github.com/tokio-rs/tokio/pull/5766
+[#5653]: https://github.com/tokio-rs/tokio/pull/5653
+[#5686]: https://github.com/tokio-rs/tokio/pull/5686
+[#5712]: https://github.com/tokio-rs/tokio/pull/5712
+[#5693]: https://github.com/tokio-rs/tokio/pull/5693
+[#5772]: https://github.com/tokio-rs/tokio/pull/5772
+[#5710]: https://github.com/tokio-rs/tokio/pull/5710
+[#5803]: https://github.com/tokio-rs/tokio/pull/5803
+[#5705]: https://github.com/tokio-rs/tokio/pull/5705
+[#5720]: https://github.com/tokio-rs/tokio/pull/5720
+[#5659]: https://github.com/tokio-rs/tokio/pull/5659
+[#5628]: https://github.com/tokio-rs/tokio/pull/5628
+[#5666]: https://github.com/tokio-rs/tokio/pull/5666
+[#5672]: https://github.com/tokio-rs/tokio/pull/5672
+[#5690]: https://github.com/tokio-rs/tokio/pull/5690
+[#5704]: https://github.com/tokio-rs/tokio/pull/5704
+[#5566]: https://github.com/tokio-rs/tokio/pull/5566
+[#5721]: https://github.com/tokio-rs/tokio/pull/5721
+[#5790]: https://github.com/tokio-rs/tokio/pull/5790
+[#5608]: https://github.com/tokio-rs/tokio/pull/5608
+[#5676]: https://github.com/tokio-rs/tokio/pull/5676
+[#5708]: https://github.com/tokio-rs/tokio/pull/5708
+[#5717]: https://github.com/tokio-rs/tokio/pull/5717
+[#5685]: https://github.com/tokio-rs/tokio/pull/5685
+
+# 1.28.2 (May 28, 2023)
+
+Forward ports 1.18.6 changes.
+
+### Fixed
+
+- deps: disable default features for mio ([#5728])
+
+[#5728]: https://github.com/tokio-rs/tokio/pull/5728
+
+# 1.28.1 (May 10th, 2023)
+
+This release fixes a mistake in the build script that makes `AsFd`
+implementations unavailable on Rust 1.63. ([#5677])
+
+[#5677]: https://github.com/tokio-rs/tokio/pull/5677
+
+# 1.28.0 (April 25th, 2023)
+
+### Added
+
+- io: add `AsyncFd::async_io` ([#5542])
+- io: impl BufMut for ReadBuf ([#5590])
+- net: add `recv_buf` for `UdpSocket` and `UnixDatagram` ([#5583])
+- sync: add `OwnedSemaphorePermit::semaphore` ([#5618])
+- sync: add `same_channel` to broadcast channel ([#5607])
+- sync: add `watch::Receiver::wait_for` ([#5611])
+- task: add `JoinSet::spawn_blocking` and `JoinSet::spawn_blocking_on` ([#5612])
+
+### Changed
+
+- deps: update windows-sys to 0.48 ([#5591])
+- io: make `read_to_end` not grow unnecessarily ([#5610])
+- macros: make entrypoints more efficient ([#5621])
+- sync: improve Debug impl for `RwLock` ([#5647])
+- sync: reduce contention in `Notify` ([#5503])
+
+### Fixed
+
+- net: support `get_peer_cred` on AIX ([#5065])
+- sync: avoid deadlocks in `broadcast` with custom wakers ([#5578])
+
+### Documented
+
+- sync: fix typo in `Semaphore::MAX_PERMITS` ([#5645])
+- sync: fix typo in `tokio::sync::watch::Sender` docs ([#5587])
+
+[#5065]: https://github.com/tokio-rs/tokio/pull/5065
+[#5503]: https://github.com/tokio-rs/tokio/pull/5503
+[#5542]: https://github.com/tokio-rs/tokio/pull/5542
+[#5578]: https://github.com/tokio-rs/tokio/pull/5578
+[#5583]: https://github.com/tokio-rs/tokio/pull/5583
+[#5587]: https://github.com/tokio-rs/tokio/pull/5587
+[#5590]: https://github.com/tokio-rs/tokio/pull/5590
+[#5591]: https://github.com/tokio-rs/tokio/pull/5591
+[#5607]: https://github.com/tokio-rs/tokio/pull/5607
+[#5610]: https://github.com/tokio-rs/tokio/pull/5610
+[#5611]: https://github.com/tokio-rs/tokio/pull/5611
+[#5612]: https://github.com/tokio-rs/tokio/pull/5612
+[#5618]: https://github.com/tokio-rs/tokio/pull/5618
+[#5621]: https://github.com/tokio-rs/tokio/pull/5621
+[#5645]: https://github.com/tokio-rs/tokio/pull/5645
+[#5647]: https://github.com/tokio-rs/tokio/pull/5647
+
+# 1.27.0 (March 27th, 2023)
+
+This release bumps the MSRV of Tokio to 1.56. ([#5559])
+
+### Added
+
+- io: add `async_io` helper method to sockets ([#5512])
+- io: add implementations of `AsFd`/`AsHandle`/`AsSocket` ([#5514], [#5540])
+- net: add `UdpSocket::peek_sender()` ([#5520])
+- sync: add `RwLockWriteGuard::{downgrade_map, try_downgrade_map}` ([#5527])
+- task: add `JoinHandle::abort_handle` ([#5543])
+
+### Changed
+
+- io: use `memchr` from `libc` ([#5558])
+- macros: accept path as crate rename in `#[tokio::main]` ([#5557])
+- macros: update to syn 2.0.0 ([#5572])
+- time: don't register for a wakeup when `Interval` returns `Ready` ([#5553])
+
+### Fixed
+
+- fs: fuse std iterator in `ReadDir` ([#5555])
+- tracing: fix `spawn_blocking` location fields ([#5573])
+- time: clean up redundant check in `Wheel::poll()` ([#5574])
+
+### Documented
+
+- macros: define cancellation safety ([#5525])
+- io: add details to docs of `tokio::io::copy[_buf]` ([#5575])
+- io: refer to `ReaderStream` and `StreamReader` in module docs ([#5576])
+
+[#5512]: https://github.com/tokio-rs/tokio/pull/5512
+[#5514]: https://github.com/tokio-rs/tokio/pull/5514
+[#5520]: https://github.com/tokio-rs/tokio/pull/5520
+[#5525]: https://github.com/tokio-rs/tokio/pull/5525
+[#5527]: https://github.com/tokio-rs/tokio/pull/5527
+[#5540]: https://github.com/tokio-rs/tokio/pull/5540
+[#5543]: https://github.com/tokio-rs/tokio/pull/5543
+[#5553]: https://github.com/tokio-rs/tokio/pull/5553
+[#5555]: https://github.com/tokio-rs/tokio/pull/5555
+[#5557]: https://github.com/tokio-rs/tokio/pull/5557
+[#5558]: https://github.com/tokio-rs/tokio/pull/5558
+[#5559]: https://github.com/tokio-rs/tokio/pull/5559
+[#5572]: https://github.com/tokio-rs/tokio/pull/5572
+[#5573]: https://github.com/tokio-rs/tokio/pull/5573
+[#5574]: https://github.com/tokio-rs/tokio/pull/5574
+[#5575]: https://github.com/tokio-rs/tokio/pull/5575
+[#5576]: https://github.com/tokio-rs/tokio/pull/5576
+
+# 1.26.0 (March 1st, 2023)
+
+### Fixed
+
+- macros: fix empty `join!` and `try_join!` ([#5504])
+- sync: don't leak tracing spans in mutex guards ([#5469])
+- sync: drop wakers after unlocking the mutex in Notify ([#5471])
+- sync: drop wakers outside lock in semaphore ([#5475])
+
+### Added
+
+- fs: add `fs::try_exists` ([#4299])
+- net: add types for named unix pipes ([#5351])
+- sync: add `MappedOwnedMutexGuard` ([#5474])
+
+### Changed
+
+- chore: update windows-sys to 0.45 ([#5386])
+- net: use Message Read Mode for named pipes ([#5350])
+- sync: mark lock guards with `#[clippy::has_significant_drop]` ([#5422])
+- sync: reduce contention in watch channel ([#5464])
+- time: remove cache padding in timer entries ([#5468])
+- time: Improve `Instant::now()` perf with test-util ([#5513])
+
+### Internal Changes
+
+- io: use `poll_fn` in `copy_bidirectional` ([#5486])
+- net: refactor named pipe builders to not use bitfields ([#5477])
+- rt: remove Arc from Clock ([#5434])
+- sync: make `notify_waiters` calls atomic ([#5458])
+- time: don't store deadline twice in sleep entries ([#5410])
+
+### Unstable
+
+- metrics: add a new metric for budget exhaustion yields ([#5517])
+
+### Documented
+
+- io: improve AsyncFd example ([#5481])
+- runtime: document the nature of the main future ([#5494])
+- runtime: remove extra period in docs ([#5511])
+- signal: updated Documentation for Signals ([#5459])
+- sync: add doc aliases for `blocking_*` methods ([#5448])
+- sync: fix docs for Send/Sync bounds in broadcast ([#5480])
+- sync: document drop behavior for channels ([#5497])
+- task: clarify what happens to spawned work during runtime shutdown ([#5394])
+- task: clarify `process::Command` docs ([#5413])
+- task: fix wording with 'unsend' ([#5452])
+- time: document immediate completion guarantee for timeouts ([#5509])
+- tokio: document supported platforms ([#5483])
+
+[#4299]: https://github.com/tokio-rs/tokio/pull/4299
+[#5350]: https://github.com/tokio-rs/tokio/pull/5350
+[#5351]: https://github.com/tokio-rs/tokio/pull/5351
+[#5386]: https://github.com/tokio-rs/tokio/pull/5386
+[#5394]: https://github.com/tokio-rs/tokio/pull/5394
+[#5410]: https://github.com/tokio-rs/tokio/pull/5410
+[#5413]: https://github.com/tokio-rs/tokio/pull/5413
+[#5422]: https://github.com/tokio-rs/tokio/pull/5422
+[#5434]: https://github.com/tokio-rs/tokio/pull/5434
+[#5448]: https://github.com/tokio-rs/tokio/pull/5448
+[#5452]: https://github.com/tokio-rs/tokio/pull/5452
+[#5458]: https://github.com/tokio-rs/tokio/pull/5458
+[#5459]: https://github.com/tokio-rs/tokio/pull/5459
+[#5464]: https://github.com/tokio-rs/tokio/pull/5464
+[#5468]: https://github.com/tokio-rs/tokio/pull/5468
+[#5469]: https://github.com/tokio-rs/tokio/pull/5469
+[#5471]: https://github.com/tokio-rs/tokio/pull/5471
+[#5474]: https://github.com/tokio-rs/tokio/pull/5474
+[#5475]: https://github.com/tokio-rs/tokio/pull/5475
+[#5477]: https://github.com/tokio-rs/tokio/pull/5477
+[#5480]: https://github.com/tokio-rs/tokio/pull/5480
+[#5481]: https://github.com/tokio-rs/tokio/pull/5481
+[#5483]: https://github.com/tokio-rs/tokio/pull/5483
+[#5486]: https://github.com/tokio-rs/tokio/pull/5486
+[#5494]: https://github.com/tokio-rs/tokio/pull/5494
+[#5497]: https://github.com/tokio-rs/tokio/pull/5497
+[#5504]: https://github.com/tokio-rs/tokio/pull/5504
+[#5509]: https://github.com/tokio-rs/tokio/pull/5509
+[#5511]: https://github.com/tokio-rs/tokio/pull/5511
+[#5513]: https://github.com/tokio-rs/tokio/pull/5513
+[#5517]: https://github.com/tokio-rs/tokio/pull/5517
+
+# 1.25.1 (May 28, 2023)
+
+Forward ports 1.18.6 changes.
+
+### Fixed
+
+- deps: disable default features for mio ([#5728])
+
+[#5728]: https://github.com/tokio-rs/tokio/pull/5728
+
+# 1.25.0 (January 28, 2023)
+
+### Fixed
+
+- rt: fix runtime metrics reporting ([#5330])
+
+### Added
+
+- sync: add `broadcast::Sender::len` ([#5343])
+
+### Changed
+
+- fs: increase maximum read buffer size to 2MiB ([#5397])
+
+[#5330]: https://github.com/tokio-rs/tokio/pull/5330
+[#5343]: https://github.com/tokio-rs/tokio/pull/5343
+[#5397]: https://github.com/tokio-rs/tokio/pull/5397
+
+# 1.24.2 (January 17, 2023)
+
+Forward ports 1.18.5 changes.
+
+### Fixed
+
+- io: fix unsoundness in `ReadHalf::unsplit` ([#5375])
+
+[#5375]: https://github.com/tokio-rs/tokio/pull/5375
+
+# 1.24.1 (January 6, 2022)
+
+This release fixes a compilation failure on targets without `AtomicU64` when using rustc older than 1.63. ([#5356])
+
+[#5356]: https://github.com/tokio-rs/tokio/pull/5356
+
+# 1.24.0 (January 5, 2022)
+
+### Fixed
+ - rt: improve native `AtomicU64` support detection ([#5284])
+
+### Added
+ - rt: add configuration option for max number of I/O events polled from the OS
+ per tick ([#5186])
+ - rt: add an environment variable for configuring the default number of worker
+ threads per runtime instance ([#4250])
+
+### Changed
+ - sync: reduce MPSC channel stack usage ([#5294])
+ - io: reduce lock contention in I/O operations ([#5300])
+ - fs: speed up `read_dir()` by chunking operations ([#5309])
+ - rt: use internal `ThreadId` implementation ([#5329])
+ - test: don't auto-advance time when a `spawn_blocking` task is running ([#5115])
+
+[#5186]: https://github.com/tokio-rs/tokio/pull/5186
+[#5294]: https://github.com/tokio-rs/tokio/pull/5294
+[#5284]: https://github.com/tokio-rs/tokio/pull/5284
+[#4250]: https://github.com/tokio-rs/tokio/pull/4250
+[#5300]: https://github.com/tokio-rs/tokio/pull/5300
+[#5329]: https://github.com/tokio-rs/tokio/pull/5329
+[#5115]: https://github.com/tokio-rs/tokio/pull/5115
+[#5309]: https://github.com/tokio-rs/tokio/pull/5309
+
+# 1.23.1 (January 4, 2022)
+
+This release forward ports changes from 1.18.4.
+
+### Fixed
+
+- net: fix Windows named pipe server builder to maintain option when toggling
+ pipe mode ([#5336]).
+
+[#5336]: https://github.com/tokio-rs/tokio/pull/5336
+
+# 1.23.0 (December 5, 2022)
+
+### Fixed
+
+ - net: fix Windows named pipe connect ([#5208])
+ - io: support vectored writes for `ChildStdin` ([#5216])
+ - io: fix `async fn ready()` false positive for OS-specific events ([#5231])
+
+ ### Changed
+ - runtime: `yield_now` defers task until after driver poll ([#5223])
+ - runtime: reduce amount of codegen needed per spawned task ([#5213])
+ - windows: replace `winapi` dependency with `windows-sys` ([#5204])
+
+ [#5208]: https://github.com/tokio-rs/tokio/pull/5208
+ [#5216]: https://github.com/tokio-rs/tokio/pull/5216
+ [#5213]: https://github.com/tokio-rs/tokio/pull/5213
+ [#5204]: https://github.com/tokio-rs/tokio/pull/5204
+ [#5223]: https://github.com/tokio-rs/tokio/pull/5223
+ [#5231]: https://github.com/tokio-rs/tokio/pull/5231
+
+# 1.22.0 (November 17, 2022)
+
+### Added
+ - runtime: add `Handle::runtime_flavor` ([#5138])
+ - sync: add `Mutex::blocking_lock_owned` ([#5130])
+ - sync: add `Semaphore::MAX_PERMITS` ([#5144])
+ - sync: add `merge()` to semaphore permits ([#4948])
+ - sync: add `mpsc::WeakUnboundedSender` ([#5189])
+
+### Added (unstable)
+
+ - process: add `Command::process_group` ([#5114])
+ - runtime: export metrics about the blocking thread pool ([#5161])
+ - task: add `task::id()` and `task::try_id()` ([#5171])
+
+### Fixed
+ - macros: don't take ownership of futures in macros ([#5087])
+ - runtime: fix Stacked Borrows violation in `LocalOwnedTasks` ([#5099])
+ - runtime: mitigate ABA with 32-bit queue indices when possible ([#5042])
+ - task: wake local tasks to the local queue when woken by the same thread ([#5095])
+ - time: panic in release mode when `mark_pending` called illegally ([#5093])
+ - runtime: fix typo in expect message ([#5169])
+ - runtime: fix `unsync_load` on atomic types ([#5175])
+ - task: elaborate safety comments in task deallocation ([#5172])
+ - runtime: fix `LocalSet` drop in thread local ([#5179])
+ - net: remove libc type leakage in a public API ([#5191])
+ - runtime: update the alignment of `CachePadded` ([#5106])
+
+### Changed
+ - io: make `tokio::io::copy` continue filling the buffer when writer stalls ([#5066])
+ - runtime: remove `coop::budget` from `LocalSet::run_until` ([#5155])
+ - sync: make `Notify` panic safe ([#5154])
+
+### Documented
+ - io: fix doc for `write_i8` to use signed integers ([#5040])
+ - net: fix doc typos for TCP and UDP `set_tos` methods ([#5073])
+ - net: fix function name in `UdpSocket::recv` documentation ([#5150])
+ - sync: typo in `TryLockError` for `RwLock::try_write` ([#5160])
+ - task: document that spawned tasks execute immediately ([#5117])
+ - time: document return type of `timeout` ([#5118])
+ - time: document that `timeout` checks only before poll ([#5126])
+ - sync: specify return type of `oneshot::Receiver` in docs ([#5198])
+
+### Internal changes
+ - runtime: use const `Mutex::new` for globals ([#5061])
+ - runtime: remove `Option` around `mio::Events` in io driver ([#5078])
+ - runtime: remove a conditional compilation clause ([#5104])
+ - runtime: remove a reference to internal time handle ([#5107])
+ - runtime: misc time driver cleanup ([#5120])
+ - runtime: move signal driver to runtime module ([#5121])
+ - runtime: signal driver now uses I/O driver directly ([#5125])
+ - runtime: start decoupling I/O driver and I/O handle ([#5127])
+ - runtime: switch `io::handle` refs with scheduler:Handle ([#5128])
+ - runtime: remove Arc from I/O driver ([#5134])
+ - runtime: use signal driver handle via `scheduler::Handle` ([#5135])
+ - runtime: move internal clock fns out of context ([#5139])
+ - runtime: remove `runtime::context` module ([#5140])
+ - runtime: keep driver cfgs in `driver.rs` ([#5141])
+ - runtime: add `runtime::context` to unify thread-locals ([#5143])
+ - runtime: rename some confusing internal variables/fns ([#5151])
+ - runtime: move `coop` mod into `runtime` ([#5152])
+ - runtime: move budget state to context thread-local ([#5157])
+ - runtime: move park logic into runtime module ([#5158])
+ - runtime: move `Runtime` into its own file ([#5159])
+ - runtime: unify entering a runtime with `Handle::enter` ([#5163])
+ - runtime: remove handle reference from each scheduler ([#5166])
+ - runtime: move `enter` into `context` ([#5167])
+ - runtime: combine context and entered thread-locals ([#5168])
+ - runtime: fix accidental unsetting of current handle ([#5178])
+ - runtime: move `CoreStage` methods to `Core` ([#5182])
+ - sync: name mpsc semaphore types ([#5146])
+
+[#4948]: https://github.com/tokio-rs/tokio/pull/4948
+[#5040]: https://github.com/tokio-rs/tokio/pull/5040
+[#5042]: https://github.com/tokio-rs/tokio/pull/5042
+[#5061]: https://github.com/tokio-rs/tokio/pull/5061
+[#5066]: https://github.com/tokio-rs/tokio/pull/5066
+[#5073]: https://github.com/tokio-rs/tokio/pull/5073
+[#5078]: https://github.com/tokio-rs/tokio/pull/5078
+[#5087]: https://github.com/tokio-rs/tokio/pull/5087
+[#5093]: https://github.com/tokio-rs/tokio/pull/5093
+[#5095]: https://github.com/tokio-rs/tokio/pull/5095
+[#5099]: https://github.com/tokio-rs/tokio/pull/5099
+[#5104]: https://github.com/tokio-rs/tokio/pull/5104
+[#5106]: https://github.com/tokio-rs/tokio/pull/5106
+[#5107]: https://github.com/tokio-rs/tokio/pull/5107
+[#5114]: https://github.com/tokio-rs/tokio/pull/5114
+[#5117]: https://github.com/tokio-rs/tokio/pull/5117
+[#5118]: https://github.com/tokio-rs/tokio/pull/5118
+[#5120]: https://github.com/tokio-rs/tokio/pull/5120
+[#5121]: https://github.com/tokio-rs/tokio/pull/5121
+[#5125]: https://github.com/tokio-rs/tokio/pull/5125
+[#5126]: https://github.com/tokio-rs/tokio/pull/5126
+[#5127]: https://github.com/tokio-rs/tokio/pull/5127
+[#5128]: https://github.com/tokio-rs/tokio/pull/5128
+[#5130]: https://github.com/tokio-rs/tokio/pull/5130
+[#5134]: https://github.com/tokio-rs/tokio/pull/5134
+[#5135]: https://github.com/tokio-rs/tokio/pull/5135
+[#5138]: https://github.com/tokio-rs/tokio/pull/5138
+[#5138]: https://github.com/tokio-rs/tokio/pull/5138
+[#5139]: https://github.com/tokio-rs/tokio/pull/5139
+[#5140]: https://github.com/tokio-rs/tokio/pull/5140
+[#5141]: https://github.com/tokio-rs/tokio/pull/5141
+[#5143]: https://github.com/tokio-rs/tokio/pull/5143
+[#5144]: https://github.com/tokio-rs/tokio/pull/5144
+[#5144]: https://github.com/tokio-rs/tokio/pull/5144
+[#5146]: https://github.com/tokio-rs/tokio/pull/5146
+[#5150]: https://github.com/tokio-rs/tokio/pull/5150
+[#5151]: https://github.com/tokio-rs/tokio/pull/5151
+[#5152]: https://github.com/tokio-rs/tokio/pull/5152
+[#5154]: https://github.com/tokio-rs/tokio/pull/5154
+[#5155]: https://github.com/tokio-rs/tokio/pull/5155
+[#5157]: https://github.com/tokio-rs/tokio/pull/5157
+[#5158]: https://github.com/tokio-rs/tokio/pull/5158
+[#5159]: https://github.com/tokio-rs/tokio/pull/5159
+[#5160]: https://github.com/tokio-rs/tokio/pull/5160
+[#5161]: https://github.com/tokio-rs/tokio/pull/5161
+[#5163]: https://github.com/tokio-rs/tokio/pull/5163
+[#5166]: https://github.com/tokio-rs/tokio/pull/5166
+[#5167]: https://github.com/tokio-rs/tokio/pull/5167
+[#5168]: https://github.com/tokio-rs/tokio/pull/5168
+[#5169]: https://github.com/tokio-rs/tokio/pull/5169
+[#5171]: https://github.com/tokio-rs/tokio/pull/5171
+[#5172]: https://github.com/tokio-rs/tokio/pull/5172
+[#5175]: https://github.com/tokio-rs/tokio/pull/5175
+[#5178]: https://github.com/tokio-rs/tokio/pull/5178
+[#5179]: https://github.com/tokio-rs/tokio/pull/5179
+[#5182]: https://github.com/tokio-rs/tokio/pull/5182
+[#5189]: https://github.com/tokio-rs/tokio/pull/5189
+[#5191]: https://github.com/tokio-rs/tokio/pull/5191
+[#5198]: https://github.com/tokio-rs/tokio/pull/5198
+
+# 1.21.2 (September 27, 2022)
+
+This release removes the dependency on the `once_cell` crate to restore the MSRV
+of 1.21.x, which is the latest minor version at the time of release. ([#5048])
+
+[#5048]: https://github.com/tokio-rs/tokio/pull/5048
+
+# 1.21.1 (September 13, 2022)
+
+### Fixed
+
+- net: fix dependency resolution for socket2 ([#5000])
+- task: ignore failure to set TLS in `LocalSet` Drop ([#4976])
+
+[#4976]: https://github.com/tokio-rs/tokio/pull/4976
+[#5000]: https://github.com/tokio-rs/tokio/pull/5000
+
+# 1.21.0 (September 2, 2022)
+
+This release is the first release of Tokio to intentionally support WASM. The
+`sync,macros,io-util,rt,time` features are stabilized on WASM. Additionally the
+wasm32-wasi target is given unstable support for the `net` feature.
+
+### Added
+
+- net: add `device` and `bind_device` methods to TCP/UDP sockets ([#4882])
+- net: add `tos` and `set_tos` methods to TCP and UDP sockets ([#4877])
+- net: add security flags to named pipe `ServerOptions` ([#4845])
+- signal: add more windows signal handlers ([#4924])
+- sync: add `mpsc::Sender::max_capacity` method ([#4904])
+- sync: implement Weak version of `mpsc::Sender` ([#4595])
+- task: add `LocalSet::enter` ([#4765])
+- task: stabilize `JoinSet` and `AbortHandle` ([#4920])
+- tokio: add `track_caller` to public APIs ([#4805], [#4848], [#4852])
+- wasm: initial support for `wasm32-wasi` target ([#4716])
+
+### Fixed
+
+- miri: improve miri compatibility by avoiding temporary references in `linked_list::Link` impls ([#4841])
+- signal: don't register write interest on signal pipe ([#4898])
+- sync: add `#[must_use]` to lock guards ([#4886])
+- sync: fix hang when calling `recv` on closed and reopened broadcast channel ([#4867])
+- task: propagate attributes on task-locals ([#4837])
+
+### Changed
+
+- fs: change panic to error in `File::start_seek` ([#4897])
+- io: reduce syscalls in `poll_read` ([#4840])
+- process: use blocking threadpool for child stdio I/O ([#4824])
+- signal: make `SignalKind` methods const ([#4956])
+
+### Internal changes
+
+- rt: extract `basic_scheduler::Config` ([#4935])
+- rt: move I/O driver into `runtime` module ([#4942])
+- rt: rename internal scheduler types ([#4945])
+
+### Documented
+
+- chore: fix typos and grammar ([#4858], [#4894], [#4928])
+- io: fix typo in `AsyncSeekExt::rewind` docs ([#4893])
+- net: add documentation to `try_read()` for zero-length buffers ([#4937])
+- runtime: remove incorrect panic section for `Builder::worker_threads` ([#4849])
+- sync: doc of `watch::Sender::send` improved ([#4959])
+- task: add cancel safety docs to `JoinHandle` ([#4901])
+- task: expand on cancellation of `spawn_blocking` ([#4811])
+- time: clarify that the first tick of `Interval::tick` happens immediately ([#4951])
+
+### Unstable
+
+- rt: add unstable option to disable the LIFO slot ([#4936])
+- task: fix incorrect signature in `Builder::spawn_on` ([#4953])
+- task: make `task::Builder::spawn*` methods fallible ([#4823])
+
+[#4595]: https://github.com/tokio-rs/tokio/pull/4595
+[#4716]: https://github.com/tokio-rs/tokio/pull/4716
+[#4765]: https://github.com/tokio-rs/tokio/pull/4765
+[#4805]: https://github.com/tokio-rs/tokio/pull/4805
+[#4811]: https://github.com/tokio-rs/tokio/pull/4811
+[#4823]: https://github.com/tokio-rs/tokio/pull/4823
+[#4824]: https://github.com/tokio-rs/tokio/pull/4824
+[#4837]: https://github.com/tokio-rs/tokio/pull/4837
+[#4840]: https://github.com/tokio-rs/tokio/pull/4840
+[#4841]: https://github.com/tokio-rs/tokio/pull/4841
+[#4845]: https://github.com/tokio-rs/tokio/pull/4845
+[#4848]: https://github.com/tokio-rs/tokio/pull/4848
+[#4849]: https://github.com/tokio-rs/tokio/pull/4849
+[#4852]: https://github.com/tokio-rs/tokio/pull/4852
+[#4858]: https://github.com/tokio-rs/tokio/pull/4858
+[#4867]: https://github.com/tokio-rs/tokio/pull/4867
+[#4877]: https://github.com/tokio-rs/tokio/pull/4877
+[#4882]: https://github.com/tokio-rs/tokio/pull/4882
+[#4886]: https://github.com/tokio-rs/tokio/pull/4886
+[#4893]: https://github.com/tokio-rs/tokio/pull/4893
+[#4894]: https://github.com/tokio-rs/tokio/pull/4894
+[#4897]: https://github.com/tokio-rs/tokio/pull/4897
+[#4898]: https://github.com/tokio-rs/tokio/pull/4898
+[#4901]: https://github.com/tokio-rs/tokio/pull/4901
+[#4904]: https://github.com/tokio-rs/tokio/pull/4904
+[#4920]: https://github.com/tokio-rs/tokio/pull/4920
+[#4924]: https://github.com/tokio-rs/tokio/pull/4924
+[#4928]: https://github.com/tokio-rs/tokio/pull/4928
+[#4935]: https://github.com/tokio-rs/tokio/pull/4935
+[#4936]: https://github.com/tokio-rs/tokio/pull/4936
+[#4937]: https://github.com/tokio-rs/tokio/pull/4937
+[#4942]: https://github.com/tokio-rs/tokio/pull/4942
+[#4945]: https://github.com/tokio-rs/tokio/pull/4945
+[#4951]: https://github.com/tokio-rs/tokio/pull/4951
+[#4953]: https://github.com/tokio-rs/tokio/pull/4953
+[#4956]: https://github.com/tokio-rs/tokio/pull/4956
+[#4959]: https://github.com/tokio-rs/tokio/pull/4959
+
+# 1.20.5 (May 28, 2023)
+
+Forward ports 1.18.6 changes.
+
+### Fixed
+
+- deps: disable default features for mio ([#5728])
+
+[#5728]: https://github.com/tokio-rs/tokio/pull/5728
+
+# 1.20.4 (January 17, 2023)
+
+Forward ports 1.18.5 changes.
+
+### Fixed
+
+- io: fix unsoundness in `ReadHalf::unsplit` ([#5375])
+
+[#5375]: https://github.com/tokio-rs/tokio/pull/5375
+
+# 1.20.3 (January 3, 2022)
+
+This release forward ports changes from 1.18.4.
+
+### Fixed
+
+- net: fix Windows named pipe server builder to maintain option when toggling
+ pipe mode ([#5336]).
+
+[#5336]: https://github.com/tokio-rs/tokio/pull/5336
+
+# 1.20.2 (September 27, 2022)
+
+This release removes the dependency on the `once_cell` crate to restore the MSRV
+of the 1.20.x LTS release. ([#5048])
+
+[#5048]: https://github.com/tokio-rs/tokio/pull/5048
+
+# 1.20.1 (July 25, 2022)
+
+### Fixed
+
+- chore: fix version detection in build script ([#4860])
+
+[#4860]: https://github.com/tokio-rs/tokio/pull/4860
+
+# 1.20.0 (July 12, 2022)
+
+### Added
+- tokio: add `track_caller` to public APIs ([#4772], [#4791], [#4793], [#4806], [#4808])
+- sync: Add `has_changed` method to `watch::Ref` ([#4758])
+
+### Changed
+
+- time: remove `src/time/driver/wheel/stack.rs` ([#4766])
+- rt: clean up arguments passed to basic scheduler ([#4767])
+- net: be more specific about winapi features ([#4764])
+- tokio: use const initialized thread locals where possible ([#4677])
+- task: various small improvements to LocalKey ([#4795])
+
+### Documented
+
+- fs: warn about performance pitfall ([#4762])
+- chore: fix spelling ([#4769])
+- sync: document spurious failures in oneshot ([#4777])
+- sync: add warning for watch in non-Send futures ([#4741])
+- chore: fix typo ([#4798])
+
+### Unstable
+
+- joinset: rename `join_one` to `join_next` ([#4755])
+- rt: unhandled panic config for current thread rt ([#4770])
+
+[#4677]: https://github.com/tokio-rs/tokio/pull/4677
+[#4741]: https://github.com/tokio-rs/tokio/pull/4741
+[#4755]: https://github.com/tokio-rs/tokio/pull/4755
+[#4758]: https://github.com/tokio-rs/tokio/pull/4758
+[#4762]: https://github.com/tokio-rs/tokio/pull/4762
+[#4764]: https://github.com/tokio-rs/tokio/pull/4764
+[#4766]: https://github.com/tokio-rs/tokio/pull/4766
+[#4767]: https://github.com/tokio-rs/tokio/pull/4767
+[#4769]: https://github.com/tokio-rs/tokio/pull/4769
+[#4770]: https://github.com/tokio-rs/tokio/pull/4770
+[#4772]: https://github.com/tokio-rs/tokio/pull/4772
+[#4777]: https://github.com/tokio-rs/tokio/pull/4777
+[#4791]: https://github.com/tokio-rs/tokio/pull/4791
+[#4793]: https://github.com/tokio-rs/tokio/pull/4793
+[#4795]: https://github.com/tokio-rs/tokio/pull/4795
+[#4798]: https://github.com/tokio-rs/tokio/pull/4798
+[#4806]: https://github.com/tokio-rs/tokio/pull/4806
+[#4808]: https://github.com/tokio-rs/tokio/pull/4808
+
+# 1.19.2 (June 6, 2022)
+
+This release fixes another bug in `Notified::enable`. ([#4751])
+
+[#4751]: https://github.com/tokio-rs/tokio/pull/4751
+
+# 1.19.1 (June 5, 2022)
+
+This release fixes a bug in `Notified::enable`. ([#4747])
+
+[#4747]: https://github.com/tokio-rs/tokio/pull/4747
+
+# 1.19.0 (June 3, 2022)
+
+### Added
+
+- runtime: add `is_finished` method for `JoinHandle` and `AbortHandle` ([#4709])
+- runtime: make global queue and event polling intervals configurable ([#4671])
+- sync: add `Notified::enable` ([#4705])
+- sync: add `watch::Sender::send_if_modified` ([#4591])
+- sync: add resubscribe method to broadcast::Receiver ([#4607])
+- net: add `take_error` to `TcpSocket` and `TcpStream` ([#4739])
+
+### Changed
+
+- io: refactor out usage of Weak in the io handle ([#4656])
+
+### Fixed
+
+- macros: avoid starvation in `join!` and `try_join!` ([#4624])
+
+### Documented
+
+- runtime: clarify semantics of tasks outliving `block_on` ([#4729])
+- time: fix example for `MissedTickBehavior::Burst` ([#4713])
+
+### Unstable
+
+- metrics: correctly update atomics in `IoDriverMetrics` ([#4725])
+- metrics: fix compilation with unstable, process, and rt, but without net ([#4682])
+- task: add `#[track_caller]` to `JoinSet`/`JoinMap` ([#4697])
+- task: add `Builder::{spawn_on, spawn_local_on, spawn_blocking_on}` ([#4683])
+- task: add `consume_budget` for cooperative scheduling ([#4498])
+- task: add `join_set::Builder` for configuring `JoinSet` tasks ([#4687])
+- task: update return value of `JoinSet::join_one` ([#4726])
+
+[#4498]: https://github.com/tokio-rs/tokio/pull/4498
+[#4591]: https://github.com/tokio-rs/tokio/pull/4591
+[#4607]: https://github.com/tokio-rs/tokio/pull/4607
+[#4624]: https://github.com/tokio-rs/tokio/pull/4624
+[#4656]: https://github.com/tokio-rs/tokio/pull/4656
+[#4671]: https://github.com/tokio-rs/tokio/pull/4671
+[#4682]: https://github.com/tokio-rs/tokio/pull/4682
+[#4683]: https://github.com/tokio-rs/tokio/pull/4683
+[#4687]: https://github.com/tokio-rs/tokio/pull/4687
+[#4697]: https://github.com/tokio-rs/tokio/pull/4697
+[#4705]: https://github.com/tokio-rs/tokio/pull/4705
+[#4709]: https://github.com/tokio-rs/tokio/pull/4709
+[#4713]: https://github.com/tokio-rs/tokio/pull/4713
+[#4725]: https://github.com/tokio-rs/tokio/pull/4725
+[#4726]: https://github.com/tokio-rs/tokio/pull/4726
+[#4729]: https://github.com/tokio-rs/tokio/pull/4729
+[#4739]: https://github.com/tokio-rs/tokio/pull/4739
+
+# 1.18.6 (May 28, 2023)
+
+### Fixed
+
+- deps: disable default features for mio ([#5728])
+
+[#5728]: https://github.com/tokio-rs/tokio/pull/5728
+
+# 1.18.5 (January 17, 2023)
+
+### Fixed
+
+- io: fix unsoundness in `ReadHalf::unsplit` ([#5375])
+
+[#5375]: https://github.com/tokio-rs/tokio/pull/5375
+
+# 1.18.4 (January 3, 2022)
+
+### Fixed
+
+- net: fix Windows named pipe server builder to maintain option when toggling
+ pipe mode ([#5336]).
+
+[#5336]: https://github.com/tokio-rs/tokio/pull/5336
+
+# 1.18.3 (September 27, 2022)
+
+This release removes the dependency on the `once_cell` crate to restore the MSRV
+of the 1.18.x LTS release. ([#5048])
+
+[#5048]: https://github.com/tokio-rs/tokio/pull/5048
+
+# 1.18.2 (May 5, 2022)
+
+Add missing features for the `winapi` dependency. ([#4663])
+
+[#4663]: https://github.com/tokio-rs/tokio/pull/4663
+
+# 1.18.1 (May 2, 2022)
+
+The 1.18.0 release broke the build for targets without 64-bit atomics when
+building with `tokio_unstable`. This release fixes that. ([#4649])
+
+[#4649]: https://github.com/tokio-rs/tokio/pull/4649
+
+# 1.18.0 (April 27, 2022)
+
+This release adds a number of new APIs in `tokio::net`, `tokio::signal`, and
+`tokio::sync`. In addition, it adds new unstable APIs to `tokio::task` (`Id`s
+for uniquely identifying a task, and `AbortHandle` for remotely cancelling a
+task), as well as a number of bugfixes.
+
+### Fixed
+
+- blocking: add missing `#[track_caller]` for `spawn_blocking` ([#4616])
+- macros: fix `select` macro to process 64 branches ([#4519])
+- net: fix `try_io` methods not calling Mio's `try_io` internally ([#4582])
+- runtime: recover when OS fails to spawn a new thread ([#4485])
+
+### Added
+
+- net: add `UdpSocket::peer_addr` ([#4611])
+- net: add `try_read_buf` method for named pipes ([#4626])
+- signal: add `SignalKind` `Hash`/`Eq` impls and `c_int` conversion ([#4540])
+- signal: add support for signals up to `SIGRTMAX` ([#4555])
+- sync: add `watch::Sender::send_modify` method ([#4310])
+- sync: add `broadcast::Receiver::len` method ([#4542])
+- sync: add `watch::Receiver::same_channel` method ([#4581])
+- sync: implement `Clone` for `RecvError` types ([#4560])
+
+### Changed
+
+- update `mio` to 0.8.1 ([#4582])
+- macros: rename `tokio::select!`'s internal `util` module ([#4543])
+- runtime: use `Vec::with_capacity` when building runtime ([#4553])
+
+### Documented
+
+- improve docs for `tokio_unstable` ([#4524])
+- runtime: include more documentation for thread_pool/worker ([#4511])
+- runtime: update `Handle::current`'s docs to mention `EnterGuard` ([#4567])
+- time: clarify platform specific timer resolution ([#4474])
+- signal: document that `Signal::recv` is cancel-safe ([#4634])
+- sync: `UnboundedReceiver` close docs ([#4548])
+
+### Unstable
+
+The following changes only apply when building with `--cfg tokio_unstable`:
+
+- task: add `task::Id` type ([#4630])
+- task: add `AbortHandle` type for cancelling tasks in a `JoinSet` ([#4530],
+ [#4640])
+- task: fix missing `doc(cfg(...))` attributes for `JoinSet` ([#4531])
+- task: fix broken link in `AbortHandle` RustDoc ([#4545])
+- metrics: add initial IO driver metrics ([#4507])
+
+
+[#4616]: https://github.com/tokio-rs/tokio/pull/4616
+[#4519]: https://github.com/tokio-rs/tokio/pull/4519
+[#4582]: https://github.com/tokio-rs/tokio/pull/4582
+[#4485]: https://github.com/tokio-rs/tokio/pull/4485
+[#4613]: https://github.com/tokio-rs/tokio/pull/4613
+[#4611]: https://github.com/tokio-rs/tokio/pull/4611
+[#4626]: https://github.com/tokio-rs/tokio/pull/4626
+[#4540]: https://github.com/tokio-rs/tokio/pull/4540
+[#4555]: https://github.com/tokio-rs/tokio/pull/4555
+[#4310]: https://github.com/tokio-rs/tokio/pull/4310
+[#4542]: https://github.com/tokio-rs/tokio/pull/4542
+[#4581]: https://github.com/tokio-rs/tokio/pull/4581
+[#4560]: https://github.com/tokio-rs/tokio/pull/4560
+[#4631]: https://github.com/tokio-rs/tokio/pull/4631
+[#4582]: https://github.com/tokio-rs/tokio/pull/4582
+[#4543]: https://github.com/tokio-rs/tokio/pull/4543
+[#4553]: https://github.com/tokio-rs/tokio/pull/4553
+[#4524]: https://github.com/tokio-rs/tokio/pull/4524
+[#4511]: https://github.com/tokio-rs/tokio/pull/4511
+[#4567]: https://github.com/tokio-rs/tokio/pull/4567
+[#4474]: https://github.com/tokio-rs/tokio/pull/4474
+[#4634]: https://github.com/tokio-rs/tokio/pull/4634
+[#4548]: https://github.com/tokio-rs/tokio/pull/4548
+[#4630]: https://github.com/tokio-rs/tokio/pull/4630
+[#4530]: https://github.com/tokio-rs/tokio/pull/4530
+[#4640]: https://github.com/tokio-rs/tokio/pull/4640
+[#4531]: https://github.com/tokio-rs/tokio/pull/4531
+[#4545]: https://github.com/tokio-rs/tokio/pull/4545
+[#4507]: https://github.com/tokio-rs/tokio/pull/4507
+
+# 1.17.0 (February 16, 2022)
+
+This release updates the minimum supported Rust version (MSRV) to 1.49, the
+`mio` dependency to v0.8, and the (optional) `parking_lot` dependency to v0.12.
+Additionally, it contains several bug fixes, as well as internal refactoring and
+performance improvements.
+
+### Fixed
+
+- time: prevent panicking in `sleep` with large durations ([#4495])
+- time: eliminate potential panics in `Instant` arithmetic on platforms where
+ `Instant::now` is not monotonic ([#4461])
+- io: fix `DuplexStream` not participating in cooperative yielding ([#4478])
+- rt: fix potential double panic when dropping a `JoinHandle` ([#4430])
+
+### Changed
+
+- update minimum supported Rust version to 1.49 ([#4457])
+- update `parking_lot` dependency to v0.12.0 ([#4459])
+- update `mio` dependency to v0.8 ([#4449])
+- rt: remove an unnecessary lock in the blocking pool ([#4436])
+- rt: remove an unnecessary enum in the basic scheduler ([#4462])
+- time: use bit manipulation instead of modulo to improve performance ([#4480])
+- net: use `std::future::Ready` instead of our own `Ready` future ([#4271])
+- replace deprecated `atomic::spin_loop_hint` with `hint::spin_loop` ([#4491])
+- fix miri failures in intrusive linked lists ([#4397])
+
+### Documented
+
+- io: add an example for `tokio::process::ChildStdin` ([#4479])
+
+### Unstable
+
+The following changes only apply when building with `--cfg tokio_unstable`:
+
+- task: fix missing location information in `tracing` spans generated by
+ `spawn_local` ([#4483])
+- task: add `JoinSet` for managing sets of tasks ([#4335])
+- metrics: fix compilation error on MIPS ([#4475])
+- metrics: fix compilation error on arm32v7 ([#4453])
+
+[#4495]: https://github.com/tokio-rs/tokio/pull/4495
+[#4461]: https://github.com/tokio-rs/tokio/pull/4461
+[#4478]: https://github.com/tokio-rs/tokio/pull/4478
+[#4430]: https://github.com/tokio-rs/tokio/pull/4430
+[#4457]: https://github.com/tokio-rs/tokio/pull/4457
+[#4459]: https://github.com/tokio-rs/tokio/pull/4459
+[#4449]: https://github.com/tokio-rs/tokio/pull/4449
+[#4462]: https://github.com/tokio-rs/tokio/pull/4462
+[#4436]: https://github.com/tokio-rs/tokio/pull/4436
+[#4480]: https://github.com/tokio-rs/tokio/pull/4480
+[#4271]: https://github.com/tokio-rs/tokio/pull/4271
+[#4491]: https://github.com/tokio-rs/tokio/pull/4491
+[#4397]: https://github.com/tokio-rs/tokio/pull/4397
+[#4479]: https://github.com/tokio-rs/tokio/pull/4479
+[#4483]: https://github.com/tokio-rs/tokio/pull/4483
+[#4335]: https://github.com/tokio-rs/tokio/pull/4335
+[#4475]: https://github.com/tokio-rs/tokio/pull/4475
+[#4453]: https://github.com/tokio-rs/tokio/pull/4453
+
+# 1.16.1 (January 28, 2022)
+
+This release fixes a bug in [#4428] with the change [#4437].
+
+[#4428]: https://github.com/tokio-rs/tokio/pull/4428
+[#4437]: https://github.com/tokio-rs/tokio/pull/4437
+
+# 1.16.0 (January 27, 2022)
+
+Fixes a soundness bug in `io::Take` ([#4428]). The unsoundness is exposed when
+leaking memory in the given `AsyncRead` implementation and then overwriting the
+supplied buffer:
+
+```rust
+impl AsyncRead for Buggy {
+ fn poll_read(
+ self: Pin<&mut Self>,
+ cx: &mut Context<'_>,
+ buf: &mut ReadBuf<'_>
+ ) -> Poll<Result<()>> {
+ let new_buf = vec![0; 5].leak();
+ *buf = ReadBuf::new(new_buf);
+ buf.put_slice(b"hello");
+ Poll::Ready(Ok(()))
+ }
+}
+```
+
+Also, this release includes improvements to the multi-threaded scheduler that
+can increase throughput by up to 20% in some cases ([#4383]).
+
+### Fixed
+
+- io: **soundness** don't expose uninitialized memory when using `io::Take` in edge case ([#4428])
+- fs: ensure `File::write` results in a `write` syscall when the runtime shuts down ([#4316])
+- process: drop pipe after child exits in `wait_with_output` ([#4315])
+- rt: improve error message when spawning a thread fails ([#4398])
+- rt: reduce false-positive thread wakups in the multi-threaded scheduler ([#4383])
+- sync: don't inherit `Send` from `parking_lot::*Guard` ([#4359])
+
+### Added
+
+- net: `TcpSocket::linger()` and `set_linger()` ([#4324])
+- net: impl `UnwindSafe` for socket types ([#4384])
+- rt: impl `UnwindSafe` for `JoinHandle` ([#4418])
+- sync: `watch::Receiver::has_changed()` ([#4342])
+- sync: `oneshot::Receiver::blocking_recv()` ([#4334])
+- sync: `RwLock` blocking operations ([#4425])
+
+### Unstable
+
+The following changes only apply when building with `--cfg tokio_unstable`
+
+- rt: **breaking change** overhaul runtime metrics API ([#4373])
+
+[#4428]: https://github.com/tokio-rs/tokio/pull/4428
+[#4316]: https://github.com/tokio-rs/tokio/pull/4316
+[#4315]: https://github.com/tokio-rs/tokio/pull/4315
+[#4398]: https://github.com/tokio-rs/tokio/pull/4398
+[#4383]: https://github.com/tokio-rs/tokio/pull/4383
+[#4359]: https://github.com/tokio-rs/tokio/pull/4359
+[#4324]: https://github.com/tokio-rs/tokio/pull/4324
+[#4384]: https://github.com/tokio-rs/tokio/pull/4384
+[#4418]: https://github.com/tokio-rs/tokio/pull/4418
+[#4342]: https://github.com/tokio-rs/tokio/pull/4342
+[#4334]: https://github.com/tokio-rs/tokio/pull/4334
+[#4425]: https://github.com/tokio-rs/tokio/pull/4425
+[#4373]: https://github.com/tokio-rs/tokio/pull/4373
+
+# 1.15.0 (December 15, 2021)
+
+### Fixed
+
+- io: add cooperative yielding support to `io::empty()` ([#4300])
+- time: make timeout robust against budget-depleting tasks ([#4314])
+
+### Changed
+
+- update minimum supported Rust version to 1.46.
+
+### Added
+
+- time: add `Interval::reset()` ([#4248])
+- io: add explicit lifetimes to `AsyncFdReadyGuard` ([#4267])
+- process: add `Command::as_std()` ([#4295])
+
+### Added (unstable)
+
+- tracing: instrument `tokio::sync` types ([#4302])
+
+[#4302]: https://github.com/tokio-rs/tokio/pull/4302
+[#4300]: https://github.com/tokio-rs/tokio/pull/4300
+[#4295]: https://github.com/tokio-rs/tokio/pull/4295
+[#4267]: https://github.com/tokio-rs/tokio/pull/4267
+[#4248]: https://github.com/tokio-rs/tokio/pull/4248
+[#4314]: https://github.com/tokio-rs/tokio/pull/4314
+
+# 1.14.0 (November 15, 2021)
+
+### Fixed
+
+- macros: fix compiler errors when using `mut` patterns in `select!` ([#4211])
+- sync: fix a data race between `oneshot::Sender::send` and awaiting a
+ `oneshot::Receiver` when the oneshot has been closed ([#4226])
+- sync: make `AtomicWaker` panic safe ([#3689])
+- runtime: fix basic scheduler dropping tasks outside a runtime context
+ ([#4213])
+
+### Added
+
+- stats: add `RuntimeStats::busy_duration_total` ([#4179], [#4223])
+
+### Changed
+
+- io: updated `copy` buffer size to match `std::io::copy` ([#4209])
+
+### Documented
+
+- io: rename buffer to file in doc-test ([#4230])
+- sync: fix Notify example ([#4212])
+
+[#4211]: https://github.com/tokio-rs/tokio/pull/4211
+[#4226]: https://github.com/tokio-rs/tokio/pull/4226
+[#3689]: https://github.com/tokio-rs/tokio/pull/3689
+[#4213]: https://github.com/tokio-rs/tokio/pull/4213
+[#4179]: https://github.com/tokio-rs/tokio/pull/4179
+[#4223]: https://github.com/tokio-rs/tokio/pull/4223
+[#4209]: https://github.com/tokio-rs/tokio/pull/4209
+[#4230]: https://github.com/tokio-rs/tokio/pull/4230
+[#4212]: https://github.com/tokio-rs/tokio/pull/4212
+
+# 1.13.1 (November 15, 2021)
+
+### Fixed
+
+- sync: fix a data race between `oneshot::Sender::send` and awaiting a
+ `oneshot::Receiver` when the oneshot has been closed ([#4226])
+
+[#4226]: https://github.com/tokio-rs/tokio/pull/4226
+
+# 1.13.0 (October 29, 2021)
+
+### Fixed
+
+- sync: fix `Notify` to clone the waker before locking its waiter list ([#4129])
+- tokio: add riscv32 to non atomic64 architectures ([#4185])
+
+### Added
+
+- net: add `poll_{recv,send}_ready` methods to `udp` and `uds_datagram` ([#4131])
+- net: add `try_*`, `readable`, `writable`, `ready`, and `peer_addr` methods to split halves ([#4120])
+- sync: add `blocking_lock` to `Mutex` ([#4130])
+- sync: add `watch::Sender::send_replace` ([#3962], [#4195])
+- sync: expand `Debug` for `Mutex<T>` impl to unsized `T` ([#4134])
+- tracing: instrument time::Sleep ([#4072])
+- tracing: use structured location fields for spawned tasks ([#4128])
+
+### Changed
+
+- io: add assert in `copy_bidirectional` that `poll_write` is sensible ([#4125])
+- macros: use qualified syntax when polling in `select!` ([#4192])
+- runtime: handle `block_on` wakeups better ([#4157])
+- task: allocate callback on heap immediately in debug mode ([#4203])
+- tokio: assert platform-minimum requirements at build time ([#3797])
+
+### Documented
+
+- docs: conversion of doc comments to indicative mood ([#4174])
+- docs: add returning on the first error example for `try_join!` ([#4133])
+- docs: fixing broken links in `tokio/src/lib.rs` ([#4132])
+- signal: add example with background listener ([#4171])
+- sync: add more oneshot examples ([#4153])
+- time: document `Interval::tick` cancel safety ([#4152])
+
+[#3797]: https://github.com/tokio-rs/tokio/pull/3797
+[#3962]: https://github.com/tokio-rs/tokio/pull/3962
+[#4072]: https://github.com/tokio-rs/tokio/pull/4072
+[#4120]: https://github.com/tokio-rs/tokio/pull/4120
+[#4125]: https://github.com/tokio-rs/tokio/pull/4125
+[#4128]: https://github.com/tokio-rs/tokio/pull/4128
+[#4129]: https://github.com/tokio-rs/tokio/pull/4129
+[#4130]: https://github.com/tokio-rs/tokio/pull/4130
+[#4131]: https://github.com/tokio-rs/tokio/pull/4131
+[#4132]: https://github.com/tokio-rs/tokio/pull/4132
+[#4133]: https://github.com/tokio-rs/tokio/pull/4133
+[#4134]: https://github.com/tokio-rs/tokio/pull/4134
+[#4152]: https://github.com/tokio-rs/tokio/pull/4152
+[#4153]: https://github.com/tokio-rs/tokio/pull/4153
+[#4157]: https://github.com/tokio-rs/tokio/pull/4157
+[#4171]: https://github.com/tokio-rs/tokio/pull/4171
+[#4174]: https://github.com/tokio-rs/tokio/pull/4174
+[#4185]: https://github.com/tokio-rs/tokio/pull/4185
+[#4192]: https://github.com/tokio-rs/tokio/pull/4192
+[#4195]: https://github.com/tokio-rs/tokio/pull/4195
+[#4203]: https://github.com/tokio-rs/tokio/pull/4203
+
+# 1.12.0 (September 21, 2021)
+
+### Fixed
+
+- mpsc: ensure `try_reserve` error is consistent with `try_send` ([#4119])
+- mpsc: use `spin_loop_hint` instead of `yield_now` ([#4115])
+- sync: make `SendError` field public ([#4097])
+
+### Added
+
+- io: add POSIX AIO on FreeBSD ([#4054])
+- io: add convenience method `AsyncSeekExt::rewind` ([#4107])
+- runtime: add tracing span for `block_on` futures ([#4094])
+- runtime: callback when a worker parks and unparks ([#4070])
+- sync: implement `try_recv` for mpsc channels ([#4113])
+
+### Documented
+
+- docs: clarify CPU-bound tasks on Tokio ([#4105])
+- mpsc: document spurious failures on `poll_recv` ([#4117])
+- mpsc: document that `PollSender` impls `Sink` ([#4110])
+- task: document non-guarantees of `yield_now` ([#4091])
+- time: document paused time details better ([#4061], [#4103])
+
+[#4027]: https://github.com/tokio-rs/tokio/pull/4027
+[#4054]: https://github.com/tokio-rs/tokio/pull/4054
+[#4061]: https://github.com/tokio-rs/tokio/pull/4061
+[#4070]: https://github.com/tokio-rs/tokio/pull/4070
+[#4091]: https://github.com/tokio-rs/tokio/pull/4091
+[#4094]: https://github.com/tokio-rs/tokio/pull/4094
+[#4097]: https://github.com/tokio-rs/tokio/pull/4097
+[#4103]: https://github.com/tokio-rs/tokio/pull/4103
+[#4105]: https://github.com/tokio-rs/tokio/pull/4105
+[#4107]: https://github.com/tokio-rs/tokio/pull/4107
+[#4110]: https://github.com/tokio-rs/tokio/pull/4110
+[#4113]: https://github.com/tokio-rs/tokio/pull/4113
+[#4115]: https://github.com/tokio-rs/tokio/pull/4115
+[#4117]: https://github.com/tokio-rs/tokio/pull/4117
+[#4119]: https://github.com/tokio-rs/tokio/pull/4119
+
+# 1.11.0 (August 31, 2021)
+
+### Fixed
+
+ - time: don't panic when Instant is not monotonic ([#4044])
+ - io: fix panic in `fill_buf` by not calling `poll_fill_buf` twice ([#4084])
+
+### Added
+
+ - watch: add `watch::Sender::subscribe` ([#3800])
+ - process: add `from_std` to `ChildStd*` ([#4045])
+ - stats: initial work on runtime stats ([#4043])
+
+### Changed
+
+ - tracing: change span naming to new console convention ([#4042])
+ - io: speed-up waking by using uninitialized array ([#4055], [#4071], [#4075])
+
+### Documented
+
+ - time: make Sleep examples easier to find ([#4040])
+
+[#3800]: https://github.com/tokio-rs/tokio/pull/3800
+[#4040]: https://github.com/tokio-rs/tokio/pull/4040
+[#4042]: https://github.com/tokio-rs/tokio/pull/4042
+[#4043]: https://github.com/tokio-rs/tokio/pull/4043
+[#4044]: https://github.com/tokio-rs/tokio/pull/4044
+[#4045]: https://github.com/tokio-rs/tokio/pull/4045
+[#4055]: https://github.com/tokio-rs/tokio/pull/4055
+[#4071]: https://github.com/tokio-rs/tokio/pull/4071
+[#4075]: https://github.com/tokio-rs/tokio/pull/4075
+[#4084]: https://github.com/tokio-rs/tokio/pull/4084
+
+# 1.10.1 (August 24, 2021)
+
+### Fixed
+
+ - runtime: fix leak in UnownedTask ([#4063])
+
+[#4063]: https://github.com/tokio-rs/tokio/pull/4063
+
+# 1.10.0 (August 12, 2021)
+
+### Added
+
+ - io: add `(read|write)_f(32|64)[_le]` methods ([#4022])
+ - io: add `fill_buf` and `consume` to `AsyncBufReadExt` ([#3991])
+ - process: add `Child::raw_handle()` on windows ([#3998])
+
+### Fixed
+
+ - doc: fix non-doc builds with `--cfg docsrs` ([#4020])
+ - io: flush eagerly in `io::copy` ([#4001])
+ - runtime: a debug assert was sometimes triggered during shutdown ([#4005])
+ - sync: use `spin_loop_hint` instead of `yield_now` in mpsc ([#4037])
+ - tokio: the test-util feature depends on rt, sync, and time ([#4036])
+
+### Changes
+
+ - runtime: reorganize parts of the runtime ([#3979], [#4005])
+ - signal: make windows docs for signal module show up on unix builds ([#3770])
+ - task: quickly send task to heap on debug mode ([#4009])
+
+### Documented
+
+ - io: document cancellation safety of `AsyncBufReadExt` ([#3997])
+ - sync: document when `watch::send` fails ([#4021])
+
+[#3770]: https://github.com/tokio-rs/tokio/pull/3770
+[#3979]: https://github.com/tokio-rs/tokio/pull/3979
+[#3991]: https://github.com/tokio-rs/tokio/pull/3991
+[#3997]: https://github.com/tokio-rs/tokio/pull/3997
+[#3998]: https://github.com/tokio-rs/tokio/pull/3998
+[#4001]: https://github.com/tokio-rs/tokio/pull/4001
+[#4005]: https://github.com/tokio-rs/tokio/pull/4005
+[#4009]: https://github.com/tokio-rs/tokio/pull/4009
+[#4020]: https://github.com/tokio-rs/tokio/pull/4020
+[#4021]: https://github.com/tokio-rs/tokio/pull/4021
+[#4022]: https://github.com/tokio-rs/tokio/pull/4022
+[#4036]: https://github.com/tokio-rs/tokio/pull/4036
+[#4037]: https://github.com/tokio-rs/tokio/pull/4037
+
+# 1.9.0 (July 22, 2021)
+
+### Added
+
+ - net: allow customized I/O operations for `TcpStream` ([#3888])
+ - sync: add getter for the mutex from a guard ([#3928])
+ - task: expose nameable future for `TaskLocal::scope` ([#3273])
+
+### Fixed
+
+ - Fix leak if output of future panics on drop ([#3967])
+ - Fix leak in `LocalSet` ([#3978])
+
+### Changes
+
+ - runtime: reorganize parts of the runtime ([#3909], [#3939], [#3950], [#3955], [#3980])
+ - sync: clean up `OnceCell` ([#3945])
+ - task: remove mutex in `JoinError` ([#3959])
+
+[#3273]: https://github.com/tokio-rs/tokio/pull/3273
+[#3888]: https://github.com/tokio-rs/tokio/pull/3888
+[#3909]: https://github.com/tokio-rs/tokio/pull/3909
+[#3928]: https://github.com/tokio-rs/tokio/pull/3928
+[#3934]: https://github.com/tokio-rs/tokio/pull/3934
+[#3939]: https://github.com/tokio-rs/tokio/pull/3939
+[#3945]: https://github.com/tokio-rs/tokio/pull/3945
+[#3950]: https://github.com/tokio-rs/tokio/pull/3950
+[#3955]: https://github.com/tokio-rs/tokio/pull/3955
+[#3959]: https://github.com/tokio-rs/tokio/pull/3959
+[#3967]: https://github.com/tokio-rs/tokio/pull/3967
+[#3978]: https://github.com/tokio-rs/tokio/pull/3978
+[#3980]: https://github.com/tokio-rs/tokio/pull/3980
+
+# 1.8.3 (July 26, 2021)
+
+This release backports two fixes from 1.9.0
+
+### Fixed
+
+ - Fix leak if output of future panics on drop ([#3967])
+ - Fix leak in `LocalSet` ([#3978])
+
+[#3967]: https://github.com/tokio-rs/tokio/pull/3967
+[#3978]: https://github.com/tokio-rs/tokio/pull/3978
+
+# 1.8.2 (July 19, 2021)
+
+Fixes a missed edge case from 1.8.1.
+
+### Fixed
+
+- runtime: drop canceled future on next poll (#3965)
+
+# 1.8.1 (July 6, 2021)
+
+Forward ports 1.5.1 fixes.
+
+### Fixed
+
+- runtime: remotely abort tasks on `JoinHandle::abort` ([#3934])
+
+[#3934]: https://github.com/tokio-rs/tokio/pull/3934
+
+# 1.8.0 (July 2, 2021)
+
+### Added
+
+- io: add `get_{ref,mut}` methods to `AsyncFdReadyGuard` and `AsyncFdReadyMutGuard` ([#3807])
+- io: efficient implementation of vectored writes for `BufWriter` ([#3163])
+- net: add ready/try methods to `NamedPipe{Client,Server}` ([#3866], [#3899])
+- sync: add `watch::Receiver::borrow_and_update` ([#3813])
+- sync: implement `From<T>` for `OnceCell<T>` ([#3877])
+- time: allow users to specify Interval behaviour when delayed ([#3721])
+
+### Added (unstable)
+
+- rt: add `tokio::task::Builder` ([#3881])
+
+### Fixed
+
+- net: handle HUP event with `UnixStream` ([#3898])
+
+### Documented
+
+- doc: document cancellation safety ([#3900])
+- time: add wait alias to sleep ([#3897])
+- time: document auto-advancing behaviour of runtime ([#3763])
+
+[#3163]: https://github.com/tokio-rs/tokio/pull/3163
+[#3721]: https://github.com/tokio-rs/tokio/pull/3721
+[#3763]: https://github.com/tokio-rs/tokio/pull/3763
+[#3807]: https://github.com/tokio-rs/tokio/pull/3807
+[#3813]: https://github.com/tokio-rs/tokio/pull/3813
+[#3866]: https://github.com/tokio-rs/tokio/pull/3866
+[#3877]: https://github.com/tokio-rs/tokio/pull/3877
+[#3881]: https://github.com/tokio-rs/tokio/pull/3881
+[#3897]: https://github.com/tokio-rs/tokio/pull/3897
+[#3898]: https://github.com/tokio-rs/tokio/pull/3898
+[#3899]: https://github.com/tokio-rs/tokio/pull/3899
+[#3900]: https://github.com/tokio-rs/tokio/pull/3900
+
+# 1.7.2 (July 6, 2021)
+
+Forward ports 1.5.1 fixes.
+
+### Fixed
+
+- runtime: remotely abort tasks on `JoinHandle::abort` ([#3934])
+
+[#3934]: https://github.com/tokio-rs/tokio/pull/3934
+
+# 1.7.1 (June 18, 2021)
+
+### Fixed
+
+- runtime: fix early task shutdown during runtime shutdown ([#3870])
+
+[#3870]: https://github.com/tokio-rs/tokio/pull/3870
+
+# 1.7.0 (June 15, 2021)
+
+### Added
+
+- net: add named pipes on windows ([#3760])
+- net: add `TcpSocket` from `std::net::TcpStream` conversion ([#3838])
+- sync: add `receiver_count` to `watch::Sender` ([#3729])
+- sync: export `sync::notify::Notified` future publicly ([#3840])
+- tracing: instrument task wakers ([#3836])
+
+### Fixed
+
+- macros: suppress `clippy::default_numeric_fallback` lint in generated code ([#3831])
+- runtime: immediately drop new tasks when runtime is shut down ([#3752])
+- sync: deprecate unused `mpsc::RecvError` type ([#3833])
+
+### Documented
+
+- io: clarify EOF condition for `AsyncReadExt::read_buf` ([#3850])
+- io: clarify limits on return values of `AsyncWrite::poll_write` ([#3820])
+- sync: add examples to Semaphore ([#3808])
+
+[#3729]: https://github.com/tokio-rs/tokio/pull/3729
+[#3752]: https://github.com/tokio-rs/tokio/pull/3752
+[#3760]: https://github.com/tokio-rs/tokio/pull/3760
+[#3808]: https://github.com/tokio-rs/tokio/pull/3808
+[#3820]: https://github.com/tokio-rs/tokio/pull/3820
+[#3831]: https://github.com/tokio-rs/tokio/pull/3831
+[#3833]: https://github.com/tokio-rs/tokio/pull/3833
+[#3836]: https://github.com/tokio-rs/tokio/pull/3836
+[#3838]: https://github.com/tokio-rs/tokio/pull/3838
+[#3840]: https://github.com/tokio-rs/tokio/pull/3840
+[#3850]: https://github.com/tokio-rs/tokio/pull/3850
+
+# 1.6.3 (July 6, 2021)
+
+Forward ports 1.5.1 fixes.
+
+### Fixed
+
+- runtime: remotely abort tasks on `JoinHandle::abort` ([#3934])
+
+[#3934]: https://github.com/tokio-rs/tokio/pull/3934
+
+# 1.6.2 (June 14, 2021)
+
+### Fixes
+
+- test: sub-ms `time:advance` regression introduced in 1.6 ([#3852])
+
+[#3852]: https://github.com/tokio-rs/tokio/pull/3852
+
+# 1.6.1 (May 28, 2021)
+
+This release reverts [#3518] because it doesn't work on some kernels due to
+a kernel bug. ([#3803])
+
+[#3518]: https://github.com/tokio-rs/tokio/issues/3518
+[#3803]: https://github.com/tokio-rs/tokio/issues/3803
+
+# 1.6.0 (May 14, 2021)
+
+### Added
+
+- fs: try doing a non-blocking read before punting to the threadpool ([#3518])
+- io: add `write_all_buf` to `AsyncWriteExt` ([#3737])
+- io: implement `AsyncSeek` for `BufReader`, `BufWriter`, and `BufStream` ([#3491])
+- net: support non-blocking vectored I/O ([#3761])
+- sync: add `mpsc::Sender::{reserve_owned, try_reserve_owned}` ([#3704])
+- sync: add a `MutexGuard::map` method that returns a `MappedMutexGuard` ([#2472])
+- time: add getter for Interval's period ([#3705])
+
+### Fixed
+
+- io: wake pending writers on `DuplexStream` close ([#3756])
+- process: avoid redundant effort to reap orphan processes ([#3743])
+- signal: use `std::os::raw::c_int` instead of `libc::c_int` on public API ([#3774])
+- sync: preserve permit state in `notify_waiters` ([#3660])
+- task: update `JoinHandle` panic message ([#3727])
+- time: prevent `time::advance` from going too far ([#3712])
+
+### Documented
+
+- net: hide `net::unix::datagram` module from docs ([#3775])
+- process: updated example ([#3748])
+- sync: `Barrier` doc should use task, not thread ([#3780])
+- task: update documentation on `block_in_place` ([#3753])
+
+[#2472]: https://github.com/tokio-rs/tokio/pull/2472
+[#3491]: https://github.com/tokio-rs/tokio/pull/3491
+[#3518]: https://github.com/tokio-rs/tokio/pull/3518
+[#3660]: https://github.com/tokio-rs/tokio/pull/3660
+[#3704]: https://github.com/tokio-rs/tokio/pull/3704
+[#3705]: https://github.com/tokio-rs/tokio/pull/3705
+[#3712]: https://github.com/tokio-rs/tokio/pull/3712
+[#3727]: https://github.com/tokio-rs/tokio/pull/3727
+[#3737]: https://github.com/tokio-rs/tokio/pull/3737
+[#3743]: https://github.com/tokio-rs/tokio/pull/3743
+[#3748]: https://github.com/tokio-rs/tokio/pull/3748
+[#3753]: https://github.com/tokio-rs/tokio/pull/3753
+[#3756]: https://github.com/tokio-rs/tokio/pull/3756
+[#3761]: https://github.com/tokio-rs/tokio/pull/3761
+[#3774]: https://github.com/tokio-rs/tokio/pull/3774
+[#3775]: https://github.com/tokio-rs/tokio/pull/3775
+[#3780]: https://github.com/tokio-rs/tokio/pull/3780
+
+# 1.5.1 (July 6, 2021)
+
+### Fixed
+
+- runtime: remotely abort tasks on `JoinHandle::abort` ([#3934])
+
+[#3934]: https://github.com/tokio-rs/tokio/pull/3934
+
+# 1.5.0 (April 12, 2021)
+
+### Added
+
+- io: add `AsyncSeekExt::stream_position` ([#3650])
+- io: add `AsyncWriteExt::write_vectored` ([#3678])
+- io: add a `copy_bidirectional` utility ([#3572])
+- net: implement `IntoRawFd` for `TcpSocket` ([#3684])
+- sync: add `OnceCell` ([#3591])
+- sync: add `OwnedRwLockReadGuard` and `OwnedRwLockWriteGuard` ([#3340])
+- sync: add `Semaphore::is_closed` ([#3673])
+- sync: add `mpsc::Sender::capacity` ([#3690])
+- sync: allow configuring `RwLock` max reads ([#3644])
+- task: add `sync_scope` for `LocalKey` ([#3612])
+
+### Fixed
+
+- chore: try to avoid `noalias` attributes on intrusive linked list ([#3654])
+- rt: fix panic in `JoinHandle::abort()` when called from other threads ([#3672])
+- sync: don't panic in `oneshot::try_recv` ([#3674])
+- sync: fix notifications getting dropped on receiver drop ([#3652])
+- sync: fix `Semaphore` permit overflow calculation ([#3644])
+
+### Documented
+
+- io: clarify requirements of `AsyncFd` ([#3635])
+- runtime: fix unclear docs for `{Handle,Runtime}::block_on` ([#3628])
+- sync: document that `Semaphore` is fair ([#3693])
+- sync: improve doc on blocking mutex ([#3645])
+
+[#3340]: https://github.com/tokio-rs/tokio/pull/3340
+[#3572]: https://github.com/tokio-rs/tokio/pull/3572
+[#3591]: https://github.com/tokio-rs/tokio/pull/3591
+[#3612]: https://github.com/tokio-rs/tokio/pull/3612
+[#3628]: https://github.com/tokio-rs/tokio/pull/3628
+[#3635]: https://github.com/tokio-rs/tokio/pull/3635
+[#3644]: https://github.com/tokio-rs/tokio/pull/3644
+[#3645]: https://github.com/tokio-rs/tokio/pull/3645
+[#3650]: https://github.com/tokio-rs/tokio/pull/3650
+[#3652]: https://github.com/tokio-rs/tokio/pull/3652
+[#3654]: https://github.com/tokio-rs/tokio/pull/3654
+[#3672]: https://github.com/tokio-rs/tokio/pull/3672
+[#3673]: https://github.com/tokio-rs/tokio/pull/3673
+[#3674]: https://github.com/tokio-rs/tokio/pull/3674
+[#3678]: https://github.com/tokio-rs/tokio/pull/3678
+[#3684]: https://github.com/tokio-rs/tokio/pull/3684
+[#3690]: https://github.com/tokio-rs/tokio/pull/3690
+[#3693]: https://github.com/tokio-rs/tokio/pull/3693
+
+# 1.4.0 (March 20, 2021)
+
+### Added
+
+- macros: introduce biased argument for `select!` ([#3603])
+- runtime: add `Handle::block_on` ([#3569])
+
+### Fixed
+
+- runtime: avoid unnecessary polling of `block_on` future ([#3582])
+- runtime: fix memory leak/growth when creating many runtimes ([#3564])
+- runtime: mark `EnterGuard` with `must_use` ([#3609])
+
+### Documented
+
+- chore: mention fix for building docs in contributing guide ([#3618])
+- doc: add link to `PollSender` ([#3613])
+- doc: alias sleep to delay ([#3604])
+- sync: improve `Mutex` FIFO explanation ([#3615])
+- timer: fix double newline in module docs ([#3617])
+
+[#3564]: https://github.com/tokio-rs/tokio/pull/3564
+[#3613]: https://github.com/tokio-rs/tokio/pull/3613
+[#3618]: https://github.com/tokio-rs/tokio/pull/3618
+[#3617]: https://github.com/tokio-rs/tokio/pull/3617
+[#3582]: https://github.com/tokio-rs/tokio/pull/3582
+[#3615]: https://github.com/tokio-rs/tokio/pull/3615
+[#3603]: https://github.com/tokio-rs/tokio/pull/3603
+[#3609]: https://github.com/tokio-rs/tokio/pull/3609
+[#3604]: https://github.com/tokio-rs/tokio/pull/3604
+[#3569]: https://github.com/tokio-rs/tokio/pull/3569
+
+# 1.3.0 (March 9, 2021)
+
+### Added
+
+- coop: expose an `unconstrained()` opt-out ([#3547])
+- net: add `into_std` for net types without it ([#3509])
+- sync: add `same_channel` method to `mpsc::Sender` ([#3532])
+- sync: add `{try_,}acquire_many_owned` to `Semaphore` ([#3535])
+- sync: add back `RwLockWriteGuard::map` and `RwLockWriteGuard::try_map` ([#3348])
+
+### Fixed
+
+- sync: allow `oneshot::Receiver::close` after successful `try_recv` ([#3552])
+- time: do not panic on `timeout(Duration::MAX)` ([#3551])
+
+### Documented
+
+- doc: doc aliases for pre-1.0 function names ([#3523])
+- io: fix typos ([#3541])
+- io: note the EOF behaviour of `read_until` ([#3536])
+- io: update `AsyncRead::poll_read` doc ([#3557])
+- net: update `UdpSocket` splitting doc ([#3517])
+- runtime: add link to `LocalSet` on `new_current_thread` ([#3508])
+- runtime: update documentation of thread limits ([#3527])
+- sync: do not recommend `join_all` for `Barrier` ([#3514])
+- sync: documentation for `oneshot` ([#3592])
+- sync: rename `notify` to `notify_one` ([#3526])
+- time: fix typo in `Sleep` doc ([#3515])
+- time: sync `interval.rs` and `time/mod.rs` docs ([#3533])
+
+[#3348]: https://github.com/tokio-rs/tokio/pull/3348
+[#3508]: https://github.com/tokio-rs/tokio/pull/3508
+[#3509]: https://github.com/tokio-rs/tokio/pull/3509
+[#3514]: https://github.com/tokio-rs/tokio/pull/3514
+[#3515]: https://github.com/tokio-rs/tokio/pull/3515
+[#3517]: https://github.com/tokio-rs/tokio/pull/3517
+[#3523]: https://github.com/tokio-rs/tokio/pull/3523
+[#3526]: https://github.com/tokio-rs/tokio/pull/3526
+[#3527]: https://github.com/tokio-rs/tokio/pull/3527
+[#3532]: https://github.com/tokio-rs/tokio/pull/3532
+[#3533]: https://github.com/tokio-rs/tokio/pull/3533
+[#3535]: https://github.com/tokio-rs/tokio/pull/3535
+[#3536]: https://github.com/tokio-rs/tokio/pull/3536
+[#3541]: https://github.com/tokio-rs/tokio/pull/3541
+[#3547]: https://github.com/tokio-rs/tokio/pull/3547
+[#3551]: https://github.com/tokio-rs/tokio/pull/3551
+[#3552]: https://github.com/tokio-rs/tokio/pull/3552
+[#3557]: https://github.com/tokio-rs/tokio/pull/3557
+[#3592]: https://github.com/tokio-rs/tokio/pull/3592
+
+# 1.2.0 (February 5, 2021)
+
+### Added
+
+- signal: make `Signal::poll_recv` method public ([#3383])
+
+### Fixed
+
+- time: make `test-util` paused time fully deterministic ([#3492])
+
+### Documented
+
+- sync: link to new broadcast and watch wrappers ([#3504])
+
+[#3383]: https://github.com/tokio-rs/tokio/pull/3383
+[#3492]: https://github.com/tokio-rs/tokio/pull/3492
+[#3504]: https://github.com/tokio-rs/tokio/pull/3504
+
+# 1.1.1 (January 29, 2021)
+
+Forward ports 1.0.3 fix.
+
+### Fixed
+- io: memory leak during shutdown ([#3477]).
+
+# 1.1.0 (January 22, 2021)
+
+### Added
+
+- net: add `try_read_buf` and `try_recv_buf` ([#3351])
+- mpsc: Add `Sender::try_reserve` function ([#3418])
+- sync: add `RwLock` `try_read` and `try_write` methods ([#3400])
+- io: add `ReadBuf::inner_mut` ([#3443])
+
+### Changed
+
+- macros: improve `select!` error message ([#3352])
+- io: keep track of initialized bytes in `read_to_end` ([#3426])
+- runtime: consolidate errors for context missing ([#3441])
+
+### Fixed
+
+- task: wake `LocalSet` on `spawn_local` ([#3369])
+- sync: fix panic in broadcast::Receiver drop ([#3434])
+
+### Documented
+- stream: link to new `Stream` wrappers in `tokio-stream` ([#3343])
+- docs: mention that `test-util` feature is not enabled with full ([#3397])
+- process: add documentation to process::Child fields ([#3437])
+- io: clarify `AsyncFd` docs about changes of the inner fd ([#3430])
+- net: update datagram docs on splitting ([#3448])
+- time: document that `Sleep` is not `Unpin` ([#3457])
+- sync: add link to `PollSemaphore` ([#3456])
+- task: add `LocalSet` example ([#3438])
+- sync: improve bounded `mpsc` documentation ([#3458])
+
+[#3343]: https://github.com/tokio-rs/tokio/pull/3343
+[#3351]: https://github.com/tokio-rs/tokio/pull/3351
+[#3352]: https://github.com/tokio-rs/tokio/pull/3352
+[#3369]: https://github.com/tokio-rs/tokio/pull/3369
+[#3397]: https://github.com/tokio-rs/tokio/pull/3397
+[#3400]: https://github.com/tokio-rs/tokio/pull/3400
+[#3418]: https://github.com/tokio-rs/tokio/pull/3418
+[#3426]: https://github.com/tokio-rs/tokio/pull/3426
+[#3430]: https://github.com/tokio-rs/tokio/pull/3430
+[#3434]: https://github.com/tokio-rs/tokio/pull/3434
+[#3437]: https://github.com/tokio-rs/tokio/pull/3437
+[#3438]: https://github.com/tokio-rs/tokio/pull/3438
+[#3441]: https://github.com/tokio-rs/tokio/pull/3441
+[#3443]: https://github.com/tokio-rs/tokio/pull/3443
+[#3448]: https://github.com/tokio-rs/tokio/pull/3448
+[#3456]: https://github.com/tokio-rs/tokio/pull/3456
+[#3457]: https://github.com/tokio-rs/tokio/pull/3457
+[#3458]: https://github.com/tokio-rs/tokio/pull/3458
+
+# 1.0.3 (January 28, 2021)
+
+### Fixed
+- io: memory leak during shutdown ([#3477]).
+
+[#3477]: https://github.com/tokio-rs/tokio/pull/3477
+
+# 1.0.2 (January 14, 2021)
+
+### Fixed
+- io: soundness in `read_to_end` ([#3428]).
+
+[#3428]: https://github.com/tokio-rs/tokio/pull/3428
+
+# 1.0.1 (December 25, 2020)
+
+This release fixes a soundness hole caused by the combination of `RwLockWriteGuard::map`
+and `RwLockWriteGuard::downgrade` by removing the `map` function. This is a breaking
+change, but breaking changes are allowed under our semver policy when they are required
+to fix a soundness hole. (See [this RFC][semver] for more.)
+
+Note that we have chosen not to do a deprecation cycle or similar because Tokio 1.0.0 was
+released two days ago, and therefore the impact should be minimal.
+
+Due to the soundness hole, we have also yanked Tokio version 1.0.0.
+
+### Removed
+
+- sync: remove `RwLockWriteGuard::map` and `RwLockWriteGuard::try_map` ([#3345])
+
+### Fixed
+
+- docs: remove stream feature from docs ([#3335])
+
+[semver]: https://github.com/rust-lang/rfcs/blob/master/text/1122-language-semver.md#soundness-changes
+[#3335]: https://github.com/tokio-rs/tokio/pull/3335
+[#3345]: https://github.com/tokio-rs/tokio/pull/3345
+
+# 1.0.0 (December 23, 2020)
+
+Commit to the API and long-term support.
+
+### Fixed
+
+- sync: spurious wakeup in `watch` ([#3234]).
+
+### Changed
+
+- io: rename `AsyncFd::with_io()` to `try_io()` ([#3306])
+- fs: avoid OS specific `*Ext` traits in favor of conditionally defining the fn ([#3264]).
+- fs: `Sleep` is `!Unpin` ([#3278]).
+- net: pass `SocketAddr` by value ([#3125]).
+- net: `TcpStream::poll_peek` takes `ReadBuf` ([#3259]).
+- rt: rename `runtime::Builder::max_threads()` to `max_blocking_threads()` ([#3287]).
+- time: require `current_thread` runtime when calling `time::pause()` ([#3289]).
+
+### Removed
+
+- remove `tokio::prelude` ([#3299]).
+- io: remove `AsyncFd::with_poll()` ([#3306]).
+- net: remove `{Tcp,Unix}Stream::shutdown()` in favor of `AsyncWrite::shutdown()` ([#3298]).
+- stream: move all stream utilities to `tokio-stream` until `Stream` is added to
+ `std` ([#3277]).
+- sync: mpsc `try_recv()` due to unexpected behavior ([#3263]).
+- tracing: make unstable as `tracing-core` is not 1.0 yet ([#3266]).
+
+### Added
+
+- fs: `poll_*` fns to `DirEntry` ([#3308]).
+- io: `poll_*` fns to `io::Lines`, `io::Split` ([#3308]).
+- io: `_mut` method variants to `AsyncFd` ([#3304]).
+- net: `poll_*` fns to `UnixDatagram` ([#3223]).
+- net: `UnixStream` readiness and non-blocking ops ([#3246]).
+- sync: `UnboundedReceiver::blocking_recv()` ([#3262]).
+- sync: `watch::Sender::borrow()` ([#3269]).
+- sync: `Semaphore::close()` ([#3065]).
+- sync: `poll_recv` fns to `mpsc::Receiver`, `mpsc::UnboundedReceiver` ([#3308]).
+- time: `poll_tick` fn to `time::Interval` ([#3316]).
+
+[#3065]: https://github.com/tokio-rs/tokio/pull/3065
+[#3125]: https://github.com/tokio-rs/tokio/pull/3125
+[#3223]: https://github.com/tokio-rs/tokio/pull/3223
+[#3234]: https://github.com/tokio-rs/tokio/pull/3234
+[#3246]: https://github.com/tokio-rs/tokio/pull/3246
+[#3259]: https://github.com/tokio-rs/tokio/pull/3259
+[#3262]: https://github.com/tokio-rs/tokio/pull/3262
+[#3263]: https://github.com/tokio-rs/tokio/pull/3263
+[#3264]: https://github.com/tokio-rs/tokio/pull/3264
+[#3266]: https://github.com/tokio-rs/tokio/pull/3266
+[#3269]: https://github.com/tokio-rs/tokio/pull/3269
+[#3277]: https://github.com/tokio-rs/tokio/pull/3277
+[#3278]: https://github.com/tokio-rs/tokio/pull/3278
+[#3287]: https://github.com/tokio-rs/tokio/pull/3287
+[#3289]: https://github.com/tokio-rs/tokio/pull/3289
+[#3298]: https://github.com/tokio-rs/tokio/pull/3298
+[#3299]: https://github.com/tokio-rs/tokio/pull/3299
+[#3304]: https://github.com/tokio-rs/tokio/pull/3304
+[#3306]: https://github.com/tokio-rs/tokio/pull/3306
+[#3308]: https://github.com/tokio-rs/tokio/pull/3308
+[#3316]: https://github.com/tokio-rs/tokio/pull/3316
+
+# 0.3.6 (December 14, 2020)
+
+### Fixed
+
+- rt: fix deadlock in shutdown ([#3228])
+- rt: fix panic in task abort when off rt ([#3159])
+- sync: make `add_permits` panic with usize::MAX >> 3 permits ([#3188])
+- time: Fix race condition in timer drop ([#3229])
+- watch: fix spurious wakeup ([#3244])
+
+### Added
+
+- example: add back udp-codec example ([#3205])
+- net: add `TcpStream::into_std` ([#3189])
+
+[#3159]: https://github.com/tokio-rs/tokio/pull/3159
+[#3188]: https://github.com/tokio-rs/tokio/pull/3188
+[#3189]: https://github.com/tokio-rs/tokio/pull/3189
+[#3205]: https://github.com/tokio-rs/tokio/pull/3205
+[#3228]: https://github.com/tokio-rs/tokio/pull/3228
+[#3229]: https://github.com/tokio-rs/tokio/pull/3229
+[#3244]: https://github.com/tokio-rs/tokio/pull/3244
+
+# 0.3.5 (November 30, 2020)
+
+### Fixed
+
+- rt: fix `shutdown_timeout(0)` ([#3196]).
+- time: fixed race condition with small sleeps ([#3069]).
+
+### Added
+
+- io: `AsyncFd::with_interest()` ([#3167]).
+- signal: `CtrlC` stream on windows ([#3186]).
+
+[#3069]: https://github.com/tokio-rs/tokio/pull/3069
+[#3167]: https://github.com/tokio-rs/tokio/pull/3167
+[#3186]: https://github.com/tokio-rs/tokio/pull/3186
+[#3196]: https://github.com/tokio-rs/tokio/pull/3196
+
+# 0.3.4 (November 18, 2020)
+
+### Fixed
+
+- stream: `StreamMap` `Default` impl bound ([#3093]).
+- io: `AsyncFd::into_inner()` should deregister the FD ([#3104]).
+
+### Changed
+
+- meta: `parking_lot` feature enabled with `full` ([#3119]).
+
+### Added
+
+- io: `AsyncWrite` vectored writes ([#3149]).
+- net: TCP/UDP readiness and non-blocking ops ([#3130], [#2743], [#3138]).
+- net: TCP socket option (linger, send/recv buf size) ([#3145], [#3143]).
+- net: PID field in `UCred` with solaris/illumos ([#3085]).
+- rt: `runtime::Handle` allows spawning onto a runtime ([#3079]).
+- sync: `Notify::notify_waiters()` ([#3098]).
+- sync: `acquire_many()`, `try_acquire_many()` to `Semaphore` ([#3067]).
+
+[#2743]: https://github.com/tokio-rs/tokio/pull/2743
+[#3067]: https://github.com/tokio-rs/tokio/pull/3067
+[#3079]: https://github.com/tokio-rs/tokio/pull/3079
+[#3085]: https://github.com/tokio-rs/tokio/pull/3085
+[#3093]: https://github.com/tokio-rs/tokio/pull/3093
+[#3098]: https://github.com/tokio-rs/tokio/pull/3098
+[#3104]: https://github.com/tokio-rs/tokio/pull/3104
+[#3119]: https://github.com/tokio-rs/tokio/pull/3119
+[#3130]: https://github.com/tokio-rs/tokio/pull/3130
+[#3138]: https://github.com/tokio-rs/tokio/pull/3138
+[#3143]: https://github.com/tokio-rs/tokio/pull/3143
+[#3145]: https://github.com/tokio-rs/tokio/pull/3145
+[#3149]: https://github.com/tokio-rs/tokio/pull/3149
+
+# 0.3.3 (November 2, 2020)
+
+Fixes a soundness hole by adding a missing `Send` bound to
+`Runtime::spawn_blocking()`.
+
+### Fixed
+
+- rt: include missing `Send`, fixing soundness hole ([#3089]).
+- tracing: avoid huge trace span names ([#3074]).
+
+### Added
+
+- net: `TcpSocket::reuseport()`, `TcpSocket::set_reuseport()` ([#3083]).
+- net: `TcpSocket::reuseaddr()` ([#3093]).
+- net: `TcpSocket::local_addr()` ([#3093]).
+- net: add pid to `UCred` ([#2633]).
+
+[#2633]: https://github.com/tokio-rs/tokio/pull/2633
+[#3074]: https://github.com/tokio-rs/tokio/pull/3074
+[#3083]: https://github.com/tokio-rs/tokio/pull/3083
+[#3089]: https://github.com/tokio-rs/tokio/pull/3089
+[#3093]: https://github.com/tokio-rs/tokio/pull/3093
+
+# 0.3.2 (October 27, 2020)
+
+Adds `AsyncFd` as a replacement for v0.2's `PollEvented`.
+
+### Fixed
+
+- io: fix a potential deadlock when shutting down the I/O driver ([#2903]).
+- sync: `RwLockWriteGuard::downgrade()` bug ([#2957]).
+
+### Added
+
+- io: `AsyncFd` for receiving readiness events on raw FDs ([#2903]).
+- net: `poll_*` function on `UdpSocket` ([#2981]).
+- net: `UdpSocket::take_error()` ([#3051]).
+- sync: `oneshot::Sender::poll_closed()` ([#3032]).
+
+[#2903]: https://github.com/tokio-rs/tokio/pull/2903
+[#2957]: https://github.com/tokio-rs/tokio/pull/2957
+[#2981]: https://github.com/tokio-rs/tokio/pull/2981
+[#3032]: https://github.com/tokio-rs/tokio/pull/3032
+[#3051]: https://github.com/tokio-rs/tokio/pull/3051
+
+# 0.3.1 (October 21, 2020)
+
+This release fixes an use-after-free in the IO driver. Additionally, the `read_buf`
+and `write_buf` methods have been added back to the IO traits, as the bytes crate
+is now on track to reach version 1.0 together with Tokio.
+
+### Fixed
+
+- net: fix use-after-free ([#3019]).
+- fs: ensure buffered data is written on shutdown ([#3009]).
+
+### Added
+
+- io: `copy_buf()` ([#2884]).
+- io: `AsyncReadExt::read_buf()`, `AsyncReadExt::write_buf()` for working with
+ `Buf`/`BufMut` ([#3003]).
+- rt: `Runtime::spawn_blocking()` ([#2980]).
+- sync: `watch::Sender::is_closed()` ([#2991]).
+
+[#2884]: https://github.com/tokio-rs/tokio/pull/2884
+[#2980]: https://github.com/tokio-rs/tokio/pull/2980
+[#2991]: https://github.com/tokio-rs/tokio/pull/2991
+[#3003]: https://github.com/tokio-rs/tokio/pull/3003
+[#3009]: https://github.com/tokio-rs/tokio/pull/3009
+[#3019]: https://github.com/tokio-rs/tokio/pull/3019
+
+# 0.3.0 (October 15, 2020)
+
+This represents a 1.0 beta release. APIs are polished and future-proofed. APIs
+not included for 1.0 stabilization have been removed.
+
+Biggest changes are:
+
+- I/O driver internal rewrite. The windows implementation includes significant
+ changes.
+- Runtime API is polished, especially with how it interacts with feature flag
+ combinations.
+- Feature flags are simplified
+ - `rt-core` and `rt-util` are combined to `rt`
+ - `rt-threaded` is renamed to `rt-multi-thread` to match builder API
+ - `tcp`, `udp`, `uds`, `dns` are combined to `net`.
+ - `parking_lot` is included with `full`
+
+### Changes
+
+- meta: Minimum supported Rust version is now 1.45.
+- io: `AsyncRead` trait now takes `ReadBuf` in order to safely handle reading
+ into uninitialized memory ([#2758]).
+- io: Internal I/O driver storage is now able to compact ([#2757]).
+- rt: `Runtime::block_on` now takes `&self` ([#2782]).
+- sync: `watch` reworked to decouple receiving a change notification from
+ receiving the value ([#2814], [#2806]).
+- sync: `Notify::notify` is renamed to `notify_one` ([#2822]).
+- process: `Child::kill` is now an `async fn` that cleans zombies ([#2823]).
+- sync: use `const fn` constructors as possible ([#2833], [#2790])
+- signal: reduce cross-thread notification ([#2835]).
+- net: tcp,udp,uds types support operations with `&self` ([#2828], [#2919], [#2934]).
+- sync: blocking `mpsc` channel supports `send` with `&self` ([#2861]).
+- time: rename `delay_for` and `delay_until` to `sleep` and `sleep_until` ([#2826]).
+- io: upgrade to `mio` 0.7 ([#2893]).
+- io: `AsyncSeek` trait is tweaked ([#2885]).
+- fs: `File` operations take `&self` ([#2930]).
+- rt: runtime API, and `#[tokio::main]` macro polish ([#2876])
+- rt: `Runtime::enter` uses an RAII guard instead of a closure ([#2954]).
+- net: the `from_std` function on all sockets no longer sets socket into non-blocking mode ([#2893])
+
+### Added
+
+- sync: `map` function to lock guards ([#2445]).
+- sync: `blocking_recv` and `blocking_send` fns to `mpsc` for use outside of Tokio ([#2685]).
+- rt: `Builder::thread_name_fn` for configuring thread names ([#1921]).
+- fs: impl `FromRawFd` and `FromRawHandle` for `File` ([#2792]).
+- process: `Child::wait` and `Child::try_wait` ([#2796]).
+- rt: support configuring thread keep-alive duration ([#2809]).
+- rt: `task::JoinHandle::abort` forcibly cancels a spawned task ([#2474]).
+- sync: `RwLock` write guard to read guard downgrading ([#2733]).
+- net: add `poll_*` functions that take `&self` to all net types ([#2845])
+- sync: `get_mut()` for `Mutex`, `RwLock` ([#2856]).
+- sync: `mpsc::Sender::closed()` waits for `Receiver` half to close ([#2840]).
+- sync: `mpsc::Sender::is_closed()` returns true if `Receiver` half is closed ([#2726]).
+- stream: `iter` and `iter_mut` to `StreamMap` ([#2890]).
+- net: implement `AsRawSocket` on windows ([#2911]).
+- net: `TcpSocket` creates a socket without binding or listening ([#2920]).
+
+### Removed
+
+- io: vectored ops are removed from `AsyncRead`, `AsyncWrite` traits ([#2882]).
+- io: `mio` is removed from the public API. `PollEvented` and` Registration` are
+ removed ([#2893]).
+- io: remove `bytes` from public API. `Buf` and `BufMut` implementation are
+ removed ([#2908]).
+- time: `DelayQueue` is moved to `tokio-util` ([#2897]).
+
+### Fixed
+
+- io: `stdout` and `stderr` buffering on windows ([#2734]).
+
+[#1921]: https://github.com/tokio-rs/tokio/pull/1921
+[#2445]: https://github.com/tokio-rs/tokio/pull/2445
+[#2474]: https://github.com/tokio-rs/tokio/pull/2474
+[#2685]: https://github.com/tokio-rs/tokio/pull/2685
+[#2726]: https://github.com/tokio-rs/tokio/pull/2726
+[#2733]: https://github.com/tokio-rs/tokio/pull/2733
+[#2734]: https://github.com/tokio-rs/tokio/pull/2734
+[#2757]: https://github.com/tokio-rs/tokio/pull/2757
+[#2758]: https://github.com/tokio-rs/tokio/pull/2758
+[#2782]: https://github.com/tokio-rs/tokio/pull/2782
+[#2790]: https://github.com/tokio-rs/tokio/pull/2790
+[#2792]: https://github.com/tokio-rs/tokio/pull/2792
+[#2796]: https://github.com/tokio-rs/tokio/pull/2796
+[#2806]: https://github.com/tokio-rs/tokio/pull/2806
+[#2809]: https://github.com/tokio-rs/tokio/pull/2809
+[#2814]: https://github.com/tokio-rs/tokio/pull/2814
+[#2822]: https://github.com/tokio-rs/tokio/pull/2822
+[#2823]: https://github.com/tokio-rs/tokio/pull/2823
+[#2826]: https://github.com/tokio-rs/tokio/pull/2826
+[#2828]: https://github.com/tokio-rs/tokio/pull/2828
+[#2833]: https://github.com/tokio-rs/tokio/pull/2833
+[#2835]: https://github.com/tokio-rs/tokio/pull/2835
+[#2840]: https://github.com/tokio-rs/tokio/pull/2840
+[#2845]: https://github.com/tokio-rs/tokio/pull/2845
+[#2856]: https://github.com/tokio-rs/tokio/pull/2856
+[#2861]: https://github.com/tokio-rs/tokio/pull/2861
+[#2876]: https://github.com/tokio-rs/tokio/pull/2876
+[#2882]: https://github.com/tokio-rs/tokio/pull/2882
+[#2885]: https://github.com/tokio-rs/tokio/pull/2885
+[#2890]: https://github.com/tokio-rs/tokio/pull/2890
+[#2893]: https://github.com/tokio-rs/tokio/pull/2893
+[#2897]: https://github.com/tokio-rs/tokio/pull/2897
+[#2908]: https://github.com/tokio-rs/tokio/pull/2908
+[#2911]: https://github.com/tokio-rs/tokio/pull/2911
+[#2919]: https://github.com/tokio-rs/tokio/pull/2919
+[#2920]: https://github.com/tokio-rs/tokio/pull/2920
+[#2930]: https://github.com/tokio-rs/tokio/pull/2930
+[#2934]: https://github.com/tokio-rs/tokio/pull/2934
+[#2954]: https://github.com/tokio-rs/tokio/pull/2954
+
+# 0.2.22 (July 21, 2020)
+
+### Fixes
+
+- docs: misc improvements ([#2572], [#2658], [#2663], [#2656], [#2647], [#2630], [#2487], [#2621],
+ [#2624], [#2600], [#2623], [#2622], [#2577], [#2569], [#2589], [#2575], [#2540], [#2564], [#2567],
+ [#2520], [#2521], [#2493])
+- rt: allow calls to `block_on` inside calls to `block_in_place` that are
+ themselves inside `block_on` ([#2645])
+- net: fix non-portable behavior when dropping `TcpStream` `OwnedWriteHalf` ([#2597])
+- io: improve stack usage by allocating large buffers on directly on the heap
+ ([#2634])
+- io: fix unsound pin projection in `AsyncReadExt::read_buf` and
+ `AsyncWriteExt::write_buf` ([#2612])
+- io: fix unnecessary zeroing for `AsyncRead` implementors ([#2525])
+- io: Fix `BufReader` not correctly forwarding `poll_write_buf` ([#2654])
+- io: fix panic in `AsyncReadExt::read_line` ([#2541])
+
+### Changes
+
+- coop: returning `Poll::Pending` no longer decrements the task budget ([#2549])
+
+### Added
+
+- io: little-endian variants of `AsyncReadExt` and `AsyncWriteExt` methods
+ ([#1915])
+- task: add [`tracing`] instrumentation to spawned tasks ([#2655])
+- sync: allow unsized types in `Mutex` and `RwLock` (via `default` constructors)
+ ([#2615])
+- net: add `ToSocketAddrs` implementation for `&[SocketAddr]` ([#2604])
+- fs: add `OpenOptionsExt` for `OpenOptions` ([#2515])
+- fs: add `DirBuilder` ([#2524])
+
+[`tracing`]: https://crates.io/crates/tracing
+[#1915]: https://github.com/tokio-rs/tokio/pull/1915
+[#2487]: https://github.com/tokio-rs/tokio/pull/2487
+[#2493]: https://github.com/tokio-rs/tokio/pull/2493
+[#2515]: https://github.com/tokio-rs/tokio/pull/2515
+[#2520]: https://github.com/tokio-rs/tokio/pull/2520
+[#2521]: https://github.com/tokio-rs/tokio/pull/2521
+[#2524]: https://github.com/tokio-rs/tokio/pull/2524
+[#2525]: https://github.com/tokio-rs/tokio/pull/2525
+[#2540]: https://github.com/tokio-rs/tokio/pull/2540
+[#2541]: https://github.com/tokio-rs/tokio/pull/2541
+[#2549]: https://github.com/tokio-rs/tokio/pull/2549
+[#2564]: https://github.com/tokio-rs/tokio/pull/2564
+[#2567]: https://github.com/tokio-rs/tokio/pull/2567
+[#2569]: https://github.com/tokio-rs/tokio/pull/2569
+[#2572]: https://github.com/tokio-rs/tokio/pull/2572
+[#2575]: https://github.com/tokio-rs/tokio/pull/2575
+[#2577]: https://github.com/tokio-rs/tokio/pull/2577
+[#2589]: https://github.com/tokio-rs/tokio/pull/2589
+[#2597]: https://github.com/tokio-rs/tokio/pull/2597
+[#2600]: https://github.com/tokio-rs/tokio/pull/2600
+[#2604]: https://github.com/tokio-rs/tokio/pull/2604
+[#2612]: https://github.com/tokio-rs/tokio/pull/2612
+[#2615]: https://github.com/tokio-rs/tokio/pull/2615
+[#2621]: https://github.com/tokio-rs/tokio/pull/2621
+[#2622]: https://github.com/tokio-rs/tokio/pull/2622
+[#2623]: https://github.com/tokio-rs/tokio/pull/2623
+[#2624]: https://github.com/tokio-rs/tokio/pull/2624
+[#2630]: https://github.com/tokio-rs/tokio/pull/2630
+[#2634]: https://github.com/tokio-rs/tokio/pull/2634
+[#2645]: https://github.com/tokio-rs/tokio/pull/2645
+[#2647]: https://github.com/tokio-rs/tokio/pull/2647
+[#2654]: https://github.com/tokio-rs/tokio/pull/2654
+[#2655]: https://github.com/tokio-rs/tokio/pull/2655
+[#2656]: https://github.com/tokio-rs/tokio/pull/2656
+[#2658]: https://github.com/tokio-rs/tokio/pull/2658
+[#2663]: https://github.com/tokio-rs/tokio/pull/2663
+
+# 0.2.21 (May 13, 2020)
+
+### Fixes
+
+- macros: disambiguate built-in `#[test]` attribute in macro expansion ([#2503])
+- rt: `LocalSet` and task budgeting ([#2462]).
+- rt: task budgeting with `block_in_place` ([#2502]).
+- sync: release `broadcast` channel memory without sending a value ([#2509]).
+- time: notify when resetting a `Delay` to a time in the past ([#2290])
+
+### Added
+
+- io: `get_mut`, `get_ref`, and `into_inner` to `Lines` ([#2450]).
+- io: `mio::Ready` argument to `PollEvented` ([#2419]).
+- os: illumos support ([#2486]).
+- rt: `Handle::spawn_blocking` ([#2501]).
+- sync: `OwnedMutexGuard` for `Arc<Mutex<T>>` ([#2455]).
+
+[#2290]: https://github.com/tokio-rs/tokio/pull/2290
+[#2419]: https://github.com/tokio-rs/tokio/pull/2419
+[#2450]: https://github.com/tokio-rs/tokio/pull/2450
+[#2455]: https://github.com/tokio-rs/tokio/pull/2455
+[#2462]: https://github.com/tokio-rs/tokio/pull/2462
+[#2486]: https://github.com/tokio-rs/tokio/pull/2486
+[#2501]: https://github.com/tokio-rs/tokio/pull/2501
+[#2502]: https://github.com/tokio-rs/tokio/pull/2502
+[#2503]: https://github.com/tokio-rs/tokio/pull/2503
+[#2509]: https://github.com/tokio-rs/tokio/pull/2509
+
+# 0.2.20 (April 28, 2020)
+
+### Fixes
+
+- sync: `broadcast` closing the channel no longer requires capacity ([#2448]).
+- rt: regression when configuring runtime with `max_threads` less than number of CPUs ([#2457]).
+
+[#2448]: https://github.com/tokio-rs/tokio/pull/2448
+[#2457]: https://github.com/tokio-rs/tokio/pull/2457
+
+# 0.2.19 (April 24, 2020)
+
+### Fixes
+
+- docs: misc improvements ([#2400], [#2405], [#2414], [#2420], [#2423], [#2426], [#2427], [#2434], [#2436], [#2440]).
+- rt: support `block_in_place` in more contexts ([#2409], [#2410]).
+- stream: no panic in `merge()` and `chain()` when using `size_hint()` ([#2430]).
+- task: include visibility modifier when defining a task-local ([#2416]).
+
+### Added
+
+- rt: `runtime::Handle::block_on` ([#2437]).
+- sync: owned `Semaphore` permit ([#2421]).
+- tcp: owned split ([#2270]).
+
+[#2270]: https://github.com/tokio-rs/tokio/pull/2270
+[#2400]: https://github.com/tokio-rs/tokio/pull/2400
+[#2405]: https://github.com/tokio-rs/tokio/pull/2405
+[#2409]: https://github.com/tokio-rs/tokio/pull/2409
+[#2410]: https://github.com/tokio-rs/tokio/pull/2410
+[#2414]: https://github.com/tokio-rs/tokio/pull/2414
+[#2416]: https://github.com/tokio-rs/tokio/pull/2416
+[#2420]: https://github.com/tokio-rs/tokio/pull/2420
+[#2421]: https://github.com/tokio-rs/tokio/pull/2421
+[#2423]: https://github.com/tokio-rs/tokio/pull/2423
+[#2426]: https://github.com/tokio-rs/tokio/pull/2426
+[#2427]: https://github.com/tokio-rs/tokio/pull/2427
+[#2430]: https://github.com/tokio-rs/tokio/pull/2430
+[#2434]: https://github.com/tokio-rs/tokio/pull/2434
+[#2436]: https://github.com/tokio-rs/tokio/pull/2436
+[#2437]: https://github.com/tokio-rs/tokio/pull/2437
+[#2440]: https://github.com/tokio-rs/tokio/pull/2440
+
+# 0.2.18 (April 12, 2020)
+
+### Fixes
+
+- task: `LocalSet` was incorrectly marked as `Send` ([#2398])
+- io: correctly report `WriteZero` failure in `write_int` ([#2334])
+
+[#2334]: https://github.com/tokio-rs/tokio/pull/2334
+[#2398]: https://github.com/tokio-rs/tokio/pull/2398
+
+# 0.2.17 (April 9, 2020)
+
+### Fixes
+
+- rt: bug in work-stealing queue ([#2387])
+
+### Changes
+
+- rt: threadpool uses logical CPU count instead of physical by default ([#2391])
+
+[#2387]: https://github.com/tokio-rs/tokio/pull/2387
+[#2391]: https://github.com/tokio-rs/tokio/pull/2391
+
+# 0.2.16 (April 3, 2020)
+
+### Fixes
+
+- sync: fix a regression where `Mutex`, `Semaphore`, and `RwLock` futures no
+ longer implement `Sync` ([#2375])
+- fs: fix `fs::copy` not copying file permissions ([#2354])
+
+### Added
+
+- time: added `deadline` method to `delay_queue::Expired` ([#2300])
+- io: added `StreamReader` ([#2052])
+
+[#2052]: https://github.com/tokio-rs/tokio/pull/2052
+[#2300]: https://github.com/tokio-rs/tokio/pull/2300
+[#2354]: https://github.com/tokio-rs/tokio/pull/2354
+[#2375]: https://github.com/tokio-rs/tokio/pull/2375
+
+# 0.2.15 (April 2, 2020)
+
+### Fixes
+
+- rt: fix queue regression ([#2362]).
+
+### Added
+
+- sync: Add disarm to `mpsc::Sender` ([#2358]).
+
+[#2358]: https://github.com/tokio-rs/tokio/pull/2358
+[#2362]: https://github.com/tokio-rs/tokio/pull/2362
+
+# 0.2.14 (April 1, 2020)
+
+### Fixes
+
+- rt: concurrency bug in scheduler ([#2273]).
+- rt: concurrency bug with shell runtime ([#2333]).
+- test-util: correct pause/resume of time ([#2253]).
+- time: `DelayQueue` correct wakeup after `insert` ([#2285]).
+
+### Added
+
+- io: impl `RawFd`, `AsRawHandle` for std io types ([#2335]).
+- rt: automatic cooperative task yielding ([#2160], [#2343], [#2349]).
+- sync: `RwLock::into_inner` ([#2321]).
+
+### Changed
+
+- sync: semaphore, mutex internals rewritten to avoid allocations ([#2325]).
+
+[#2160]: https://github.com/tokio-rs/tokio/pull/2160
+[#2253]: https://github.com/tokio-rs/tokio/pull/2253
+[#2273]: https://github.com/tokio-rs/tokio/pull/2273
+[#2285]: https://github.com/tokio-rs/tokio/pull/2285
+[#2321]: https://github.com/tokio-rs/tokio/pull/2321
+[#2325]: https://github.com/tokio-rs/tokio/pull/2325
+[#2333]: https://github.com/tokio-rs/tokio/pull/2333
+[#2335]: https://github.com/tokio-rs/tokio/pull/2335
+[#2343]: https://github.com/tokio-rs/tokio/pull/2343
+[#2349]: https://github.com/tokio-rs/tokio/pull/2349
+
+# 0.2.13 (February 28, 2020)
+
+### Fixes
+
+- macros: unresolved import in `pin!` ([#2281]).
+
+[#2281]: https://github.com/tokio-rs/tokio/pull/2281
+
+# 0.2.12 (February 27, 2020)
+
+### Fixes
+
+- net: `UnixStream::poll_shutdown` should call `shutdown(Write)` ([#2245]).
+- process: Wake up read and write on `EPOLLERR` ([#2218]).
+- rt: potential deadlock when using `block_in_place` and shutting down the
+ runtime ([#2119]).
+- rt: only detect number of CPUs if `core_threads` not specified ([#2238]).
+- sync: reduce `watch::Receiver` struct size ([#2191]).
+- time: succeed when setting delay of `$MAX-1` ([#2184]).
+- time: avoid having to poll `DelayQueue` after inserting new delay ([#2217]).
+
+### Added
+
+- macros: `pin!` variant that assigns to identifier and pins ([#2274]).
+- net: impl `Stream` for `Listener` types ([#2275]).
+- rt: `Runtime::shutdown_timeout` waits for runtime to shutdown for specified
+ duration ([#2186]).
+- stream: `StreamMap` merges streams and can insert / remove streams at
+ runtime ([#2185]).
+- stream: `StreamExt::skip()` skips a fixed number of items ([#2204]).
+- stream: `StreamExt::skip_while()` skips items based on a predicate ([#2205]).
+- sync: `Notify` provides basic `async` / `await` task notification ([#2210]).
+- sync: `Mutex::into_inner` retrieves guarded data ([#2250]).
+- sync: `mpsc::Sender::send_timeout` sends, waiting for up to specified duration
+ for channel capacity ([#2227]).
+- time: impl `Ord` and `Hash` for `Instant` ([#2239]).
+
+[#2119]: https://github.com/tokio-rs/tokio/pull/2119
+[#2184]: https://github.com/tokio-rs/tokio/pull/2184
+[#2185]: https://github.com/tokio-rs/tokio/pull/2185
+[#2186]: https://github.com/tokio-rs/tokio/pull/2186
+[#2191]: https://github.com/tokio-rs/tokio/pull/2191
+[#2204]: https://github.com/tokio-rs/tokio/pull/2204
+[#2205]: https://github.com/tokio-rs/tokio/pull/2205
+[#2210]: https://github.com/tokio-rs/tokio/pull/2210
+[#2217]: https://github.com/tokio-rs/tokio/pull/2217
+[#2218]: https://github.com/tokio-rs/tokio/pull/2218
+[#2227]: https://github.com/tokio-rs/tokio/pull/2227
+[#2238]: https://github.com/tokio-rs/tokio/pull/2238
+[#2239]: https://github.com/tokio-rs/tokio/pull/2239
+[#2245]: https://github.com/tokio-rs/tokio/pull/2245
+[#2250]: https://github.com/tokio-rs/tokio/pull/2250
+[#2274]: https://github.com/tokio-rs/tokio/pull/2274
+[#2275]: https://github.com/tokio-rs/tokio/pull/2275
+
+# 0.2.11 (January 27, 2020)
+
+### Fixes
+
+- docs: misc fixes and tweaks ([#2155], [#2103], [#2027], [#2167], [#2175]).
+- macros: handle generics in `#[tokio::main]` method ([#2177]).
+- sync: `broadcast` potential lost notifications ([#2135]).
+- rt: improve "no runtime" panic messages ([#2145]).
+
+### Added
+
+- optional support for using `parking_lot` internally ([#2164]).
+- fs: `fs::copy`, an async version of `std::fs::copy` ([#2079]).
+- macros: `select!` waits for the first branch to complete ([#2152]).
+- macros: `join!` waits for all branches to complete ([#2158]).
+- macros: `try_join!` waits for all branches to complete or the first error ([#2169]).
+- macros: `pin!` pins a value to the stack ([#2163]).
+- net: `ReadHalf::poll()` and `ReadHalf::poll_peak` ([#2151])
+- stream: `StreamExt::timeout()` sets a per-item max duration ([#2149]).
+- stream: `StreamExt::fold()` applies a function, producing a single value. ([#2122]).
+- sync: impl `Eq`, `PartialEq` for `oneshot::RecvError` ([#2168]).
+- task: methods for inspecting the `JoinError` cause ([#2051]).
+
+[#2027]: https://github.com/tokio-rs/tokio/pull/2027
+[#2051]: https://github.com/tokio-rs/tokio/pull/2051
+[#2079]: https://github.com/tokio-rs/tokio/pull/2079
+[#2103]: https://github.com/tokio-rs/tokio/pull/2103
+[#2122]: https://github.com/tokio-rs/tokio/pull/2122
+[#2135]: https://github.com/tokio-rs/tokio/pull/2135
+[#2145]: https://github.com/tokio-rs/tokio/pull/2145
+[#2149]: https://github.com/tokio-rs/tokio/pull/2149
+[#2151]: https://github.com/tokio-rs/tokio/pull/2151
+[#2152]: https://github.com/tokio-rs/tokio/pull/2152
+[#2155]: https://github.com/tokio-rs/tokio/pull/2155
+[#2158]: https://github.com/tokio-rs/tokio/pull/2158
+[#2163]: https://github.com/tokio-rs/tokio/pull/2163
+[#2164]: https://github.com/tokio-rs/tokio/pull/2164
+[#2167]: https://github.com/tokio-rs/tokio/pull/2167
+[#2168]: https://github.com/tokio-rs/tokio/pull/2168
+[#2169]: https://github.com/tokio-rs/tokio/pull/2169
+[#2175]: https://github.com/tokio-rs/tokio/pull/2175
+[#2177]: https://github.com/tokio-rs/tokio/pull/2177
+
+# 0.2.10 (January 21, 2020)
+
+### Fixes
+
+- `#[tokio::main]` when `rt-core` feature flag is not enabled ([#2139]).
+- remove `AsyncBufRead` from `BufStream` impl block ([#2108]).
+- potential undefined behavior when implementing `AsyncRead` incorrectly ([#2030]).
+
+### Added
+
+- `BufStream::with_capacity` ([#2125]).
+- impl `From` and `Default` for `RwLock` ([#2089]).
+- `io::ReadHalf::is_pair_of` checks if provided `WriteHalf` is for the same
+ underlying object ([#1762], [#2144]).
+- `runtime::Handle::try_current()` returns a handle to the current runtime ([#2118]).
+- `stream::empty()` returns an immediately ready empty stream ([#2092]).
+- `stream::once(val)` returns a stream that yields a single value: `val` ([#2094]).
+- `stream::pending()` returns a stream that never becomes ready ([#2092]).
+- `StreamExt::chain()` sequences a second stream after the first completes ([#2093]).
+- `StreamExt::collect()` transform a stream into a collection ([#2109]).
+- `StreamExt::fuse` ends the stream after the first `None` ([#2085]).
+- `StreamExt::merge` combines two streams, yielding values as they become ready ([#2091]).
+- Task-local storage ([#2126]).
+
+[#1762]: https://github.com/tokio-rs/tokio/pull/1762
+[#2030]: https://github.com/tokio-rs/tokio/pull/2030
+[#2085]: https://github.com/tokio-rs/tokio/pull/2085
+[#2089]: https://github.com/tokio-rs/tokio/pull/2089
+[#2091]: https://github.com/tokio-rs/tokio/pull/2091
+[#2092]: https://github.com/tokio-rs/tokio/pull/2092
+[#2093]: https://github.com/tokio-rs/tokio/pull/2093
+[#2094]: https://github.com/tokio-rs/tokio/pull/2094
+[#2108]: https://github.com/tokio-rs/tokio/pull/2108
+[#2109]: https://github.com/tokio-rs/tokio/pull/2109
+[#2118]: https://github.com/tokio-rs/tokio/pull/2118
+[#2125]: https://github.com/tokio-rs/tokio/pull/2125
+[#2126]: https://github.com/tokio-rs/tokio/pull/2126
+[#2139]: https://github.com/tokio-rs/tokio/pull/2139
+[#2144]: https://github.com/tokio-rs/tokio/pull/2144
+
+# 0.2.9 (January 9, 2020)
+
+### Fixes
+
+- `AsyncSeek` impl for `File` ([#1986]).
+- rt: shutdown deadlock in `threaded_scheduler` ([#2074], [#2082]).
+- rt: memory ordering when dropping `JoinHandle` ([#2044]).
+- docs: misc API documentation fixes and improvements.
+
+[#1986]: https://github.com/tokio-rs/tokio/pull/1986
+[#2044]: https://github.com/tokio-rs/tokio/pull/2044
+[#2074]: https://github.com/tokio-rs/tokio/pull/2074
+[#2082]: https://github.com/tokio-rs/tokio/pull/2082
+
+# 0.2.8 (January 7, 2020)
+
+### Fixes
+
+- depend on new version of `tokio-macros`.
+
+# 0.2.7 (January 7, 2020)
+
+### Fixes
+
+- potential deadlock when dropping `basic_scheduler` Runtime.
+- calling `spawn_blocking` from within a `spawn_blocking` ([#2006]).
+- storing a `Runtime` instance in a thread-local ([#2011]).
+- miscellaneous documentation fixes.
+- rt: fix `Waker::will_wake` to return true when tasks match ([#2045]).
+- test-util: `time::advance` runs pending tasks before changing the time ([#2059]).
+
+### Added
+
+- `net::lookup_host` maps a `T: ToSocketAddrs` to a stream of `SocketAddrs` ([#1870]).
+- `process::Child` fields are made public to match `std` ([#2014]).
+- impl `Stream` for `sync::broadcast::Receiver` ([#2012]).
+- `sync::RwLock` provides an asynchronous read-write lock ([#1699]).
+- `runtime::Handle::current` returns the handle for the current runtime ([#2040]).
+- `StreamExt::filter` filters stream values according to a predicate ([#2001]).
+- `StreamExt::filter_map` simultaneously filter and map stream values ([#2001]).
+- `StreamExt::try_next` convenience for streams of `Result<T, E>` ([#2005]).
+- `StreamExt::take` limits a stream to a specified number of values ([#2025]).
+- `StreamExt::take_while` limits a stream based on a predicate ([#2029]).
+- `StreamExt::all` tests if every element of the stream matches a predicate ([#2035]).
+- `StreamExt::any` tests if any element of the stream matches a predicate ([#2034]).
+- `task::LocalSet.await` runs spawned tasks until the set is idle ([#1971]).
+- `time::DelayQueue::len` returns the number entries in the queue ([#1755]).
+- expose runtime options from the `#[tokio::main]` and `#[tokio::test]` ([#2022]).
+
+[#1699]: https://github.com/tokio-rs/tokio/pull/1699
+[#1755]: https://github.com/tokio-rs/tokio/pull/1755
+[#1870]: https://github.com/tokio-rs/tokio/pull/1870
+[#1971]: https://github.com/tokio-rs/tokio/pull/1971
+[#2001]: https://github.com/tokio-rs/tokio/pull/2001
+[#2005]: https://github.com/tokio-rs/tokio/pull/2005
+[#2006]: https://github.com/tokio-rs/tokio/pull/2006
+[#2011]: https://github.com/tokio-rs/tokio/pull/2011
+[#2012]: https://github.com/tokio-rs/tokio/pull/2012
+[#2014]: https://github.com/tokio-rs/tokio/pull/2014
+[#2022]: https://github.com/tokio-rs/tokio/pull/2022
+[#2025]: https://github.com/tokio-rs/tokio/pull/2025
+[#2029]: https://github.com/tokio-rs/tokio/pull/2029
+[#2034]: https://github.com/tokio-rs/tokio/pull/2034
+[#2035]: https://github.com/tokio-rs/tokio/pull/2035
+[#2040]: https://github.com/tokio-rs/tokio/pull/2040
+[#2045]: https://github.com/tokio-rs/tokio/pull/2045
+[#2059]: https://github.com/tokio-rs/tokio/pull/2059
+
+# 0.2.6 (December 19, 2019)
+
+### Fixes
+
+- `fs::File::seek` API regression ([#1991]).
+
+[#1991]: https://github.com/tokio-rs/tokio/pull/1991
+
+# 0.2.5 (December 18, 2019)
+
+### Added
+
+- `io::AsyncSeek` trait ([#1924]).
+- `Mutex::try_lock` ([#1939])
+- `mpsc::Receiver::try_recv` and `mpsc::UnboundedReceiver::try_recv` ([#1939]).
+- `writev` support for `TcpStream` ([#1956]).
+- `time::throttle` for throttling streams ([#1949]).
+- implement `Stream` for `time::DelayQueue` ([#1975]).
+- `sync::broadcast` provides a fan-out channel ([#1943]).
+- `sync::Semaphore` provides an async semaphore ([#1973]).
+- `stream::StreamExt` provides stream utilities ([#1962]).
+
+### Fixes
+
+- deadlock risk while shutting down the runtime ([#1972]).
+- panic while shutting down the runtime ([#1978]).
+- `sync::MutexGuard` debug output ([#1961]).
+- misc doc improvements ([#1933], [#1934], [#1940], [#1942]).
+
+### Changes
+
+- runtime threads are configured with `runtime::Builder::core_threads` and
+ `runtime::Builder::max_threads`. `runtime::Builder::num_threads` is
+ deprecated ([#1977]).
+
+[#1924]: https://github.com/tokio-rs/tokio/pull/1924
+[#1933]: https://github.com/tokio-rs/tokio/pull/1933
+[#1934]: https://github.com/tokio-rs/tokio/pull/1934
+[#1939]: https://github.com/tokio-rs/tokio/pull/1939
+[#1940]: https://github.com/tokio-rs/tokio/pull/1940
+[#1942]: https://github.com/tokio-rs/tokio/pull/1942
+[#1943]: https://github.com/tokio-rs/tokio/pull/1943
+[#1949]: https://github.com/tokio-rs/tokio/pull/1949
+[#1956]: https://github.com/tokio-rs/tokio/pull/1956
+[#1961]: https://github.com/tokio-rs/tokio/pull/1961
+[#1962]: https://github.com/tokio-rs/tokio/pull/1962
+[#1972]: https://github.com/tokio-rs/tokio/pull/1972
+[#1973]: https://github.com/tokio-rs/tokio/pull/1973
+[#1975]: https://github.com/tokio-rs/tokio/pull/1975
+[#1977]: https://github.com/tokio-rs/tokio/pull/1977
+[#1978]: https://github.com/tokio-rs/tokio/pull/1978
+
+# 0.2.4 (December 6, 2019)
+
+### Fixes
+
+- `sync::Mutex` deadlock when `lock()` future is dropped early ([#1898]).
+
+[#1898]: https://github.com/tokio-rs/tokio/pull/1898
+
+# 0.2.3 (December 6, 2019)
+
+### Added
+
+- read / write integers using `AsyncReadExt` and `AsyncWriteExt` ([#1863]).
+- `read_buf` / `write_buf` for reading / writing `Buf` / `BufMut` ([#1881]).
+- `TcpStream::poll_peek` - pollable API for performing TCP peek ([#1864]).
+- `sync::oneshot::error::TryRecvError` provides variants to detect the error
+ kind ([#1874]).
+- `LocalSet::block_on` accepts `!'static` task ([#1882]).
+- `task::JoinError` is now `Sync` ([#1888]).
+- impl conversions between `tokio::time::Instant` and
+ `std::time::Instant` ([#1904]).
+
+### Fixes
+
+- calling `spawn_blocking` after runtime shutdown ([#1875]).
+- `LocalSet` drop infinite loop ([#1892]).
+- `LocalSet` hang under load ([#1905]).
+- improved documentation ([#1865], [#1866], [#1868], [#1874], [#1876], [#1911]).
+
+[#1863]: https://github.com/tokio-rs/tokio/pull/1863
+[#1864]: https://github.com/tokio-rs/tokio/pull/1864
+[#1865]: https://github.com/tokio-rs/tokio/pull/1865
+[#1866]: https://github.com/tokio-rs/tokio/pull/1866
+[#1868]: https://github.com/tokio-rs/tokio/pull/1868
+[#1874]: https://github.com/tokio-rs/tokio/pull/1874
+[#1875]: https://github.com/tokio-rs/tokio/pull/1875
+[#1876]: https://github.com/tokio-rs/tokio/pull/1876
+[#1881]: https://github.com/tokio-rs/tokio/pull/1881
+[#1882]: https://github.com/tokio-rs/tokio/pull/1882
+[#1888]: https://github.com/tokio-rs/tokio/pull/1888
+[#1892]: https://github.com/tokio-rs/tokio/pull/1892
+[#1904]: https://github.com/tokio-rs/tokio/pull/1904
+[#1905]: https://github.com/tokio-rs/tokio/pull/1905
+[#1911]: https://github.com/tokio-rs/tokio/pull/1911
+
+# 0.2.2 (November 29, 2019)
+
+### Fixes
+
+- scheduling with `basic_scheduler` ([#1861]).
+- update `spawn` panic message to specify that a task scheduler is required ([#1839]).
+- API docs example for `runtime::Builder` to include a task scheduler ([#1841]).
+- general documentation ([#1834]).
+- building on illumos/solaris ([#1772]).
+- panic when dropping `LocalSet` ([#1843]).
+- API docs mention the required Cargo features for `Builder::{basic, threaded}_scheduler` ([#1858]).
+
+### Added
+
+- impl `Stream` for `signal::unix::Signal` ([#1849]).
+- API docs for platform specific behavior of `signal::ctrl_c` and `signal::unix::Signal` ([#1854]).
+- API docs for `signal::unix::Signal::{recv, poll_recv}` and `signal::windows::CtrlBreak::{recv, poll_recv}` ([#1854]).
+- `File::into_std` and `File::try_into_std` methods ([#1856]).
+
+[#1772]: https://github.com/tokio-rs/tokio/pull/1772
+[#1834]: https://github.com/tokio-rs/tokio/pull/1834
+[#1839]: https://github.com/tokio-rs/tokio/pull/1839
+[#1841]: https://github.com/tokio-rs/tokio/pull/1841
+[#1843]: https://github.com/tokio-rs/tokio/pull/1843
+[#1849]: https://github.com/tokio-rs/tokio/pull/1849
+[#1854]: https://github.com/tokio-rs/tokio/pull/1854
+[#1856]: https://github.com/tokio-rs/tokio/pull/1856
+[#1858]: https://github.com/tokio-rs/tokio/pull/1858
+[#1861]: https://github.com/tokio-rs/tokio/pull/1861
+
+# 0.2.1 (November 26, 2019)
+
+### Fixes
+
+- API docs for `TcpListener::incoming`, `UnixListener::incoming` ([#1831]).
+
+### Added
+
+- `tokio::task::LocalSet` provides a strategy for spawning `!Send` tasks ([#1733]).
+- export `tokio::time::Elapsed` ([#1826]).
+- impl `AsRawFd`, `AsRawHandle` for `tokio::fs::File` ([#1827]).
+
+[#1733]: https://github.com/tokio-rs/tokio/pull/1733
+[#1826]: https://github.com/tokio-rs/tokio/pull/1826
+[#1827]: https://github.com/tokio-rs/tokio/pull/1827
+[#1831]: https://github.com/tokio-rs/tokio/pull/1831
+
+# 0.2.0 (November 26, 2019)
+
+A major breaking change. Most implementation and APIs have changed one way or
+another. This changelog entry contains a highlight
+
+### Changed
+
+- APIs are updated to use `async / await`.
+- most `tokio-*` crates are collapsed into this crate.
+- Scheduler is rewritten.
+- `tokio::spawn` returns a `JoinHandle`.
+- A single I/O / timer is used per runtime.
+- I/O driver uses a concurrent slab for allocating state.
+- components are made available via feature flag.
+- Use `bytes` 0.5
+- `tokio::codec` is moved to `tokio-util`.
+
+### Removed
+
+- Standalone `timer` and `net` drivers are removed, use `Runtime` instead
+- `current_thread` runtime is removed, use `tokio::runtime::Runtime` with
+ `basic_scheduler` instead.
+
+# 0.1.21 (May 30, 2019)
+
+### Changed
+
+- Bump `tokio-trace-core` version to 0.2 ([#1111]).
+
+[#1111]: https://github.com/tokio-rs/tokio/pull/1111
+
+# 0.1.20 (May 14, 2019)
+
+### Added
+
+- `tokio::runtime::Builder::panic_handler` allows configuring handling
+ panics on the runtime ([#1055]).
+
+[#1055]: https://github.com/tokio-rs/tokio/pull/1055
+
+# 0.1.19 (April 22, 2019)
+
+### Added
+
+- Re-export `tokio::sync::Mutex` primitive ([#964]).
+
+[#964]: https://github.com/tokio-rs/tokio/pull/964
+
+# 0.1.18 (March 22, 2019)
+
+### Added
+
+- `TypedExecutor` re-export and implementations ([#993]).
+
+[#993]: https://github.com/tokio-rs/tokio/pull/993
+
+# 0.1.17 (March 13, 2019)
+
+### Added
+
+- Propagate trace subscriber in the runtime ([#966]).
+
+[#966]: https://github.com/tokio-rs/tokio/pull/966
+
+# 0.1.16 (March 1, 2019)
+
+### Fixed
+
+- async-await: track latest nightly changes ([#940]).
+
+### Added
+
+- `sync::Watch`, a single value broadcast channel ([#922]).
+- Async equivalent of read / write file helpers being added to `std` ([#896]).
+
+[#896]: https://github.com/tokio-rs/tokio/pull/896
+[#922]: https://github.com/tokio-rs/tokio/pull/922
+[#940]: https://github.com/tokio-rs/tokio/pull/940
+
+# 0.1.15 (January 24, 2019)
+
+### Added
+
+- Re-export tokio-sync APIs ([#839]).
+- Stream enumerate combinator ([#832]).
+
+[#832]: https://github.com/tokio-rs/tokio/pull/832
+[#839]: https://github.com/tokio-rs/tokio/pull/839
+
+# 0.1.14 (January 6, 2019)
+
+- Use feature flags to break up the crate, allowing users to pick & choose
+ components ([#808]).
+- Export `UnixDatagram` and `UnixDatagramFramed` ([#772]).
+
+[#772]: https://github.com/tokio-rs/tokio/pull/772
+[#808]: https://github.com/tokio-rs/tokio/pull/808
+
+# 0.1.13 (November 21, 2018)
+
+- Fix `Runtime::reactor()` when no tasks are spawned ([#721]).
+- `runtime::Builder` no longer uses deprecated methods ([#749]).
+- Provide `after_start` and `before_stop` configuration settings for
+ `Runtime` ([#756]).
+- Implement throttle stream combinator ([#736]).
+
+[#721]: https://github.com/tokio-rs/tokio/pull/721
+[#736]: https://github.com/tokio-rs/tokio/pull/736
+[#749]: https://github.com/tokio-rs/tokio/pull/749
+[#756]: https://github.com/tokio-rs/tokio/pull/756
+
+# 0.1.12 (October 23, 2018)
+
+- runtime: expose `keep_alive` on runtime builder ([#676]).
+- runtime: create a reactor per worker thread ([#660]).
+- codec: fix panic in `LengthDelimitedCodec` ([#682]).
+- io: re-export `tokio_io::io::read` function ([#689]).
+- runtime: check for executor re-entry in more places ([#708]).
+
+[#660]: https://github.com/tokio-rs/tokio/pull/660
+[#676]: https://github.com/tokio-rs/tokio/pull/676
+[#682]: https://github.com/tokio-rs/tokio/pull/682
+[#689]: https://github.com/tokio-rs/tokio/pull/689
+[#708]: https://github.com/tokio-rs/tokio/pull/708
+
+# 0.1.11 (September 28, 2018)
+
+- Fix `tokio-async-await` dependency ([#675]).
+
+[#675]: https://github.com/tokio-rs/tokio/pull/675
+
+# 0.1.10 (September 27, 2018)
+
+- Fix minimal versions
+
+# 0.1.9 (September 27, 2018)
+
+- Experimental async/await improvements ([#661]).
+- Re-export `TaskExecutor` from `tokio-current-thread` ([#652]).
+- Improve `Runtime` builder API ([#645]).
+- `tokio::run` panics when called from the context of an executor
+ ([#646]).
+- Introduce `StreamExt` with a `timeout` helper ([#573]).
+- Move `length_delimited` into `tokio` ([#575]).
+- Re-organize `tokio::net` module ([#548]).
+- Re-export `tokio-current-thread::spawn` in current_thread runtime
+ ([#579]).
+
+[#548]: https://github.com/tokio-rs/tokio/pull/548
+[#573]: https://github.com/tokio-rs/tokio/pull/573
+[#575]: https://github.com/tokio-rs/tokio/pull/575
+[#579]: https://github.com/tokio-rs/tokio/pull/579
+[#645]: https://github.com/tokio-rs/tokio/pull/645
+[#646]: https://github.com/tokio-rs/tokio/pull/646
+[#652]: https://github.com/tokio-rs/tokio/pull/652
+[#661]: https://github.com/tokio-rs/tokio/pull/661
+
+# 0.1.8 (August 23, 2018)
+
+- Extract tokio::executor::current_thread to a sub crate ([#370])
+- Add `Runtime::block_on` ([#398])
+- Add `runtime::current_thread::block_on_all` ([#477])
+- Misc documentation improvements ([#450])
+- Implement `std::error::Error` for error types ([#501])
+
+[#370]: https://github.com/tokio-rs/tokio/pull/370
+[#398]: https://github.com/tokio-rs/tokio/pull/398
+[#450]: https://github.com/tokio-rs/tokio/pull/450
+[#477]: https://github.com/tokio-rs/tokio/pull/477
+[#501]: https://github.com/tokio-rs/tokio/pull/501
+
+# 0.1.7 (June 6, 2018)
+
+- Add `Runtime::block_on` for concurrent runtime ([#391]).
+- Provide handle to `current_thread::Runtime` that allows spawning tasks from
+ other threads ([#340]).
+- Provide `clock::now()`, a configurable source of time ([#381]).
+
+[#340]: https://github.com/tokio-rs/tokio/pull/340
+[#381]: https://github.com/tokio-rs/tokio/pull/381
+[#391]: https://github.com/tokio-rs/tokio/pull/391
+
+# 0.1.6 (May 2, 2018)
+
+- Add asynchronous filesystem APIs ([#323]).
+- Add "current thread" runtime variant ([#308]).
+- `CurrentThread`: Expose inner `Park` instance.
+- Improve fairness of `CurrentThread` executor ([#313]).
+
+[#308]: https://github.com/tokio-rs/tokio/pull/308
+[#313]: https://github.com/tokio-rs/tokio/pull/313
+[#323]: https://github.com/tokio-rs/tokio/pull/323
+
+# 0.1.5 (March 30, 2018)
+
+- Provide timer API ([#266])
+
+[#266]: https://github.com/tokio-rs/tokio/pull/266
+
+# 0.1.4 (March 22, 2018)
+
+- Fix build on FreeBSD ([#218])
+- Shutdown the Runtime when the handle is dropped ([#214])
+- Set Runtime thread name prefix for worker threads ([#232])
+- Add builder for Runtime ([#234])
+- Extract TCP and UDP types into separate crates ([#224])
+- Optionally support futures 0.2.
+
+[#214]: https://github.com/tokio-rs/tokio/pull/214
+[#218]: https://github.com/tokio-rs/tokio/pull/218
+[#224]: https://github.com/tokio-rs/tokio/pull/224
+[#232]: https://github.com/tokio-rs/tokio/pull/232
+[#234]: https://github.com/tokio-rs/tokio/pull/234
+
+# 0.1.3 (March 09, 2018)
+
+- Fix `CurrentThread::turn` to block on idle ([#212]).
+
+[#212]: https://github.com/tokio-rs/tokio/pull/212
+
+# 0.1.2 (March 09, 2018)
+
+- Introduce Tokio Runtime ([#141])
+- Provide `CurrentThread` for more flexible usage of current thread executor ([#141]).
+- Add Lio for platforms that support it ([#142]).
+- I/O resources now lazily bind to the reactor ([#160]).
+- Extract Reactor to dedicated crate ([#169])
+- Add facade to sub crates and add prelude ([#166]).
+- Switch TCP/UDP fns to poll\_ -> Poll<...> style ([#175])
+
+[#141]: https://github.com/tokio-rs/tokio/pull/141
+[#142]: https://github.com/tokio-rs/tokio/pull/142
+[#160]: https://github.com/tokio-rs/tokio/pull/160
+[#166]: https://github.com/tokio-rs/tokio/pull/166
+[#169]: https://github.com/tokio-rs/tokio/pull/169
+[#175]: https://github.com/tokio-rs/tokio/pull/175
+
+# 0.1.1 (February 09, 2018)
+
+- Doc fixes
+
+# 0.1.0 (February 07, 2018)
+
+- Initial crate released based on [RFC](https://github.com/tokio-rs/tokio-rfcs/pull/3).