PackageTrack
Sign in Get early access

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
Release Pre-release Withdrawn

Releases

latest 60 of 62
  1. 2.6.0 14 Sep 2025
    Release notes
    • Bump MSRV to 1.71. (#243)
    • Expose Timer::clear. (#239)
    • Implement IoSafe for std::io::PipeReader and std::io::PipeWriter (#237)
    • Update to windows-sys v0.61. (#243)
    • Remove dependency on async_lock. (#240)
    Open source →
    Release notes
    • Bump MSRV to 1.71. (#243)
    • Expose Timer::clear. (#239)
    • Implement IoSafe for std::io::PipeReader and std::io::PipeWriter (#237)
    • Update to windows-sys v0.61. (#243)
    • Remove dependency on async_lock. (#240)
    Open source →
  2. 2.5.0 19 Jul 2025
    Release notes
    • Add a new optional tracing feature. 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-sys to v0.60. (#230)
    Open source →
    Release notes
    • Add a new optional tracing feature. 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-sys to v0.60. (#230)
    Open source →
  3. 2.4.1 25 May 2025
    Release notes
    • Update to rustix version 1.0.7. (#221)
    Open source →
    Release notes
    • Update to rustix version 1.0.7. (#221)
    Open source →
  4. 2.4.0 07 Nov 2024
    Release notes
    • Make it so the Exit filter can be created without passing ownership of the
      Child object. (#207)
    • Add support for visionOS. (#202)
    • Fix typo in documentation. (#204)
    Open source →
    Release notes
    • Make it so the Exit filter can be created without passing ownership of the Child object. (#207)
    • Add support for visionOS. (#202)
    • Fix typo in documentation. (#204)
    Open source →
  5. 2.3.4 10 Aug 2024
    Release notes
    • Update windows-sys to v0.59. (#195)
    • On NetBSD/DragonflyBSD, set nosigpipe on sockets. (#196)
    Open source →
    Release notes
    • Update windows-sys to v0.59. (#195)
    • On NetBSD/DragonflyBSD, set nosigpipe on sockets. (#196)
    Open source →
  6. 2.3.3 01 Jun 2024
    Release notes
    • Fix nightly clippy warnings. (#191)
    Open source →
    Release notes
    • Fix nightly clippy warnings. (#191)
    Open source →
  7. 2.3.2 10 Mar 2024
    Release notes
    • Fix usage of the wrong socket flags on AIX. (#187)
    Open source →
    Release notes
    • Fix usage of the wrong socket flags on AIX. (#187)
    Open source →
  8. 2.3.1 28 Jan 2024
    Release notes
    • On Windows, call WSAStartup before any raw socket functions. (#183)
    Open source →
    Release notes
    • On Windows, call WSAStartup before any raw socket functions. (#183)
    Open source →
  9. 2.3.0 16 Jan 2024
    Release notes
    • Add Waitable, which allows waiting for waitable handles on
      Windows. (#152)
    Open source →
    Release notes
    • Add Waitable, which allows waiting for waitable handles on Windows. (#152)
    Open source →
  10. 2.2.2 11 Dec 2023
    Release notes
    • Fix an EINVAL error that would occur when abstract sockets are used. (#176)
    Open source →
    Release notes
    • Fix an EINVAL error that would occur when abstract sockets are used. (#176)
    Open source →
  11. 2.2.1 24 Nov 2023
    Release notes
    • Remove dependency on waker-fn. (#165)
    • Update windows-sys to v0.52.0. (#173)
    Open source →
  12. 2.2.0 06 Nov 2023
    Release notes
    • Bump async-lock and futures-lite to their latest version. (#170)
    Open source →
  13. 2.1.0 29 Oct 2023
    Release notes
    • Implement IoSafe for std::process::{ChildStdin, ChildStdout, ChildStderr}. (#162)
    Open source →
  14. 2.0.0 18 Oct 2023
    Release notes
    • Breaking: Async::new() now takes types that implement AsFd/AsSocket instead of AsRawFd/AsRawSocket, in order to implement I/O safety. (#142)
    • Breaking: Async::get_mut(), Async::read_with_mut() and Async::write_with_mut() are now unsafe. The underlying source is technically "borrowed" by the polling instance, so moving it out would be unsound. (#142)
    • Expose miscellaneous kqueue filters in the os::kqueue module. (#112)
    • Expose a way to get the underlying Poller's file descriptor on Unix. (#125)
    • Add a new Async::new_nonblocking method to allow users to avoid duplicating an already nonblocking socket. (#159)
    • Remove the unused fastrand and memchr dependencies. (#131)
    • Use tracing instead of log. (#140)
    • Support ESP-IDF. (#144)
    • Optimize the block_on function to reduce allocation, leading to a slight performance improvement. (#149)
    Open source →
  15. 1.13.0 22 Mar 2023
    Release notes
    • Use rustix instead of libc/windows-sys for system calls (#76)
    • Add a will_fire method to Timer to test if it will ever fire (#106)
    • Reduce syscalls in Async::new (#107)
    • Improve the drop ergonomics of Readable and Writable (#109)
    • Change the "wepoll" in documentation to "IOCP" (#116)
    Open source →
  16. 1.12.0 27 Nov 2022
    Release notes
    • Switch from winapi to windows-sys (#102)
    Open source →
  17. 1.11.0 26 Nov 2022
    Release notes
    • Update concurrent-queue to v2. (#99)
    Open source →
  18. 1.10.0 28 Oct 2022
    Release notes
    • Remove the dependency on the once_cell crate to restore the MSRV. (#95)
    Open source →
  19. 1.9.0 01 Sep 2022
    Release notes
    • Fix panic on very large durations. (#87)
    • Add Timer::never (#87)
    Open source →
  20. 1.8.0 17 Aug 2022
    Release notes
    • Implement I/O safety traits on Rust 1.63+ (#84)
    Open source →
  21. 1.7.0 26 May 2022
    Release notes
    • Process timers set for exactly now. (#73)
    Open source →
  22. 1.6.0 30 Jun 2021
    Release notes
    • Add Readable and Writable futures. (#64, #66)
    • Add Async::{readable_owned, writable_owned}. (#66)
    Open source →
  23. 1.5.0 22 May 2021 withdrawn
    Release notes
    • Add Readable and Writable futures. (#64)
    Open source →
  24. 1.4.1 24 Apr 2021
    Release notes
    • Remove dependency on deprecated vec-arena. (#60)
    Open source →
  25. 1.4.0 16 Apr 2021
    Release notes
    • Implement AsRef<T> and AsMut<T> for Async<T>. (#44)
    • Remove dependency on deprecated nb-connect. (#55)
    Open source →
  26. 1.3.1 30 Nov 2020
    Release notes
    • Lower MSRV to 1.41.0
    Open source →
  27. 1.3.0 28 Nov 2020
    Release notes
    • Add Timer::interval() and Timer::set_interval().
    • Add Timer::interval_at() and Timer::set_interval_at().
    • Implement Stream for Timer.
    Open source →
  28. 1.2.0 09 Nov 2020
    Release notes
    • Add Async::poll_readable() and Async::poll_writable().
    Open source →
  29. 1.1.10 09 Oct 2020
    Release notes
    • Update futures-lite.
    Open source →
  30. 1.1.9 04 Oct 2020
    Release notes
    • Only require libc on Unix platforms.
    Open source →
  31. 1.1.8 03 Oct 2020
    Release notes
    • Re-enable async-net dependency and fix CI.
    Open source →
  32. 1.1.7 03 Oct 2020
    Release notes
    • Update polling to v2.0.0
    Open source →
  33. 1.1.6 01 Oct 2020
    Release notes
    • Remove randomized yielding everywhere.
    Open source →
  34. 1.1.5 29 Sep 2020
    Release notes
    • Remove randomized yielding in write operations.
    Open source →
  35. 1.1.4 27 Sep 2020
    Release notes
    • Implement proper cancelation for readable() and writable().
    Open source →
  36. 1.1.3 22 Sep 2020
    Release notes
    • Improve docs.
    Open source →
  37. 1.1.2 16 Sep 2020
    Release notes
    • Add nb-connect dependency.
    • Remove wepoll-sys-stjepang dependency.
    Open source →
  38. 1.1.1 15 Sep 2020
    Release notes
    • Remove socket2 dependency.
    Open source →
  39. 1.1.0 14 Sep 2020
    Release notes
    • Add TryFrom conversion impls for Async.
    Open source →
  40. 1.0.2 09 Sep 2020
    Release notes
    • Don't box T in Async<T>.
    • Async::incoming() doesn't return Unpin streams anymore.
    Open source →
  41. 1.0.1 07 Sep 2020
    Release notes
    • Update dependencies.
    Open source →
  42. 1.0.0 07 Sep 2020
    Release notes
    • Stabilize.
    Open source →
  43. 0.2.7 03 Sep 2020
    Release notes
    • Replace log::debug! with log::trace!.
    Open source →
  44. 0.2.6 29 Aug 2020
    Release notes
    • Add logging.
    Open source →
  45. 0.2.5 28 Aug 2020
    Release notes
    • On Linux, fail fast if writable() succeeds after connecting to UnixStream, but the connection is not really established.
    Open source →
  46. 0.2.4 28 Aug 2020
    Release notes
    • Prevent threads in async_io::block_on() from hogging the reactor forever.
    Open source →
  47. 0.2.3 27 Aug 2020
    Release notes
    • Performance optimizations in block_on().
    Open source →
  48. 0.2.2 27 Aug 2020
    Release notes
    • Add probabilistic yielding to improve fairness.
    Open source →
  49. 0.2.1 26 Aug 2020
    Release notes
    • Update readme.
    Open source →
  50. 0.2.0 26 Aug 2020
    Release notes
    • Replace parking module with block_on().
    • Fix a bug in Async::<UnixStream>::connect().
    Open source →
  51. 0.1.11 07 Aug 2020
    Release notes
    • Bug fix: clear events list before polling.
    Open source →
  52. 0.1.10 06 Aug 2020
    Release notes
    • Simpler implementation of the parking module.
    • Extracted raw bindings to epoll/kqueue/wepoll into the polling crate.
    Open source →
  53. 0.1.9 31 Jul 2020
    Release notes
    • Update dependencies.
    • More documentation.
    Open source →
  54. 0.1.8 31 Jul 2020
    Release notes
    • Tweak the async-io to poll I/O less aggressively.
    Open source →
  55. 0.1.7 28 Jul 2020
    Release notes
    • Tweak the async-io thread to use less CPU.
    • More examples.
    Open source →
  56. 0.1.6 26 Jul 2020
    Release notes
    • Add Timer::reset().
    • Add third party licenses.
    • Code cleanup.
    Open source →
  57. 0.1.5 21 Jul 2020
    Release notes
    • Make Parker and Unparker unwind-safe.
    Open source →
  58. 0.1.4 20 Jul 2020
    Release notes
    • Initialize the reactor in Parker::new().
    Open source →
  59. 0.1.3 19 Jul 2020
    Release notes
    • Always use the last waker given to Timer.
    • Shutdown the socket in AsyncWrite::poll_close().
    • Reduce the number of dependencies.
    Open source →
  60. 0.1.2 15 Jul 2020
    Release notes
    • Shutdown the write side of the socket in AsyncWrite::poll_close().
    • Code and dependency cleanup.
    • Always use the last waker when polling a timer.
    Open source →

Every package, every release, already written down.

The archive is open and free. Watching your own project is what we are building next.

Browse the archive