async-io
Async I/O and timers
2.6.0
206M downloads/mo
#490 most downloaded on crates.io
smol-rs/async-io
What this package is like to depend on
Last release 11 months ago
14 Sep 2025
Release timing varies
gaps range from 2 weeks to 7 months
Nearly every release is documented
notes for 60 of 61 stable releases
1 version withdrawn
withdrawn after publishing
7 years old
62 releases · first in 2019
1 release in the last 12 months
see the full history below
Release timeline
62 releases · May 2019 to Sep 2025
2020
2021
2022
2023
2024
2025
2026
Releases
latest 60 of 62-
2.6.014 Sep 2025Release notes
Open source →- Bump MSRV to 1.71. (#243)
- Expose
Timer::clear. (#239) - Implement
IoSafeforstd::io::PipeReaderandstd::io::PipeWriter(#237) - Update to
windows-sysv0.61. (#243) - Remove dependency on
async_lock. (#240)
-
2.5.019 Jul 2025Release notes
Open source →- Add a new optional
tracingfeature. When enabled, this feature adds logging to the implementation. By default it is disabled. (#234) - Add support for Haiku (#233)
- Fix build failure with minimal-versions. (#234)
- Update
windows-systo v0.60. (#230)
- Add a new optional
-
2.4.125 May 2025 -
2.4.007 Nov 2024Release notes
Open source →- Make it so the
Exitfilter can be created without passing ownership of theChildobject. (#207) - Add support for visionOS. (#202)
- Fix typo in documentation. (#204)
- Make it so the
-
2.3.410 Aug 2024Release notes
Open source →Release notes
Open source →- Update
windows-systo v0.59. (#195) - On NetBSD/DragonflyBSD, set
nosigpipeon sockets. (#196)
- Update
-
2.3.301 Jun 2024 -
2.3.210 Mar 2024 -
2.3.128 Jan 2024 -
2.3.016 Jan 2024Release notes
Open source →- Add
Waitable, which allows waiting for waitable handles on
Windows. (#152)
Release notes
Open source →- Add
Waitable, which allows waiting for waitable handles on Windows. (#152)
- Add
-
2.2.211 Dec 2023Release notes
Open source →- Fix an
EINVALerror that would occur when abstract sockets are used. (#176)
Release notes
Open source →- Fix an
EINVALerror that would occur when abstract sockets are used. (#176)
- Fix an
-
2.2.124 Nov 2023Release notes
Open source →- Remove dependency on
waker-fn. (#165) - Update
windows-systo v0.52.0. (#173)
- Remove dependency on
-
2.2.006 Nov 2023 -
2.1.029 Oct 2023Release notes
Open source →- Implement
IoSafeforstd::process::{ChildStdin, ChildStdout, ChildStderr}. (#162)
- Implement
-
2.0.018 Oct 2023Release notes
Open source →- Breaking:
Async::new()now takes types that implementAsFd/AsSocketinstead ofAsRawFd/AsRawSocket, in order to implement I/O safety. (#142) - Breaking:
Async::get_mut(),Async::read_with_mut()andAsync::write_with_mut()are nowunsafe. The underlying source is technically "borrowed" by the polling instance, so moving it out would be unsound. (#142) - Expose miscellaneous
kqueuefilters in theos::kqueuemodule. (#112) - Expose a way to get the underlying
Poller's file descriptor on Unix. (#125) - Add a new
Async::new_nonblockingmethod to allow users to avoid duplicating an already nonblocking socket. (#159) - Remove the unused
fastrandandmemchrdependencies. (#131) - Use
tracinginstead oflog. (#140) - Support ESP-IDF. (#144)
- Optimize the
block_onfunction to reduce allocation, leading to a slight performance improvement. (#149)
- Breaking:
-
1.13.022 Mar 2023Release notes
Open source →- Use
rustixinstead oflibc/windows-sysfor system calls (#76) - Add a
will_firemethod toTimerto test if it will ever fire (#106) - Reduce syscalls in
Async::new(#107) - Improve the drop ergonomics of
ReadableandWritable(#109) - Change the "
wepoll" in documentation to "IOCP" (#116)
- Use
-
1.12.027 Nov 2022 -
1.11.026 Nov 2022 -
1.10.028 Oct 2022 -
1.9.001 Sep 2022 -
1.8.017 Aug 2022 -
1.7.026 May 2022 -
1.6.030 Jun 2021Release notes
Open source →- Add
ReadableandWritablefutures. (#64, #66) - Add
Async::{readable_owned, writable_owned}. (#66)
- Add
-
1.5.022 May 2021 withdrawn -
1.4.124 Apr 2021 -
1.4.016 Apr 2021Release notes
Open source →- Implement
AsRef<T>andAsMut<T>forAsync<T>. (#44) - Remove dependency on deprecated
nb-connect. (#55)
- Implement
-
1.3.130 Nov 2020 -
1.3.028 Nov 2020Release notes
Open source →- Add
Timer::interval()andTimer::set_interval(). - Add
Timer::interval_at()andTimer::set_interval_at(). - Implement
StreamforTimer.
- Add
-
1.2.009 Nov 2020 -
1.1.1009 Oct 2020 -
1.1.904 Oct 2020 -
1.1.803 Oct 2020 -
1.1.703 Oct 2020 -
1.1.601 Oct 2020 -
1.1.529 Sep 2020 -
1.1.427 Sep 2020 -
1.1.322 Sep 2020 -
1.1.216 Sep 2020 -
1.1.115 Sep 2020 -
1.1.014 Sep 2020 -
1.0.209 Sep 2020Release notes
Open source →- Don't box
TinAsync<T>. Async::incoming()doesn't returnUnpinstreams anymore.
- Don't box
-
1.0.107 Sep 2020 -
1.0.007 Sep 2020 -
0.2.703 Sep 2020 -
0.2.629 Aug 2020 -
0.2.528 Aug 2020Release notes
Open source →- On Linux, fail fast if
writable()succeeds after connecting toUnixStream, but the connection is not really established.
- On Linux, fail fast if
-
0.2.428 Aug 2020Release notes
Open source →- Prevent threads in
async_io::block_on()from hogging the reactor forever.
- Prevent threads in
-
0.2.327 Aug 2020 -
0.2.227 Aug 2020 -
0.2.126 Aug 2020 -
0.2.026 Aug 2020Release notes
Open source →- Replace
parkingmodule withblock_on(). - Fix a bug in
Async::<UnixStream>::connect().
- Replace
-
0.1.1107 Aug 2020 -
0.1.1006 Aug 2020Release notes
Open source →- Simpler implementation of the
parkingmodule. - Extracted raw bindings to epoll/kqueue/wepoll into the
pollingcrate.
- Simpler implementation of the
-
0.1.931 Jul 2020 -
0.1.831 Jul 2020 -
0.1.728 Jul 2020 -
0.1.626 Jul 2020 -
0.1.521 Jul 2020 -
0.1.420 Jul 2020 -
0.1.319 Jul 2020Release notes
Open source →- Always use the last waker given to
Timer. - Shutdown the socket in
AsyncWrite::poll_close(). - Reduce the number of dependencies.
- Always use the last waker given to
-
0.1.215 Jul 2020Release notes
Open source →- Shutdown the write side of the socket in
AsyncWrite::poll_close(). - Code and dependency cleanup.
- Always use the last waker when polling a timer.
- Shutdown the write side of the socket in